Primeros pasos con MySQL en la línea de comandos

Introducción

Esto es una pequeña gran introducción a MySQL desde la línea de comandos. Esto es lo que aprenderemos:

  • Crear y mostrar bases de datos
  • Eliminar bases de datos
  • Crear tablas
  • Eliminar tablas
  • Insertar datos
  • Eliminar datos
  • Vaciar tablas
  • Actualizar datos
  • Filtrar datos

Por hoy no nos vamos a preocupar por las relaciones o los motores de este sistema gestor de base de datos. Tampoco nos meteremos con los respaldos.

Nota: este tutorial supone que tenemos a mysql en la variable PATH del sistema.

Si no, aquí hay un post sobre ello. Dependiendo de cómo hayamos instalado MySQL la ruta puede variar, si lo hicimos con XAMPP entonces está en C:\xampp\mysql\bin.

Si lo hicimos con workbench debe estar en archivos de programa y cambiará dependiendo de la versión que hayamos instalado. Una vez que esté en la variable PATH continuemos.

Sobre las mayúsculas y minúsculas

No hay un estándar en SQL que indique cómo interactuamos con el motor. Ya que “UPDATE tabla SET col = valor” y “UpDaTE tabla seT col = valor” son lo mismo.

Esto quiere decir que las mayúsculas y minúsculas no importan, el motor las entenderá igual. Eso sí, para los nombres de tablas, columnas y bases de datos debemos respetar la forma.

Introducción a la CLI de MySQL o MariaDB

Iniciar sesión

Para iniciar sesión o entrar a administrar MySQL debemos ejecutar el comando:

mysql -u usuario -p

En donde usuario es el usuario que tenemos. No escribimos la contraseña, porque será preguntada al presionar Enter.

Adicionalmente si queremos conectarnos directamente a una base de datos al iniciar sesión podemos pasar otro argumento con el nombre de la misma, así:

mysql -u usuario -p mi_base_de_datos

En ese caso abriríamos una sesión y nos conectaríamos directamente a la base de datos llamada mi_base_de_datos

Por lo tanto, si yo quisiera conectarme a la tabla “sesiones” con el usuario root escribiría lo siguiente:

mysql -u root -p sesiones

Lo que abriría una nueva sesión y seleccionaría dicha base de datos:

Iniciar sesión

Iniciar sesión

Mostrar bases de datos

Para mostrar las bases de datos existentes ejecutamos el siguiente comando:

show databases;

Lo que nos dará una lista de las mismas:

Mostrar bases de datos existentes

Mostrar bases de datos existentes

Crear base de datos

Podemos crear una base de datos con el siguiente comando:

create database mi_base_de_datos;

Si la creamos y después las listamos aparecerá nuestra nueva base de datos:

Crear base de datos

Crear base de datos

Eliminar base de datos

Para eliminar por completo una base de datos usamos el siguiente comando:

drop database mi_base_de_datos;

Está de más decir que no podremos recuperarla más tarde, y su eliminación será permanente.

Eliminar base de datos

Eliminar base de datos

Seleccionar base de datos

Cuando creamos una base de datos no necesariamente la estamos usando. Esto quiere decir que las tablas que vayamos a crear se van a crear sobre la base de datos seleccionada.

Por ejemplo, aquí tengo seleccionada a la base de datos llamada sesiones, ya que se indica entre corchetes:

Prompt con base de datos seleccionada

Prompt con base de datos seleccionada

Si quisiera cambiarme a otra base de datos, usaría este comando:

use tartaleta;

En este caso me “cambiaría” a la base de datos tartaleta. Y el prompt también cambiaría:

Cambiar base de datos

Cambiar base de datos

Mostrar tablas de la base de datos

Para mostrar las tablas que tiene nuestra base de datos seleccionada usamos el comando:

show tables;

Y para ver la definición de una tabla usamos:

describe mi_tabla;

Veamos esta imagen en donde mostramos todas las tablas y luego listamos la definición de la tabla usuarios:

Mostrar y describir tablas

Mostrar y describir tablas

