Tecnología y Coaching para Emprendedores

Curso de MySQL (II): Instalación y Conceptos Básicos de MySQL

mysql

Esta es la segunda entrega del curso de MySQL para principiantes. Ayer vimos la introducción a las bases de datos relacionales, hoy vamos a aprender a instalar MySQL en nuestro ordenador, así como los conceptos básicos de programación con MySQL. Utilizaremos ejemplos ilustrativos de cada uno de los comandos de MySQL y al final proponemos un ejercicio práctico para que os estrenéis con la consola de MySQL.

Este curso de MySQL para principiantes consta de tres entregas:

Instalación de MySQL en tu ordenador

Hay diferentes formas de instalar MySQL en tu PC, entre ellas cabe destacar:

  • Usar el paquete oficial de MySQL.Hay varios paquetes disponibles según el sistema operativo, incluyendo Windows, Mac OS X y Linux. El proceso más sencillo de instalación es descargar el paquete que nos interesa, ejecutar el fichero de instalación y seguir los pasos. En la documentación oficial encontraréis una guía detallada para cada uno de los sistemas operativos. Aquí vamos a ver los pasos básicos si escogemos esta instalación para Windows:
    1. Ejecutamos el fichero MSI installer de Windows
    2. Seleccionamos Default Configuration
    3. Seleccionamos Developer Machine, pues esto nos permitirá tener habilitadas funcionalidades de desarrollador.
    4. Seleccionamos el uso de la CPU y del disco duro como Moderado, ya que queremos usarlo con la finalidad de desarrollo y no como servidor dedicado.
    5. Seleccionamos la opción “Multifunctional Database“.
    6. Escogemos un password para el usuario root.
  • Instalar el paquete LAMP, WAMP 0 MAMP, según nuestro sistema operativo sea Linux, Windows o Mac respectivamente. Estos paquetes incluyen todo lo necesario para instalar en tu ordenador el servidor Apache, MySQL y PHP/Perl, de aquí el acrónimo de “AMP” (la L, W y M son de Linux, Windows y Mac). Estos paquetes requieren muy poco trabajo de configuración para que funcionen.
  • Instalar el paquete XAMPP. Personalmente, esta es mi opción preferida por la facilidad de instalación. Lo único que tienes que hacer es ir a la página oficial de Xampp y descargar el instalador. Funciona tanto para Mac, como para Windows, Linux y Solaris. A continuación veremos como instalar XAMPP.

Instalación de XAMPP

  • Ve a la página de XAMPP y haz clic en el enlace que se corresponda a tu sistema operativo.
  • En Download, selecciona XAMPP y a continuación Installer.
  • Una vez descargado, ejecútalo. Verás una pantalla como esta:

instalacion xampp

  • Selecciona las opciones de XAMPP que te interesen. Te recomendamos todas las opciones, excepto FileZilla, nosotros al menos utilizamos FileZilla a parte.

instalacion xampp

  • Una vez finalizada la instalación, hay que iniciar los servicios desde el panel de control de XAMPP. Lo podemos hacer desde el icono que hemos creado en el escritorio, como desde el archivo xampp-control que encontraremos en la carpeta donde hayamos instalado XAMPP, en Windows sería en C:\xampp. Para iniciar los servicios, hemos de pulsar “Start” en Apache y en MySQL.

Iniciar la consola de MySQL

Hay varias maneras de poder ejecutar comandos de MySQL,mañana veremos como hacerlo desde phpmyadmin. Pero antes de nada, es necesario que sepamos que es la consola de MySQL, cómo la iniciamos y algunos de los comandos de MySQL.

Antes de nada, asegúrate que el servidor de MySQL está en marcha. Si utilizas XAMPP, es tan fácil como pulsar Start y ver que está en funcionamiento. Cuando instalas el servidor de MySQL, automáticamente se instala mysql, el monitor de MySQL. Éste es un programa de comandos por línea.

