Tutorial MariaDB - Comandos Básicos

Tutorial MariaDB – Comandos Básicos

En este Tutorial MariaDB vamos a aprender nuevos comandos, los más básicos a través de los cuales comenzaremos a interactuar con este sistema de bases de datos. La distinción entre lo básico, medio y avanzado muchas veces puede ser algo relativo y difícil de representar, así que intentaré hacer mi mejor esfuerzo.

En este tutorial vamos a asumir que el lector ya ha leído nuestro artículo sobre la personalización de nuestro entorno de programación en macOS y también está familiarizado con el contenido de nuestra anterior entrega en esta serie donde abordamos la instalación y configuración de MariaDB.

Son realmente necesarios estos comandos?

En mi opinión, sí. Todos conocemos herramientas de pago como Navicat for MariaDB, una aplicación multiplataforma que nos permite conectarnos de manera remota y desde la comodidad de nuestro entorno gráfico, logrando en la mayoría de los casos que seamos mucho más productivos. Todo esto está muy bien y es un escenario que recomiendo, pero hay ocasiones (muy frecuentes) en ambientes profesionales donde ante situaciones inesperadas tendremos que interactuar directamente con el terminal de MariaDB y en algunos casos bajo bastante presión, momentos donde nuestro dominio de este sistema de bases de datos y sus comandos harán la diferencia.

Iniciar el servidor de MariaDB

Pues antes de comenzar a interactuar con MariaDB a través de la línea de comandos, primero tenemos que iniciar el servicio asociado a este sistema de bases de datos. Luego de haber seguido los pasos que hemos ejecutado en el anterior artículo (nombrado al inicio de este tutorial) no tendríamos que hacer nada ya que este se estaría ejecutando en cada inicio del sistema y esto lo podemos comprobar desde macOS con el comando:

…en la salida en pantalla se nos informa que el demonio (informática) se está ejecutando satisfactoriamente y nos muestra el pid (Process Identification Number) asociado a este. Pero asumiendo que no es así, supongamos que no deseamos que esté corriendo constantemente en el background, pues lo podemos iniciar de esta manera:

Proceso donde detenemos e iniciamos MariaDB para luego verificar que el puerto asociado al servicios se encuentra abierto.

…en esta imagen se pueden observar tres acciones: la primera detiene el servicio, la segunda lo inicia y en la tercera verificamos que el puerto asociado a este servicio (por defecto el 3306) se encuentra en escucha (LISTEN) o lo que sería lo mismo, en espera de peticiones. Todo listo para continuar a la siguiente sección.

Conectarnos a MariaDB desde la terminal de macOS

…el parámetro -u nos permite especificar el usuario con el cual nos conectaremos a nuestra base de datos. En un inicio tendrá que ser el usuario root, pero luego ya deberíamos, teniendo en cuenta la seguridad, acceder con un usuario cuyos privilegios sean solamente los necesarios para las tareas a realizar.

Visualizar las bases de datos en nuestro servidor

…aquí podemos observar las bases de datos por defecto que crea MariaDB al instalarse, y en nuestro caso, luego de haber ejecutado el script de seguridad, son las necesarias para su funcionamiento.

Crear una base de datos nueva

…en el ejemplo creamos la base de datos “empresa” especificando que el juego de caracteres será “utf8”, específicamente la variación “utf8_spanish_ci”. Tener en cuenta la variación o collate de nuestro juego de caracteres es sumamente importante y sobre todo fundamental tenerlo en cuenta en la etapa de diseño, créanme que les evitará muchos dolores de cabeza. La variación “utf8_spanish_ci” hace referencia directa a las reglas que conformarían el llamado “español moderno”, el cual contempla la ñ como una letra más del alfabeto, ubicada entre las letras “n” y “o”, la “ch” se considera la unión de la letra “c” y “h” al igual que la “ll” que está conformada por la unión de la letra “l”. En mi opinión esta variación es mucho más natural, coherente y lógica que la versión “utf8_spanish2_ci”, esta última hace referencia al “español tradicional” y no cuenta con las bondades u optimizaciones de la opción que hemos escogido. Les pregunto: ¿Han visto alguna vez un teclado de ordenador o una máquina de escribir con teclas “ll” o “ch”?

Creación de un usuario con privilegios

…acabamos de crear el usuario “josuevhn” identificado por “P@ssw0rd*” como contraseña. Evidentemente esta contraseña ha sido establecida en pos de hacer el ejemplo más gráfico, pero en la vida real por favor elija alternativas cuya palabra/s no sean tan evidentes.

Luego de esto hemos seleccionado la base de datos sobre la que deseamos trabajar, en este caso “empresa”, y acto seguido le otorgamos todos los permisos al usuario “josuevhn” sobre la misma.

Continuamos ejecutando un “FLUSH” para recargar todos los privilegios y terminamos listando los usuarios y sus respectivos host asociados.

Cómo listar y eliminar los privilegios de un usuario

Crear una tabla y añadirle contenido

…antes que nada especificamos la base de datos a usar, proseguimos creando la tabla “trabajadores” con las columnas “id, nombre, cedula, RUC, fecha_de_nacimiento, salario_mensual”. En la declaración de los campos establecemos los tipos de datos requeridos para estos al igual que los atributos necesarios para lograr ciertos comportamientos específicos. En nuestro ejemplo hemos usado atributos como UNSIGNED para aquellos datos numéricos donde los valores no contemplarán signos (negativos o positivos) y NOT NULL para todos los campos ya que son requeridos (ninguno de estos puede dejarse en blanco), AUTO_INCREMENT por su parte incrementa automáticamente el valor de esa columna en una unidad por cada fila de la tabla, UNIQUE restringe la columna a que no acepte valores duplicados y por último PRIMARY KEY establece la llave primaria.

