1. COMANDOS MYSQL
1 create database biblioteca;
2 use biblioteca;
Volvemos a crear la tabla libros, pero esta vez incluimos el
campo editorial:
1 create table libros(
2 libro_id int unsigned auto_increment,
3 titulo varchar(50) not null,
4 autor varchar(30) not null default 'Desconocido',
5 codigo_editorial int unsigned not null,
6 cantidad smallint unsigned default 0,
7 primary key (libro_id)
8 );
Y ahora también creamos una tabla editoriales:
1 create table editoriales (
2 editorial_id int unsigned auto_increment,
3 nombre_editorial varchar(25) not null,
4 primary key (editorial_id)
5 );
Ahora necesitamos crear una serie de registros para ambas
tablas para ver el funcionamiento en la práctica:
1 insert into libros (titulo, autor, codigo_editorial, cantidad)
2 values ("Técnicas avanzadas de posicionamiento en
buscadores", "Fernando Maciá Domene", 1, 2);
3 insert into libros (titulo, autor, codigo_editorial, cantidad)
4 values ("Diseño Web con CSS", "Ralph G. Schulz ", 2, 1);
5 insert into libros (titulo, autor, codigo_editorial, cantidad)
6 values ("Usabilidad. Prioridad en el diseño Web", "Jakob
Nielsen", 1, 1);
1 insert into editoriales (nombre_editorial) values("Anaya");
2 insert into editoriales (nombre_editorial) values("Marcombo");
En la tabla editoriales, Anaya es el registro 1 y Marcombo el
registro 2. Ahora queremos mostrar los libros de la editorial
Anaya, probad esto:
2. 1 select * from libros where codigo_editorial=1;
Veremos que efectivamente sólo se muestran los libros de
la editorial Anaya, pero en el campo editorial aparece el
número 1. Lo que nosotros queremos es que en este
campo aparezca el nombre de la editorial y no su código.
Aquí entra el comando left join para vincular tablas.
Left join
1 select * from libros join editoriales
2 on editoriales.editorial_id = libros.codigo_editorial;
En este caso, vemos los libros de todas las editoriales, pero
también aparece los
campos codigo_editorial y editorial_id que no queremos
visualizar en los resultados:
Para evitarlo, cambiamos el comodín asterisco por los
campos que queremos visualizar:
1 select libros.titulo, libros.autor,libros.cantidad,
editoriales.nombre_editorial
2 from libros join editoriales oneditoriales.editorial_id
= libros.codigo_editorial;
El resultado es:
Si solo queremos visualizar los libros de la editorial Anaya,
entonces hemos de modificar el código:
1 select libros.titulo, libros.autor,libros.cantidad,
editoriales.nombre_editorial
3. 2 from libros join editoriales oneditoriales.editorial_id =
libros.codigo_editorial
3 where libros.codigo_editorial=1;
Finalmente, el resultado es:
Hay otros tipos de comandos join, para más información te
invitamos a ver la documentación oficial de MySQL.
Unión de tablas
Con MySQL también podemos unir las consultas a varias
tablas en un único conjunto de resultados. Para ello
utilizamos el comando union. Es importante tener en cuenta
que ambas tablas han de tener el mismo número de
campos o nos dará error. Un ejemplo será:
1
select libros.titulo from libros union selecteditoriales.nombre_editorial
from editoriales;
Crear un usuario en MySQL
Cuando creamos un usuario, tenemos que definir qué tipo
de acceso le damos de los tres disponibles: local, remoto y
total. También hemos de definir los permisos que el
usuario tendrá: si sólo de lectura o de lectura y escritura.
Acceso total y permisos de lectura y escritura
A continuación vamos a crear un usuario
llamado administrador en la base de datos biblioteca con la
contraseña 123abc. A este usuario le vamos a dar un perfil
de administrador, esto es, total acceso y permisos de
escritura y lectura:
1 grant all privileges on biblioteca.* to'administrador'@'localhost'
2 identified by '123abc' with grant option;
4. 3 flush privileges;
Ponemos flush privileges para no tener que esperar a que se
reinicie el servidor para que se hagan efectivos los
permisos.
El tema de los permisos y gestión de usuarios excede este
curso para principiantes, para los que queráis saber más,
os recomiendo consultar la página de referencia de MySQL.
Las funciones en MySQL
La mayoría de las funciones que veremos en este curso de
MySQL para principiantes se crean usando el
comando select, pero puedes utilizar las funciones de
MySQL de manera mucho más amplia. A continuación
veremos las funciones básicas de MySQL para incluir en la
programación de nuestras bases de datos.
Convertir una cadena de caracteres en mayúsculas
1 select upper(titulo) from libros;
Nos devuelve el título en mayúsculas de todos los libros
incluidos en la tablalibros.
Convertir una cadena de caracteres en mínusculas
1 select lower(titulo) from libros;
Nos devuelve el título en mínusculas de todos los libros
incluidos en la tablalibros.
Concatenar cadenas
Para ilustrarlo, vamos a crear una tabla usuarios dentro de
biblioteca
1 use biblioteca;
2 create table usuarios (
3 usuario_id int unsigned auto_increment,
4 nombre varchar(30) not null,
5. 5 primer_apellido varchar(30) not null,
6 primary key (usuario_id)
7 );
Ahora vamos a insertar un par de registros en esta tabla:
1 insert into usuarios (nombre,
primer_apellido) values("Sara", "Gutiérrez");
2 insert into usuarios (nombre,
primer_apellido) values("Pablo", "Morales");
Para ver el nombre y el apellido como una cadena,
hacemos:
1 select concat (nombre, ' ' , primer_apellido) fromusuarios;
El resultado será que veremos en pantalla lo siguiente:
En el título de los resultados vemos que pone concat
(nombre, ‘ ‘ , primer_apellido), pero nosotros queremos que
ponga Usuarios. Con esto introducimos el comando as:
1 select concat (nombre, ' ' , primer_apellido) asUsuarios from usuarios;
Ahora vemos que en lugar de concat (nombre, ‘ ‘ ,
primer_apellido) aparece Usuarios:
Longitud de una cadena de texto
Con el comando length podemos calcular el número de
caracteres de una palabra o frase:
1 select length('mi casa');
El resultado es 7, ya que también cuenta los espacios.
6. Para más funciones con cadenas, os recomendamos ver
la guía oficial de MySQL.
Funciones numéricas
Primero de todo, veamos los operadores numéricos:
Suma
1 select 3+5;
Muestra en pantalla 8.
Resta
1 select 3-5;
Muestra en pantalla -2.
Multiplicación
1 select 3*5;
Muestra en pantalla 15.
División
1 select 3/5;
Muestra en pantalla 0.60.
Mödulo
El módulo es el resto de una división.
1 select 5%2;
Muestra en pantalla 1.
Entre las funciones numéricas destacamos:
Raíz cuadrada
1 select sqrt(4);
Devuelve 2.
7. Redondeo
El primer valor de la funcion round(n1, n2) es el número
decimal que queremos redondear y el segundo valor es el
número de decimales que se han de conservar.
1 select round(56.443, 2);
Devuelve 56.44.
Rand
Muestra un número aleatorio entre 0 y 1
1 select rand();
Para otras funciones numéricas, os recomendamos
este enlace de MySQL.
Funciones para la fecha y hora
Las funciones para la fecha y la hora de MySQL son
particularmente flexible y útiles. Tanto si lo que quieres es
hacer un cálculo basado en la fecha (por ejemplo, obtener
la edad dividiendo la fecha actual con la de nacimiento), o
simplemente devolver el nombre del mes, existe una
función de MySQL para cada propósito. Aquí sólo veremos
una selección de las mismas, puede consultar la página de
desarrollo de MySQL para ver todas las funciones que
tienes disponibles.
Mostrar la fecha actual
1 select curdate();
Muestra 2012-03-01.
Mostrar la hora actual
1 select curtime();
Muestra 18:15:32.
Mostrar la fecha y hora actual
8. 1 select now();
El formato del resultado es: 2012-03-01 18:15:32.
Extraer la fecha de un resultado
1 select date('2011-12-31 01:02:03');
El formato del resultado es: 2011-12-31.
Escapa del alcance de este curso el entrar en detalle en
todas las funciones disponibles en MySQL, puedes
encontrar toda la información en la guía oficial de
desarrolladores de MySQL.
Introducción a phpMyAdmin
Os recomiendo el uso de phpMyAdmin a todos los que
aprendéis MySQL con el objetivo de combinarlo en la
creación de páginas web dinámicas. En sí, todos los
gestores de contenidos basados en PHP y MySQL lo traen
integrado, como es el caso de WordPress, Joomla y Drupal.
phpMyAdmin es una herramienta de software gratuita
pensada para la fácil administración de MySQL en Internet.
Las operaciones más usadas, como crear, modificar y
borrar bases de datos, tablas o registros se pueden realizar
a través de su interfaz sin necesidad de saber MySQL, lo
que lo convierte en una estupenda herramienta para las
personas que no conocen el lenguaje. También es útil
cuando, aún conociéndolo, se trata de ir rápido, pues no
has de prestar atención en la sintaxis de cada una de las
sentencias. Uno de los puntos fuertes es que cada vez que
haces algo con la interfaz, no sólo da el resultado, sino que
te muestra en pantalla la sintaxis que ha utilizado para
llevarlo a cabo, lo que también es una herramienta
excelente de aprendizaje.
9. Veamos un ejemplo. Tenemos ya creadas la base de
datos biblioteca junto con las tablas libros, usuarios y
editoriales. Ahora queremos insertar un nuevo libro en la
tabla libros. Veremos esta pantalla:
Como vemos, nos permite introducir dos registros, para ello,
deberíamos quitar la marca de “Ignorar”. Podéis ver en
la imagen que he creado un libro titulado “Me lo invento” de
autor “Desconocido” de la editorial 1 y del que tenemos 2 en
total. Cuando pulsamos en “Continuar”, vemos esta
pantalla:
10. Como vemos, no sólo nos confirma que se ha creado una
nueva fila en la tabla libros, sino que además nos muestra
el código generado. Es una excelente interfaz gráfica para
el desarrollo web.
Entre otras funciones, phpMyAdmin puede crear y eliminar
bases de datos, crear, modificar y eliminar alterar tablas,
añadir, editar y borrar campos, ejecutar cualquier sentencia
de MySQL, crear, editar y borrar usuarios, administrar
privilegios, así como importar y exportar datos en varios
formatos. Estas funciones de importar y exportar también
son muy útiles cuando queremos trasladar nuestro blog a
otro sistema, por ejemplo, de Drupal a WordPress.
Crear una base de datos con phpMyAdmin
Para crear una base de datos, vamos a la pestaña “Base de
Datos” en el campo “Crea una base de datos”, ponemos el
nombre de la base de datos que queremos crear y
pulsamos “Crear”:
11. Borrar una base de datos con phpMyAdmin
En la misma pestaña que antes, seleccionamos la base de
datos que queremos borrar y pulsamos “Eliminar”:
Crear una tabla con phpMyAdmin
12. En la pestaña anterior, clicamos encima de la base de datos
que queremos modificar. Veremos que hemos seleccionado
la base de datos, porque, tal y como vemos en la siguiente
imagen, aparecerá en el panel lateral de phpMyAdmin.
Suponiendo que no hemos eliminado videoteca.hacemos
clic sobre ella y veremos esto:
Como hacíamos anteriormente, hemos de especificar el
número de campos que tendrá la tabla. En el paso siguiente
habremos de especificar los valores de los campos, tal y
como hacíamos manualmente:
13. Para modificar o borrar una tabla, haremos lo mismo que
hicimos con las bases de datos: la seleccionamos y le
damos a “Eliminar”. Para insertar un registro, en la pantalla
donde aparece la tabla, pulsamos “Insertar” y en la
siguiente pantalla rellenamos los diferentes campos:
http://www.esandra.com/es-curso-de-mysql-comandos-y-funciones-de-mysql-phpmyadmin/