Veamos pues como iniciar la consola de MySQL:

1. Ejecuta la ventana de terminal:

  • Windows 7.  Haz clic en el botón inicio y en el campo de búsqueda teclea cmd y pulsa enter. O ves a Todos los Programas > Accesorios > Símbolo del Sistema.
  • Mac OS X. Abre una ventana de búsqueda y escoge Aplicaciones > Utilidades > Terminal.
  • Ubuntu, Escoge Aplicaciones > Accesorios > Terminal, o pulsa el logo de Ubuntu y teclea terminal.

2. Ejecuta mysql en la ventana de terminal:

  • Windows 7.  Ve a la carpeta donde tienes instalado MySQL. En el caso que hayas instalado XAMPP, teclea cd c:\xampp\mysql\bin y pulsa enter. Para iniciar mysql, teclea mysql -u root y pulsa enter.
  • Mac OS X y Ubuntu: Simplemente escribe  mysql -u root y pulsa enter.

Nota importante. En el caso de haber puesto una contraseña, el comando será mysql -u root -p password en lugar de mysql -u root, donde has de sustituir password por tu contraseña.

En el caso que todo haya ido como esperado, verás que en el terminal aparece mysql>. En Windows verás lo siguiente:

consola mysql

Primeros Pasos en MySQL

Ya tenemos instalado MySQL y hemos iniciado la consola. Ahora vamos a aprender los comandos más importantes para empezar a trabajar con MySQL.

Ver las bases de datos instaladas

Para ver las bases de datos que tenemos instaladas, ejecutamos este comando en el terminal de mysql:

show databases;

como justo acabamos de instalar MySQL y no hemos creado todavía ninguna base de datos, te aparecerán las que viene por defecto, como information_schema, test o mysql.

Seleccionar una base de datos

Para seleccionar una base de datos, ejecutamos este comando:

use test;

Ahora tenemos seleccionada la base de datos test y todo lo que hagamos será sobre esta base de datos. Para seleccionar otra, usamos el mismo comando, cambiando el nombre de la base de datos.

Crear una base de datos

create database biblioteca;

Si todo va como esperado, aparecerá una línea de código similar a ésta: Query OK, 1 row affected (0.05 sec). Acabamos de crear una base de datos llamada “biblioteca”. Para comprobarlo, es tan fácil como utilizar el comando que justo acabamos de aprender, show databases; Veremos que ahora en el listado aparece biblioteca.

Cerrar la consola

exit;

Para salir de la consola tecleamos simplemente exit y damos a enter. Es el único caso en que da igual poner o no el punto y coma final.

Conceptos Básicos de MySQL

Ya hemos visto como crear una base de datos y como crear una nueva. Ahora es el momento de poner manos a la obra y meternos de lleno en el mundo de MySQL. Para hacer fácil lo difícil, aprenderemos los comandos con un ejemplo. Si os surge cualquier duda o problema, sólo tenéis que dejar un comentario y haremos todo lo posible por ayudaros.

Para empezar, seleccionemos ahora la base de datos “biblioteca:

use biblioteca;

Crear una tabla

Partimos de la base de datos que acabamos de crear llamada “biblioteca”. En ella queremos crear una tabla llamada “libros” que recoja el fondo bibliográfico. Tal y como explicábamos ayer en el artículo de introducción a las bases de datos relacionales, una tabla está formada por campos (columnas) y registros (filas) donde podemos almacenar la información deseada. En nuestra tabla de ejemplo crearemos los campos “titulo”, “autor”, “fecha_publicacion” y “cantidad”: No ponemos el campo “editorial” porque, como mañana veremos, es mejor separar algunos datos en diferentes tablas y luego utilizar un comando para enlazarlas.

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

