Actualizado el domingo, 17 marzo, 2024

Los datos son la parte más importante de cualquier tipo de aplicación. Los datos necesarios para la aplicación deben almacenarse permanentemente. El servidor de base de datos se utiliza para almacenar los datos de la aplicación de forma permanente. MariaDB es uno de los servidores de bases de datos populares que se llama la rama de un servidor MySQL. Las diferentes características de MariaDB, la forma de instalar MariaDB en Ubuntu, crear bases de datos y tablas, y realizar varios tipos de tareas comunes relacionadas con bases de datos se explican en detalle en este tutorial.

Contenido:

  1. Conceptos básicos de MariaDB
  2. Diferencias entre MariaDB y MySQL
  3. Características importantes de MariaDB
  4. Instalar MariaDB en Ubuntu
  5. Crear un usuario con todos los privilegios
  6. Hacer conexión con MariaDB
  7. Crear y eliminar base de datos
  8. Tipos de datos MariaDB
  9. Crear y eliminar tablas
  10. Operaciones CRUD
  11. Uso de cláusulas
  12. Uso del operador de comparación
  13. Uso del operador lógico
  14. Uso de funciones agregadas

Conceptos básicos de MariaDB

Es un servidor de base de datos relacional de código abierto que se puede utilizar con la aplicación sin ningún costo para almacenar datos importantes. Es la versión mejorada del servidor MySQL. Se puede utilizar una aplicación cliente o cualquier script para realizar la conexión con el servidor de base de datos. El cliente predeterminado de la base de datos MariaDB es mysql. La conexión a la base de datos MariaDB se puede crear desde el terminal utilizando el cliente. Cualquier herramienta de interfaz gráfica de usuario (GUI) se puede utilizar también para hacer la conexión con la base de datos MariaDB como phpMyAdmin. Puede usar cualquier lenguaje de scripting del lado del servidor como PHP, Perl, Python, etc. para realizar la conexión con el servidor de base de datos MariaDB. Las formas de hacer las conexiones de base de datos desde el terminal, utilizando la herramienta GUI y utilizando el script PHP se muestran en la parte «Hacer conexión con MariaDB» de este tutorial.

Diferencia entre MariaDB y MySQL

MariaDB y MySQL tienen muchas diferencias importantes. Algunos de ellos se mencionan en la siguiente tabla:

MariaDBMySQL
Se puede utilizar sin ningún costo.Tiene versiones gratuitas y de pago.
Fue lanzado en 2009.Fue lanzado en 1995.
Está desarrollado utilizando los lenguajes C, C++, Perl y Bash.Se desarrolla utilizando los lenguajes C y C++.
Funciona más rápido.Funciona más lento.
Es compatible con muchos motores de base de datos nuevos.Admite menos motores de base de datos.
No admite enmascaramiento de datos ni herramientas dinámicas.Admite enmascaramiento de datos y herramientas dinámicas.
Soporta un gran número de conexiones.Admite un pequeño número de conexiones.
Admite cifrado binario y una tabla temporal.No admite el cifrado binario y una tabla temporal.

Características importantes de MariaDB

Algunas características importantes del servidor de base de datos MariaDB se mencionan a continuación:

  • Es de código abierto y está licenciado bajo GPL, LGPL o BSD.
  • Es robusto y escalable.
  • Utiliza un lenguaje de consulta popular y estándar.
  • Es compatible con diferentes sistemas operativos.
  • Se puede utilizar con diferentes lenguajes de programación.
  • Actualiza el índice automáticamente.
  • Es compatible con muchos lenguajes de scripting y tecnología de clúster Galera.

Instalar MariaDB en Ubuntu

Debe instalar MariaDB en el sistema operativo Ubuntu para realizar las tareas relacionadas con la base de datos.

Ejecute el siguiente comando para actualizar el sistema:

$ sudo apt update

Ejecute el siguiente comando para instalar el servidor MariaDB:

$ sudo apt install mariadb-server

Ejecute el siguiente comando para ejecutar el script de seguridad de MariaDB que ayudará a los usuarios a modificar algunas configuraciones predeterminadas del servidor MariaDB:

sudo mysql_secure_installation

El siguiente resultado aparece después de ejecutar el script de seguridad. Puede establecer la contraseña de root aquí o mantener la contraseña en blanco presionando enter:

A continuación, aparecerán muchas otras opciones de seguridad y el usuario seleccionará las opciones necesarias para modificar la configuración predeterminada. Después de configurar, ejecute el siguiente comando para verificar la versión instalada del servidor MariaDB y si funciona correctamente o no:

sudo mariadb