Crear tablas

Para crear tablas primero debemos seleccionar una base de datos como se vio arriba. Y luego simplemente ejecutamos la sentencia de creación.

Podemos usar múltiples líneas, ya que el comando termina hasta que ponemos un punto y coma. Por ejemplo, voy a crear una tabla de películas que tiene la siguiente definición:

Puedo pegar toda la sentencia en la CLI de MySQL:

Crear tablas

Crear tablas

Las flechas que aparecen a la izquierda son agregadas automáticamente e indican un salto de línea.

Eliminar tablas

Para eliminar una tabla usamos este comando:

drop table mi_tabla;

Justo como se ve en la imagen en donde eliminamos la tabla llamada peliculas:

Eliminar tablas

Eliminar tablas

Vaciar tablas

Si no queremos eliminar las tablas, sino sólo vaciarlas podemos usar dos comandos.

El primero es una simple eliminación de todas las filas:

delete from mi_tabla;

El segundo (el que recomiendo) es:

truncate table mi_tabla;

Insertar datos

Voy a crear de nuevo la tabla de películas para poder insertar algunos datos en la misma. Para insertar datos en MySQL usamos el siguiente comando:

Hay otras sintaxis pero recomiendo esa. Entonces para insertar una nueva película hago esto:

Como se ve arriba, no especifico el id. Y no lo hago debido a que esa columna está declarada como autoincremento, así que incrementará en uno cada que yo haga una inserción y el motor se encargará de ello.

Mostrar datos

Para mostrar todos los registros de una tabla, usamos:

select * from mi_tabla;

El asterisco sirve para indicar que queremos todos los campos. Si queremos únicamente algunos campos, hacemos esto:

select campo1, campo2 from mi_tabla;

Adicionalmente podemos cambiar el nombre de una columna únicamente al mostrarse. Primero veamos este ejemplo que lista todas las películas:

select id, titulo, anio from peliculas;

Seleccionar datos

Seleccionar datos

Vemos que se listan las columnas así como fueron definidas. Pero no me gusta que diga “anio” aunque tampoco puedo llamarla año por la letra ñ que puede causar problemas.

En lugar de ello podemos usar un alias que afectará únicamente al proyectar los datos. Así:

select id, titulo, anio as año from peliculas;

Notemos que pusimos “as” y eso quiere decir “como” en español. Lo que cambiará anio a año al mostrar los datos:

Alias

Alias

Mostrar datos con WHERE

Al seleccionar datos podemos usar el operador WHERE para filtrarlos. Por ejemplo, si queremos listar las películas en donde el año sea menor que 2000 hacemos esto:

Mostrar datos con WHERE y LIKE

Otro operador famoso y que viene de ayuda siempre es like. Con like podemos usar el comodín %. Esto sirve para buscar datos que contengan texto. Por ejemplo, la siguiente consulta listaría todas las películas que en su título tengan “player”:

 

Esa consulta coincide con “Ready player one”, “The player”, “playera” y más.

Ya que el % especifica “cualquier cosa”. Y como ponemos uno antes y uno después, indicamos que puede tener cualquier texto antes o después, siempre y cuando tenga la palabra player.

Actualizar datos

Para actualizar datos usamos update. La sintaxis es:

Las columnas que no especifiquemos se quedarán como están. También podemos hacerlo con un where:

Lo siguiente actualizar el nombre de la película en donde el id sea 1:

Actualización de datos

Actualización de datos

Apreciamos en la imagen que primero mostramos los datos, luego hacemos el update y en el paso 3 al listar de nuevo, el título ha cambiado.

Eliminar datos

Para terminar con este tutorial de MySQL veamos cómo eliminar datos. La sintaxis es:

delete from tabla;

O con un where:

delete from tabla where condicion;

Para eliminar una película en donde el año sea 2018 hacemos esto:

Con el siguiente resultado:

Eliminación de datos en MySQL

Eliminación de datos en MySQL

Conclusión

Una vez que ya leíste la introducción a MySQL te invito a ver más tutoriales de este motor de base de datos.