No nos asustemos, aquí hemos introducido muchas cosas de golpe, vayamos paso por paso. Hemos creado varios campos con una serie de parámetros. Los campos han de ir separados por coma y dentro del paréntesis. Aquí el punto y coma va al final, después del paréntesis. Es muy fácil olvidárselo, por lo que prestad especial atención en este punto. Veamos ahora que hemos hecho: create table libros crea una tabla llamada libros. Podríamos haber hecho lo siguiente:

create table libros;

Lo que habría pasado, es que habríamos creado una tabla vacía, esto es, sin ningún campo. Como hemos dicho, una tabla está compuesta por campos y por registros. Para poder introducir un registro en la misma, primero es necesario crear los campos, que es lo que hemos hecho. Así en nuestro ejemplo hemos creado cuatro campos:libro_id, titulo, autor y cantidad. ¿por qué crear un libro_id? Porque, como explicábamos en la primera parte de este curso de MySQL para principiantes toda tabla tiene que tener definida una clave primaria que tiene que ser única para cada registro.

Veamos ahora uno por uno cada uno de los campos creados:

libro_id int unsigned auto_increment,

Lo primero que indicamos siempre es el nombre del campo que estamos creando. int significa integer, lo que quiere decir que tiene que ser un número entero. unsigned significa que no puede ser negativo, por lo que la cuenta empezará con el 1. auto_increment significa que el propio gestor de bases de datos, en este caso MySQL, incrementará de manera automática este valor cada vez que introduzcamos un registro en esta tabla.

       titulo varchar(50) not null,
      );

Ahora estamos creando un campo llamado titulo.varchar significa caracteres y varchar(50) indica que este campo está formado por una cadena de como máximo 50 caracteres. significa que este campo es obligatorio y que no podemos dejarlo en blanco.

       autor varchar(30) not null default 'Desconocido',
 

Efectivamente, esta sentencia crea un campo llamado autor de como mucho 30 caracteres que tampoco puede dejarse en blanco. Aquí introducimos una diferencia, y es que hemos añadido default 'Desconocido'. Significa que si no introducimos nada, el sistema automáticamente pondrá que el autor es Desconocido. Así, un libro siempre tiene título, pero no siempre aparece un autor, pensemos en muchos libros de texto o en libros de autor anónimo.

       cantidad smallint unsigned default 0,
  

smallint es un tipo de número entero que no admite valores grandes, esto nos sirve para evitar errores de tecleado. Aquí hemos creado un campo llamado cantidad que es un número entero pequeño positivo y que en caso de dejarlo en blanco el sistema pondrá que no hay ninguno. El motivo por el que el default es 0 y no 1, es porque un libro se puede haber extraviado.

      primary key (libro_id)

Aquí definimos que la clave primaria de esta tabla sera el id del libro.

Imaginemos ahora que ya existía una tabla llamada libros que no nos interesa. Entonces, habríamos escrito este comando:

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

Lo que hace drop table if exists libros; es mirar si existe alguna tabla llamada "libros" dentro de la base de datos "biblioteca" y si así es, eliminarla.

Mostrar las tablas de una base de datos

Para ver la tabla que acabamos de crear, utilizamos este comando:

show tables;

Veremos ahora que aparece "libros" en el resultado.

Mostrar los campos de una tabla

Para inspeccionar los campos de la tabla "libros", usamos el comando explain:

explain libros;

Modificar una tabla

Imaginemos ahora que queremos añadir el campo "editorial" a nuestra tabla "libros". Mañana veremos que es mejor crear una tabla llamada "editorial" y enlazar ambas tablas, pero a título de ejemplo haríamos esto:

alter table libros add editorial varchar(50) not null;

Si ahora ejecutamos el comando explain libros; veremos que ha creado un campo llamado editorial.

Imaginemos que en lugar de 50 caracteres sólo admita 20. Lo podemos modificar así

alter table libros modify column editorial varchar(20) not null;

Ya hemos creado nuestra tabla libros con cuatro campos. Ahora vamos a proceder a incluir registros en la tabla.

Insertar registros en la tabla

