Atrévete a crear el negocio de tus sueños

Curso de MySQL(3): Comandos y funciones de MySQL. PhpMyAdmin

mysql

Esta es la tercera y última parte del curso de MySQL para principiantes. Ayer vimos los comandos básicos de MySQL para crear, modificar y borrar bases de datos, tablas y registros. Hoy vamos a ver cómo enlazar tablas, cómo crear usuarios, las funciones básicas de MySQL y una introducción a phpMyAdmin.

Este curso de MySQL para principiantes consta de tres entregas:

Enlazar tablas

Vamos a seguir con el ejemplo de ayer para ver como podemos enlazar tablas usando el comando joins de select.
Teníamos la base de datos biblioteca. Para los que justo os incorporáis al curso, la podéis crear y seleccionar con:

create database biblioteca;
use biblioteca;

Volvemos a crear la tabla libros, pero esta vez incluimos el campo editorial:

create table libros(
       libro_id int unsigned auto_increment,
       titulo varchar(50) not null,
       autor varchar(30) not null default 'Desconocido',
       codigo_editorial int unsigned not null, 
       cantidad smallint unsigned default 0,
      primary key (libro_id)
 );

Y ahora también creamos una tabla editoriales:

create table editoriales (
      editorial_id int unsigned auto_increment,
      nombre_editorial varchar(25) not null,
     primary key (editorial_id)
);

Ahora necesitamos crear una serie de registros para ambas tablas para ver el funcionamiento en la práctica:

insert into libros (titulo, autor, codigo_editorial, cantidad) 
              values ("Técnicas avanzadas de posicionamiento en buscadores", "Fernando Maciá Domene", 1, 2);
insert into libros (titulo, autor, codigo_editorial, cantidad) 
              values ("Diseño Web con CSS", "Ralph G. Schulz ", 2, 1);
insert into libros (titulo, autor, codigo_editorial, cantidad) 
              values ("Usabilidad. Prioridad en el diseño Web", "Jakob Nielsen", 1, 1);
insert into editoriales (nombre_editorial) values ("Anaya");
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:

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

select * from libros join editoriales 
       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:

mysql phpmyadmin

Para evitarlo, cambiamos el comodín asterisco por los campos que queremos visualizar:

select libros.titulo, libros.autor,libros.cantidad, editoriales.nombre_editorial 
                 from libros join editoriales on editoriales.editorial_id = libros.codigo_editorial;

El resultado es:

mysql phpmyadmin

Si solo queremos visualizar los libros de la editorial Anaya, entonces hemos de modificar el código:

select  libros.titulo, libros.autor,libros.cantidad, editoriales.nombre_editorial  
              from libros join editoriales on editoriales.editorial_id = libros.codigo_editorial 
             where libros.codigo_editorial=1;

Finalmente, el resultado es:

mysql phpmyadmin

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á:

select libros.titulo from libros union select editoriales.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:

grant all privileges on biblioteca.* to 'administrador'@'localhost' 
     identified by '123abc' with grant option;
 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

select upper(titulo) from libros;

Nos devuelve el título en mayúsculas de todos los libros incluidos en la tabla libros.

Convertir una cadena de caracteres en mínusculas

select lower(titulo) from libros;

Nos devuelve el título en mínusculas de todos los libros incluidos en la tabla libros.

Concatenar cadenas
Para ilustrarlo, vamos a crear una tabla usuarios dentro de biblioteca

use biblioteca;
create table usuarios (
 usuario_id  int unsigned auto_increment,
      nombre varchar(30) not null,
       primer_apellido varchar(30) not null,  
      primary key (usuario_id)
 );

Ahora vamos a insertar un par de registros en esta tabla:

insert into usuarios (nombre, primer_apellido) values ("Sara", "Gutiérrez");
insert into usuarios (nombre, primer_apellido) values ("Pablo", "Morales");

Para ver el nombre y el apellido como una cadena, hacemos:

select concat (nombre, '  ' , primer_apellido) from usuarios;

El resultado será que veremos en pantalla lo siguiente:

mysql phpmyadmin concat

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:

select concat (nombre, '  ' , primer_apellido) as Usuarios from usuarios;

Ahora vemos que en lugar de concat (nombre, ‘ ‘ , primer_apellido) aparece Usuarios:
concat mysql phpmyadmin

Longitud de una cadena de texto
Con el comando length podemos calcular el número de caracteres de una palabra o frase:

select length('mi casa');

El resultado es 7, ya que también cuenta los espacios.

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

select  3+5;

Muestra en pantalla 8.

Resta

select  3-5;

Muestra en pantalla -2.

Multiplicación

select  3*5;

Muestra en pantalla 15.

División

select  3/5;

Muestra en pantalla 0.60.

Mödulo
El módulo es el resto de una división.

select  5%2;

Muestra en pantalla 1.

Entre las funciones numéricas destacamos:

Raíz cuadrada

select sqrt(4);

Devuelve 2.

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.

select round(56.443, 2);

Devuelve 56.44.

Rand
Muestra un número aleatorio entre 0 y 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

select curdate();

Muestra 2012-03-01.

Mostrar la hora actual

select curtime();

Muestra 18:15:32.

Mostrar la fecha y hora actual

select now();

El formato del resultado es: 2012-03-01 18:15:32.

Extraer la fecha de un resultado

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.

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:

phpmyadmin mysql

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:

phpmyadmin mysql

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”:

phpmyadmin crear bd

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”:

mysql phpmyadmin

Crear una tabla con phpMyAdmin

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:

phpmyadmin crear tabla

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:

phpmyadmin

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:

phpmyadmin tablas registros

Conclusión

Esta ha sido la tercera y última parte de un curso de MySQL para principiantes. Hemos visto como vincular tablas con joint left y union, como crear usuarios, las funciones básicas de MySQL y una introducción a phpMyAdmin. Si te ha interesado el tema y quieres seguir aprendiendo, te recomendamos la web de desarrollo de MySQL en castellano.

mi firma
Sandra Guerrero Sanmarti
¡Atrévete a crear el negocio de tus sueños! Porque hay que #emprender hoy para tener resultados mañana:-) + ¿te apuntas?
Sandra Guerrero Sanmarti
Sandra Guerrero Sanmarti
Sandra Guerrero Sanmarti

Comentarios

  • Berenice

    Hola!

    Gracias por tu tutorial la verdd muy bien explicado! Gracias me ayudarà muchisimo, porfa agregame al msn blm._@hotmail, estoy haciendo una pekeña bd y kiero ver q onda con los join, graciiiias =DD

  • raul

    muy bueno el tuto justo estoy llevando el curso de bds y me gae a pelo esto ,,,gracias ah ..

  • raul

    muy bueno el tuto justo estoy llevando el curso de bds y me cae a pelo esto ,,,gracias ah ..