El siguiente resultado muestra que se ha instalado la versión 10.5.15 de MariaDB:

Crear un usuario con todos los privilegios

Puede crear un nuevo usuario con todos los privilegios ejecutando el siguiente comando con el nombre de usuario y la contraseña.

GRANT ALL ON *.* TO 'fahmida'@'localhost' IDENTIFIED BY 'secret'
WITH GRANT OPTION;

El siguiente resultado muestra que se ha creado un usuario llamado ‘fahmida’ con todos los privilegios. La contraseña del usuario es ‘secreta’.

Hacer conexión con MariaDB

La conexión al servidor MariaDB se puede implementar mediante cualquier aplicación cliente o mediante cualquier lenguaje de script descrito anteriormente. En esta parte, se muestra la forma de conectar el servidor MariaDB utilizando el cliente mysql, la interfaz GUI y el script PHP.

1. Uso del cliente Mysql

Ejecute el siguiente comando para conectarse con el servidor MariaDB utilizando el cliente mysql:

mysql -u fahmida –p

Aparece el siguiente mensaje si el inicio de sesión en el servidor se realiza correctamente.

2. Uso de PHPMyAdmin

Debe instalar el paquete PHPMyAdmin antes, que no se muestra aquí. Abra el navegador y ejecute la siguiente URL para abrir el formulario de inicio de sesión para conectarse con el servidor de base de datos.

http://localhost/phpmyadmin

Escriba el nombre de usuario y la contraseña válidos para iniciar sesión en el servidor.

La siguiente interfaz aparece si el inicio de sesión en el servidor se realiza correctamente. La versión del servidor MariaDB instalado se muestra en la sección Servidor de base de datos.

3. Uso de PHP Script

Cree un archivo PHP con el siguiente script para realizar la conexión con el servidor de base de datos. El script imprime un mensaje de éxito si la conexión de base de datos es correcta. De lo contrario, imprime un mensaje de error.

El siguiente resultado muestra que la conexión de base de datos es correcta:

<?php
//Initialize connection variable
$username = 'fahmida';
$password = 'secret';
$host = 'localhost';

//Create a connection with the database server
$db_connection = new mysqli($host, $username, $password);

//Check the connection
if(!$db_connection)
   die('Unable to connect with the database server.' . mysql_error());
         
echo 'Connected to the database server successfully.';
mysql_close($db_connection);
?>

El siguiente resultado muestra que la conexión de base de datos es correcta:

Crear y eliminar base de datos

El SQL para crear y eliminar la base de datos se menciona a continuación:

Crear sintaxis de base de datos:

CREATE DATABASE [IF NOT EXISTS] db_name

Aquí, la opción IF NOT EXISTS es opcional. Se utiliza para comprobar si la base de datos se crea antes o no. Si la base de datos se creó antes, la base de datos no se volverá a crear.

Ejemplo:

La siguiente instrucción SQL crea la base de datos denominada test si no se creó antes.

CREATE DATABASE IF NOT EXISTS test;

El siguiente resultado muestra que la base de datos se ha creado correctamente:

Eliminar sintaxis de base de datos:

DROP DATABASE db_name

Cualquier base de datos existente se puede eliminar mediante el comando DROP.

Ejemplo:

DROP DATABASE test;

El siguiente resultado muestra que se ha eliminado la base de datos test:

Tipos de datos de MariaDB

La tabla de la base de datos MariaDB admite los diversos tipos de datos para almacenar los diferentes tipos de datos. Los tipos de datos de MariaDB se clasifican en cuatro grupos. Estos se dan en lo siguiente:

  1. Tipos de datos numéricos
  2. Tipos de datos de cadena
  3. Tipos de datos temporales
  4. Tipos de datos espaciales

A. Tipos de datos numéricos

Muchos tipos de tipos de datos numéricos se pueden utilizar para almacenar los valores numéricos en tablas de base de datos MariaDB. Los propósitos del uso de los diferentes tipos de datos numéricos se describen en la tabla siguiente:

Tipos de datos numéricosPropósitos
BOOLEANSe utiliza para almacenar valores TRUE o FALSE.
TINYINTSe utiliza para almacenar un entero muy pequeño.
SMALLINTSe utiliza para almacenar un pequeño entero.
MEDIUMINTSe utiliza para almacenar un entero de tamaño mediano.
INTSe utiliza para almacenar un entero.
BIGINTSe utiliza para almacenar un entero muy grande.
DECIMALSe utiliza para almacenar números de punto fijo.
FLOTARSe utiliza para almacenar un número de punto flotante de precisión simple.
DOBLESe utiliza para almacenar un número de punto flotante de doble precisión.
BITSe utiliza para almacenar un poco de valor.