En el siguiente comando mostramos una descripción de la tabla donde podemos verificar si se ha creado tal y como queríamos, es decir, cumpliendo nuestros requerimientos.

Continuamos añadiendo una fila / tupla a nuestra tabla “trabajadores”. Al campo “id” le asignamos NULL ya que el mismo cuenta con el atributo AUTO_INCREMENT, esto nos permite despreocuparnos de incrementar de manera manual este campo, MariaDB sustituye el valor NULL por valor siguiente en la secuencia del campo “id”. Cabe aclarar que los campos con el atributo PRIMARY KEY no pueden contener valores NULL, evidentemente esta es una excepción que MariaDB logra solver al sustituir este valor en tiempo de ejecución.

Terminamos mostrando los datos introducidos usando la orden SELECT que nos permite ejecutar consultas, en este caso todos los datos contenidos en la tabla “trabajadores”.

Renombrar tabla

Ordenar los resultados de una consulta

…en este ejemplo hemos ordenado columnas de tipo varchar, int y date, de manera ascendente y descendente mediante las ordenes “ASC” y “DESC” respectivamente.

Expresiones regulares

Las expresiones regulares son secuencia de caracteres que forman patrones de búsqueda, que en base a nuestra necesidad, brindan una solución bien flexible.

PatrónBúsqueda
^Inicio de cadena de texto.
$Fin de cadena de texto.
.Cualquier caracter.
[…]Cualquier caracter listado dentro de los corchetes.
[^…]Cualquier caracter menos los listado dentro de los corchetes.
p1 | p2 | p3Alternar cualquiera de los tres patrones.
*Cero o más instancias a partir del elemento.
+Uno o más instancias a partir del elemento.
{ n } n instancias a partir del elemento.
 { m, n } De m hasta n instancias a partir del elemento.

Proseguimos con algunos ejemplos sobre su uso:

…en la línea 13 mostramos las filas cuyo texto en la columna “nombre” comienzan con la letra “O”, continuamos en la línea 22 mostrando las filas cuyo texto en la columna “nombre” finaliza con una vocal, en la línea 31 filtramos aquellos nombres que terminan en la letra “y” o “l”, ejecutamos otra consulta en la linea 40, esta vez sobre una columna de tipo numérico, donde filtramos en la columna “cédula ” todas aquellas cédulas que comienzan con los caracteres “175”, finalizamos en la línea 50 mostrando todas aquellas cédulas que cumplen el patrón de comenzar con “175” o finalizar con “66” o “5”.

Borrar contenido de una tabla sin modificar su estructura

Mediante el comando TRUNCATE podemos conformar una consulta en pos de borrar todos los registros de una tabla sin necesidad de eliminar la tabla o de modificar su estructura. Una consulta tipo sería la siguiente:

Eliminar fila de una tabla

En caso de que necesitemos eliminar una fila específica de una tabla, el comando DELETE nos va a ayudar:

Eliminar columna de una tabla

Mediante el comando ALTER podemos eliminar una columna de una tabla ya creada:

…usando el mismo comando podremos añadir una columna a una tabla ya creada:

…ya en este punto solamente habría que insertarle datos a la nueva columna.

Eliminar una tabla

Eliminar una base de datos

Comprobar integridad de una base de datos

…también podemos comprobar la integridad de todas las bases de datos de nuestro servidor, usando el mismo comando, con la siguiente modificación:

Realizar copia de seguridad de una base de datos o de todas

Las copias de seguridad o Backups, las vamos a realizar con el comando mysqldump. Este comando se instala con MariaDB, es parte de esta pero no de su terminal, es decir que se accede a él como un comando cualquiera del sistema. La sintaxis del mismo es la siguiente:

…siguiendo estas especificaciones:

…hemos hecho una copia de seguridad de nuestra base de datos empresa, en la línea 17 podemos observar el fichero que contiene toda la información de nuestra base de datos, este es nuestro backup. Ahora que tal, si necesitamos de todo nuestro servidor, es decir todas las bases de datos?

…en la línea 18 tenemos el fichero con todas las bases de datos.

Cuando se tienen grandes bases de datos muchas veces se hace necesario comprimir las copias de seguridad, esto lo podemos lograr con una sencilla modificación al comando usado en el ejemplo anterior:

…ya se habrán dado cuenta al comparar los archivos “server.sql.gz” con el anterior “server.sql”, hemos reducido la copia de seguridad de 511K a 137K, esto en el orden de los megas o gigas puede significar un ahorro significativo.

Podemos restaurar nuestras copias de seguridad de manera tan fácil como las creamos:

…en el caso de las copias de seguridad comprimidas, podemos o bien descomprimir el archivo con el comando gunzip o reducir estos pasos en uno solo:

…de esta forma descomprimimos el archivo cuyo flujo es direccionado a través de un “pipe” hacia el comando mysqldump.

Falta aún mucho por aprender… Suscríbete a nuestra lista de correo mediante el formulario en el panel derecho y síguenos en nuestras redes sociales, mantente así al tanto de todas nuestras publicaciones futuras.

Espero que todo cuanto se ha dicho aquí, de una forma u otra le haya servido de aprendizaje, de referencia, que haya valido su preciado tiempo.

Este artículo, al igual que el resto, será revisado con cierta frecuencia en pos de mantener un contenido de calidad y actualizado.

Cualquier sugerencia, ya sea errores a corregir, información o ejemplos a añadir será, más que bienvenida, necesaria!