insert into libros (titulo, autor, cantidad) 
     values ('Un mundo cualquiera', 'Pepito Frito', 2);

Con esta simple sentencia hemos creado nuestro primer registro en MySQL. Lo que le decimos es que inserte dentro de libros "Un mundo cualquiera" en el campo título, "Pepito Frito" en el campo autor y 2 en el campo cantidad. Imaginemos ahora que hemos comprado un libro más y que queremos actualizar la cantidad a 3, veamos ahora como lo podemos modificar.

Modificar el nombre de una tabla

Si quisiéramos cambiar el nombre de la tabla libros al de fondo_bibliotecario, haríamos lo siguiente:

rename table libros to fondo_bibliotecario;

Modificar registros de una tabla

update libros set  cantidad=3 where 
      titulo like 'Un mundo cualquiera';

Le decimos que actualiza la tabla libros, poniendo en cantidad 3 y que la condición es que el título sea "Un mundo cualquiera". Con where estamos estableciendo una condición, si no la ponemos, lo que hará es poner 3 en TODOS los registros, por lo que es muy importante no olvidarse el where.

Imaginemos que hay dos libros llamados "Un mundo cualquiera" escritos por diferentes autores. En este caso la sentencia sería:

update libros set  cantidad=3 where (titulo like 'Un 
                   mundo cualquiera' and autor like "Pepito Frito");

Aquí hemos hecho servir una cláusula AND, en la que indicamos que se han de cumplir las dos condiciones. El motivo del paréntesis es que si no lo ponemos no tendrá en cuenta la segunda condición.

El comando SELECT

Hay muchas más cosas que decir sobre select, pero este es un tutorial básico, por lo que no nos podemos extender. Si quieres saber más, te recomendamos leer la documentación oficial sobre la sintaxis de SELECT.

Para poder ver el potencial de select, necesitamos crear más registros:

insert into libros (titulo, autor, cantidad) values ('Logra un vientre plano', 'Dolores Barriga', 1);
insert into libros (titulo, autor, cantidad) values ('<a href="http://www.esandra.com/in/cursos" title="Cursos Online" class="pretty-link-keyword" target="_blank">Aprende</a> a bailar', 'Manolo Descalzo', 1);

Veamos ahora nuestro primer comando de select:

select * from books;

Veremos que aparecen todos los libros.

select * from libros where cantidad like 1;

Nos devuelve dos resultados, el libro de "Dolores Barriga" y el de "Manolo Descalzo".

Para que sólo nos muestre el título y el autor, haremos

select titulo, autor from libros;

Ahora vamos a ver una tabla de los libros en que sólo se muestra el título y el autor. Veamos ahora como hacemos que sólo muestre los libros de los que sólo tenemos 1:

select titulo, autor from libros where cantidad=1;

Ahora no aparece el libro de Pepito Frito, ya que de él tenemos 3 en total.

Si queremos seleccionar los libros cuyo autor empiece con "D", haremos lo siguiente:

select * from libros where autor like &quot;D% ;

El signo % actúa como comodín y significa que da igual lo que venga después de la D. También podemos ponerlo antes. Pongamos que queremos escoger todos los autores cuyo primer apellido sea Descalzo. Haremos esto:

select * from libros where autor like &quot;%Descalzo% ;

Evitar resultados repetidos

Imaginemos que tenemos varios autores repetidos, pues cada autor ha escrito varios libros. Si queremos mostrar los autores y no ponemos ninguna condición, nos mostrará los resultados repetidos. Para evitarlo, utilizamos distinct.

select distinct autor from libros;

Limitar el número de resultado

Si tenemos una base de datos con muchos registros, es posible que queramos limitar el número de registros que queremos devolver. Para ello utilizamos limit.

select * from libros limit 3;

Nos devuelve los tres primeros resultados. Imaginemos que queremos que sólo nos devuelva 3 resultados a partir del registro 5, haríamos lo siguiente:

select * from libros limit 5,3;

Los operadores OR, AND, > y <

El operador OR
Lo utilizamos para indicar que valide que se cumple un criterio de dos o más dados. El resultado final es todos aquellos registros que cumplan la condición OR. Veamos un ejemplo:

select * from libros where (autor like &quot;%Descalzo%) or (autor like &quot;Dolores Barriga&quot; );

En este caso nos mostrará todos los libros que tienen como autor a los que se apellidan Descalzo y los libros de Dolores Barriga.

El operador AND
Lo utilizamos para indicar que valide que se cumplen todos los criterios dados.

select * from libros where (autor like &quot;%Descalzo%) and (autor like &quot;Dolores Barriga&quot; );

En este caso no nos devolverá ningún resultado, ya que no hay ningún libro que cumpla ambas condiciones.

El operador > y el operador <
Lo utilizamos para seleccionar los registros que sean mayores o menores que la condición dada.

select * from libros where (cantidad &gt; 1 );

Nos muestra todos los libros de los que hay 2 o más en stock.

select * from libros where (cantidad &lt; 3 );

Nos muestra todos los libros de los que hay 3 o menos en stock.

Borrar registros, tablas y bases de datos

Borrar un registro de una tabla

Para borrar un registro, utilizamos el comando delete from:

delete from libros where libro_id=2;

Aquí vemos que en lugar de like hemos utilizado el signo igual. La diferencia es que el signo igual es mucho más restrictivo.

Borrar todos los registros de una tabla

En el caso de querer borrar todos los registros de una tabla, no utilizaremos el condicional where:

delete from libros;

Borrar una tabla

Tal y como hemos visto antes, para borrar una tabla utilizamos el comando drop table seguido del nombre de la tabla a borrar:

drop table libros;

Borrar una base de datos

Para borrar una base de datos utilizamos el comando drop database seguido del nombre de la base de datos:

drop database biblioteca;

Ejercicio

Este ejercicio ha sido propuesto por Francesc Estanyol en un curso de MySQL para principiantes impartido en el Cibernàrium de Barcelona. Lo he escogido por estar muy bien planteado para poner en práctica todos los conceptos hasta aquí impartidos.

Un videoclub que alquila películas de vídeo guarda información sobre sus películas de alquiler, sus socios y los alquileres.

  • Crea una tabla para guardar las películas con los siguientes campos:
    • Título (30 caracteres).
    • Actor (40 caracteres).
    • Duración (valor entero).
  • Consulta la estructura de la tabla.
  • Introduce los siguientes registros:
    • Pulp Fiction, John Travolta, 90
    • Misión Imposible, Tom Cruise, 120
    • Misión imposible 2, Tom Cruise, 180
    • Harry Potter I, Daniel H., 120
    • Harry Potter II, Daniel H., 150
  • Muestra todos los registros.
  • Muestra todos los registros donde los actores se llamen Tom o Daniel.
  • Muestra todos los actores, sin valores repetidos.
  • Muestra el título y la duración de aquellas películas que duren más de 120 minutos.
  • Cambia la duración de Harry Potter II de 150 minutos a 130.
  • Inserta un nuevo registro con los valores que quieras, visualízalo y después bórralo.
  • Haz un listado de todas las películas mostrando el título y la duración, ordenadas primero por duración y después por título.
  • Cuenta el número de películas que hay en total en la base de datos.
  • Muestra las películas que tengan una duración entre 115 y 145 minutos.

Para cualquier duda en su resolución, os animo a dejar un comentario, haré todo lo posible por ayudaros.

Conclusión

En esta segunda entrega hemos visto como instalar MySQL, como ejecutar la consola y los conceptos básicos de MySQL. Mañana veremos más comandos de MySQL con los que manipular e incluso entrelazar tablas, así como una introducción a las funciones de MySQL.

Ir a la tercera y última parte de este curso: Comandos y funciones de MySQL.Introducción a phpMyAdmin

mi firma