B. Tipos de datos de cadena

Se pueden usar muchos tipos de tipos de datos de cadena para almacenar los valores de caracteres o cadenas en tablas de base de datos MariaDB. Los propósitos del uso de los diferentes tipos de datos de cadena se describen en la tabla siguiente:

Tipos de datos de cadenaPropósitos
CHARSe utiliza para almacenar una cadena de caracteres de longitud fija.
VARCHARSe utiliza para almacenar una cadena de caracteres de longitud variable.
TINYTEXTSe utiliza para almacenar una cadena no binaria muy pequeña.
TEXTSe utiliza para almacenar una pequeña cadena no binaria.
MEDIUMTEXTSe utiliza para almacenar una cadena no binaria de tamaño mediano.
LONGTEXTSe utiliza para almacenar una cadena no binaria grande.
TINYBLOBSe utiliza para almacenar un objeto binario grande muy pequeño.
BLOBSe utiliza para almacenar un pequeño objeto binario grande.
MEDIUMBLOBSe utiliza para almacenar un objeto binario grande de tamaño mediano.
LONGBLOBSe utiliza para almacenar un objeto binario grande muy grande.
BINARYSe utiliza para almacenar una cadena binaria de longitud fija.
VARBINARYSe utiliza para almacenar una cadena binaria de longitud variable.
ENUMSe utiliza para almacenar los datos de enumeración.
SETSe utiliza para almacenar los datos establecidos.

C. Tipos de datos temporales

Los tipos de datos temporales se utilizan para almacenar los datos y los datos relacionados con el tiempo en las tablas de base de datos. Los propósitos del uso de los diferentes tipos de datos temporales se describen en la tabla siguiente:

Tipos de datos temporalesPropósitos
DATESe utiliza para almacenar el valor de fecha en el formato, YYYY-MM-DD.
TIMESe utiliza para almacenar el valor de tiempo en el formato, hh:mm:ss.
DATETIMESe utiliza para almacenar el valor de fecha y hora en el formato, YYYY-MM-DD. hh:mm:ss.
TIMESTAMPSe utiliza para almacenar el valor de fecha y hora actual en el formato, YYYY-MM-DD. hh:mm:ss.
YEARSe utiliza para almacenar el valor en formato de 2 dígitos (YY) o formato de 4 dígitos (YYYY).

D. Tipos de datos espaciales

Muchos tipos de datos espaciales se utilizan para almacenar los diversos valores geográficos en las tablas de base de datos MariaDB. Los propósitos del uso de los diferentes tipos de datos espaciales se describen en la tabla siguiente:

Tipos de datos espacialesPropósitos
POINTSe utiliza para almacenar valores de puntos (coordenadas X e Y.
MULTIPOINTSe utiliza para almacenar la colección de valores de puntos.
POLYGONSe utiliza para almacenar valores de polígonos.
MULTIPOLYGONSe utiliza para almacenar la colección de valores poligonales.
GEOMETRYSe utiliza para almacenar el valor espacial de cualquier tipo.
GEOMETRYCOLLECTIONSe utiliza para almacenar la colección de valores de geometría.
LINESTRINGSe utiliza para almacenar el valor de la curva.
MULTILINESTRINGSe utiliza para almacenar la colección de valores LINESTRING.

Los usos de algunos tipos de datos para crear una tabla se muestran en la siguiente parte de este tutorial.

Crear y eliminar tablas

La forma de crear y eliminar las tablas de la base de datos MariaDB se muestra en esta parte.

Crear sintaxis de tabla:

CREATE OR REPLACE TABLE [IF NOT EXISTS] table_name(
    column_1_definition,
    column_2_definition,
    column_2_definition,
    ...,
    table_constraints
) engine=storage_engine;

Aquí, la opción IF NOT EXISTS es opcional y se utiliza para crear la tabla si la tabla no se ha creado antes. Se utiliza un nombre de tabla único después de la palabra clave CREATE TABLE para crear la tabla. A continuación, se define la lista de nombres de columna con los tipos de datos y los atributos necesarios para la tabla. Cada nombre de columna está separado por una coma. Por último, se define el nombre del motor de almacenamiento de la tabla. El nombre predeterminado del motor de almacenamiento es InnoDB si no se define ningún tipo de motor en el momento de la creación de la tabla.

Cada definición de columna de la tabla puede contener las siguientes opciones:

column_name data_type(longitud) [NO NULO] [VALOR PREDETERMINADO] [AUTO_INCREMENT] 
column_constraint;

El nombre único se utiliza para cada columna de la tabla seguido de un tipo de datos compatible con la base de datos MariaDB. El atributo NOT NULL se usa con el nombre de columna si la columna no puede almacenar el valor NULL. El atributo DEFAULT VALUE se utiliza para almacenar un valor predeterminado en la columna si no se inserta ningún valor en la columna en el momento de la inserción. El atributo AUTO_INCREMENT se utiliza para incrementar el valor del por 1 automáticamente. Este atributo se utiliza principalmente para la columna PRIMARY KEY.

Ejemplo:
Ejecute el siguiente comando para crear una base de datos denominada testdb si no se ha creado antes:

CREATE DATABASE testdb;

Ejecute el siguiente comando para seleccionar la base de datos testdb:

use testdb;

Ejecute el siguiente comando para crear una tabla denominada productos 6 campos de los diferentes tipos de datos:

CREATE TABLE products(
id int auto_increment,
name varchar(255) not null,
type varchar(50) not null,
manufacturing_date date not null,
expire_date date not null,
price decimal(5,2) not null,
primary key(id)
);

El siguiente resultado aparece si la tabla se crea correctamente:

Eliminar sintaxis de tabla:

DROP TABLE [IF EXISTS] table_name;

La opción IF NOT EXISTS se puede utilizar para comprobar si la tabla ya existe o no antes de crear la tabla.

Ejemplo:

DROP TABLE IF EXISTS products;

El siguiente resultado aparece si la tabla se elimina correctamente:

Operaciones CRUD

Las operaciones CRUD indican los cuatro tipos de operaciones. Estos son Crear/Insertar, Leer/Seleccionar, Actualizar y Eliminar registros en la tabla. Estas operaciones se explican con los ejemplos de esta parte.

1. Insertar datos

Ejecute la siguiente consulta

INSERT INTO products
(name, type, manufacturing_date, expire_date, price)
VALUES ("Diploma Milk 1 KG","Milk","2022-01-12","2023-01-12", 600);

El siguiente resultado aparece si se inserta correctamente un nuevo registro en la tabla:

Ejecute la siguiente consulta

INSERT INTO products
(name, type, manufacturing_date, expire_date, price)
VALUES ("FRESH Oil 5 KG","Oil","2022-06-15","2024-05-15", 900),
("Teer Salt 1 KG","Salt","2022-02-10","2023-02-11", 50),
("FRESH Sugar 1 KG","Sugar","2022-05-25","2024-01-19", 100) ;

El siguiente resultado aparece si se insertan tres registros correctamente en la tabla:

2. Leer datos

Ejecute la siguiente consulta SELECT para leer todos los registros de la tabla de productos:

SELECT * FROM products;

El siguiente resultado aparece si la consulta SELECT funciona correctamente:

3. Actualizar datos

Ejecute la siguiente consulta UPDATE que actualiza los valores de los campos tipo y precio si el valor de identificación de la fila es 1.

UPDATE products
SET type = "Powder Milk", price = 650
WHERE id = 1;

El siguiente resultado aparece si la consulta UPDATE funciona correctamente:

4. Eliminar datos

Ejecute la siguiente consulta DELETE que elimina los registros de la tabla de productos donde el valor del tipo es «Sugar«:

DELETE FROM products WHERE type = "Sugar";

El siguiente resultado aparece si la consulta DELETE funciona correctamente:

Ejecute la siguiente consulta DELETE para dejar vacía la tabla:

DELETE FROM products ;

Uso de cláusulas

Se utilizan diferentes cláusulas con las consultas SELECT, INSERT, UPDATE y DELETE. Los usos de las cláusulas de uso común se mencionan a continuación:

  1. Cláusula WHERE
    Se utiliza con las consultas SELECT, INSERT, UPDATE y DELETE para filtrar los datos.
  2. Cláusula FROM
    Se utiliza principalmente para seleccionar los datos de la tabla.
  3. Cláusula DISTINCT
    Se utiliza para recuperar datos únicos de la tabla.
  4. Cláusula ORDER BY
    Se utiliza para leer los registros de la tabla en orden ordenado.
  5. Cláusula GROUP BY
    Se utiliza para recuperar los registros de la tabla agrupando una o más columnas.
  6. Cláusula HAVING
    Se utiliza con la cláusula GROUP BY para recuperar los registros en función de la condición.

Ejemplo:
Los usos de la cláusula ORDER BY se muestran en el siguiente ejemplo.

Ejecute la siguiente consulta

INSERT INTO products
(name, type, manufacturing_date, expire_date, price)
VALUES ("Teer Oil 5 KG","Oil","2021-06-15","2023-05-15", 950),
                 ("Arong Salt 500G","Salt","2020-02-19","2022-12-11", 20),
                 ("FRESH Salt 1 KG","Salt","2022-06-25","2024-03-19", 55);

Ejecute la siguiente consulta

SELECT * FROM products
ORDER BY price DESC;

El siguiente resultado aparece después de ejecutar la consulta anterior:

Uso de operadores de comparación

El servidor MariaDB que se utiliza con la cláusula WHERE de la consulta admite diferentes tipos de operadores de comparación. Algunos operadores de comparación de uso común se mencionan en la siguiente tabla:

Operador de comparaciónPropósito
!=Se utiliza para la comparación no igual.
<Se utiliza para menos de comparación.
<=Se utiliza para una comparación menor o igual.
<=>Se utiliza para la comparación igual NULL-safe.
=Se utiliza para la comparación igual.
>Se utiliza para más que la comparación.
>=Se utiliza para una comparación mayor o igual.
BETWEEN ANDSe utiliza para comprobar los valores que están entre los valores.
NOT BETWEENSe utiliza para comprobar los valores que no están entre los valores.
INSe utiliza para comprobar los valores que coinciden con la lista de valores.
NOT INSe utiliza para comprobar los valores que no coinciden con la lista de valores.
IS NOT NULLSe utiliza para comprobar si el valor no es NULL o no.
IS NULLSe utiliza para comprobar si el valor es NULL o no.

Ejemplo:
Ejecute la siguiente consulta

SELECT name, type, price
FROM products
WHERE type IN (“Salt”, “Oil”)
ORDER BY type;

El siguiente resultado aparece después de ejecutar la consulta anterior:

Uso de operadores lógicos

El servidor MariaDB que se utiliza con la cláusula WHERE de la consulta admite diferentes tipos de operadores lógicos. Algunos operadores lógicos de uso común se mencionan en la tabla siguiente:

Operador lógicoPropósito
!Se utiliza para la comparación lógica NOT.
&&Se utiliza para la comparación lógica AND.
XorSe utiliza para la comparación lógica XOR.
||Se utiliza para la comparación lógica de OR.

Ejemplo:
Ejecute la siguiente consulta

SELECT name, price
FROM products
WHERE type = “Powder Milk” || type = “Salt”;

El siguiente resultado aparece después de ejecutar la consulta anterior:

Uso de funciones agregadas

El servidor MariaDB que se utiliza con la consulta SELECT admite diferentes tipos de funciones agregadas. Algunas funciones agregadas de uso común se mencionan en la tabla siguiente:

Función de agregadoPropósito
avg()Se utiliza para averiguar el promedio de números no nulos.
count()Se utiliza para contar el número de filas de una tabla.
group_concat()Se utiliza para concatenar la cadena de un grupo con varias opciones.
max()Se utiliza para averiguar el valor máximo en un conjunto.
min()Se utiliza para averiguar el valor mínimo en un conjunto.
Sum()Se utiliza para averiguar la suma de un campo numérico particular.
Stddev()Se utiliza para averiguar la desviación estándar de la población.
Stddev_pop()Igual que stddev()
stddev_samp()Se utiliza para averiguar la desviación estándar de la muestra.
Var_pop()Se utiliza para averiguar la varianza estándar de la población.
Varp_sam()Se utiliza para averiguar la varianza de la muestra.
Variance()Igual que var_pop().
Bit_and()Se utiliza para averiguar el bit a bit AND.
Bit_or()Se utiliza para averiguar el OR bit a bit.
Bit_xor()Se utiliza para averiguar el XOR bit a bit.

Ejemplos:
Ejecute la siguiente consulta

SELECT COUNT(id) as Total_Products
FROM products;

El siguiente resultado aparece después de ejecutar la consulta anterior:

Ejecute la siguiente consulta

SELECT type, SUM(price)
FROM products
GROUP BY type;

El siguiente resultado aparece después de ejecutar la consulta anterior:

Ejecute la siguiente consulta

SELECT name, type, MAX(price)
FROM products;

El siguiente resultado aparece después de ejecutar la consulta anterior:

Conclusión

Los propósitos de usar el servidor de base de datos MariaDB y los usos básicos de este servidor se explican en este tutorial. Muchas características de nivel avanzado como la cláusula JOIN, funciones, procedimientos, desencadenadores, etc. son características más útiles de este servidor que no se tratan en este tutorial. Los nuevos usuarios de la base de datos obtendrán el concepto básico del servidor de base de datos y podrán comenzar a trabajar con el servidor MariaDB después de leer este tutorial.