MariaDB Tutorial: aprenda sintaxis y comandos con ejemplos
¿Qué es MariaDB?
MariaDB es una bifurcación del MySQL sistema de administración de base de datos. Es creado por sus desarrolladores originales. Esta herramienta DBMS ofrece capacidades de procesamiento de datos para tareas tanto pequeñas como empresariales.
MariaDB es una versión mejorada de MySQL. Viene con numerosas funciones poderosas incorporadas y muchas mejoras de usabilidad, seguridad y rendimiento que no puede encontrar en MySQL.
Aquí están las características de MariaDB:
- Opera bajo licencias GPL, BSD o LGPL.
- MariaDB admite un lenguaje de consulta popular y estándar.
- Viene con muchos motores de almacenamiento, incluidos los de alto rendimiento que pueden integrarse con otros sistemas de gestión de bases de datos relacionales.
- Proporciona la tecnología de clúster Galera.
- MariaDB soporta PHP, un lenguaje popular para el desarrollo web.
- MariaDB Puede ejecutarse en diferentes sistemas operativos y admite numerosos lenguajes de programación.
- MariaDB viene con comandos adicionales que no están disponibles en MySQL. MySQL tiene características que tienen un impacto negativo en el rendimiento del DBMS. Estas características han sido reemplazadas en MariaDB.
MariaDB vs MySQL
A continuación se presentan algunas diferencias clave entre MariaDB vs MySQL
Parámetro | MariaDB | MySQL |
---|---|---|
Más opciones para motores de almacenamiento | MariaDB tiene 12 nuevos motores de almacenamiento que no encontrarás en MySQL. | Tiene menos opciones de almacenamiento en comparación con MariaDB. |
Mejoras de velocidad | MariaDB muestra una velocidad mejorada en comparación con MySQL. Viene con numerosas funciones para optimizar la velocidad. Dichas características incluyen vistas/tablas derivadas, subconsultas, control de ejecución, acceso al disco y control del optimizador. | MySQL presenta una velocidad más lenta en comparación con MariaDB. Se basa sólo en unas pocas funciones para optimizar la velocidad, por ejemplo, índices hash. |
Caché/índices más rápidos | Con el motor de almacenamiento de memoria de MariaDB, una declaración INSERT se puede completar un 24% más que en el estándar MySQL. | El motor de almacenamiento de memoria de MySQL es más lento comparado con eso MariaDB. |
Grupo de conexiones más grande y más rápido | MariaDB viene con un grupo de subprocesos avanzado capaz de ejecutarse más rápido y admitir hasta 200,000+ conexiones. | El grupo de subprocesos proporcionado por MySQL no puede admitir hasta 200,000 conexiones por vez. |
Replicación mejorada | In MariaDB, la replicación se puede realizar de forma más segura y rápida. Las actualizaciones también se pueden realizar 2 veces más rápido en comparación con la versión tradicional. MySQL. | MySQLLa edición comunitaria de permite conectar un número estático de hilos. MySQLEl plan empresarial de viene con capacidades de subprocesos. |
Nuevas funciones/extensiones | MariaDB viene con nuevas características y extensiones que incluyen las declaraciones JSON, CON y KILL. | El nuevo MariaDB Las funciones no se proporcionan en MySQL. |
Características perdidas | MariaDB carece de algunas de las características proporcionadas por el MySQL Edición de Empresa. Para solucionar esto, ofrece complementos alternativos de código abierto. Por eso, MariaDB Los usuarios pueden disfrutar de las mismas funcionalidades que MySQL Usuarios de la edición Enterprise. | La edición empresarial de MySQL utiliza un código propietario. Sólo los usuarios de MySQL Enterprise Edition tiene acceso a esto. |
Cómo instalar MariaDB
Instalar como una aplicación independiente
Para usar MariaDB, tienes que instalarlo en tu computadora.
La instalación se puede realizar siguiendo los pasos que se indican a continuación:
Paso 1) Abrir debajo de la URL
Descargue el archivo de instalación desde el enlace https://downloads.mariadb.org/
Paso 2) Double haga clic en el archivo para iniciar la instalación
Una vez que se complete la descarga, abra Archivo
Paso 3) Haga clic en el botón Siguiente
En la ventana que aparece, haga clic en el botón Siguiente:
Paso 4) Acepta el acuerdo de licencia
Luego haga clic en el botón Siguiente:
Paso 5) Elegir MariaDB Server
Elija las funciones que se instalarán y haga clic en Siguiente
Paso 6) Introduce la contraseña
En la siguiente ventana, se le pedirá que cambie la contraseña del usuario root.
- Introduzca la contraseña y confírmela volviendo a escribir la misma contraseña. Si desea permitir el acceso desde equipos remotos, active la casilla correspondiente.
- Una vez hecho esto, haga clic en el botón Siguiente.
Paso 7) Ingrese el nombre y elija el número de puerto
En la siguiente ventana, escriba un nombre para la instancia, elija el número de puerto y establezca el tamaño necesario. Haga clic en el botón Siguiente:
Paso 8) Haga clic en Siguiente
En la siguiente ventana, simplemente haga clic en el botón Siguiente.
Paso 9) Haga clic en Instalar
Inicie la instalación haciendo clic en el botón Instalar.
Paso 10) Se muestra una barra de progreso
Se mostrará una barra de progreso que muestra el progreso de la instalación:
Paso 11) Haga clic en el botón Finalizar
Una vez que se complete la instalación, verá el botón Finalizar. Haga clic en el botón para cerrar la ventana:
Paso 12) ¡Felicitaciones!
Ahora tienes MariaDB instalado en tu computadora.
Trabajar con el símbolo del sistema
Ahora que tiene MariaDB instalado en su computadora, es hora de que lo inicie y comience a usarlo. Esto se puede hacer a través del MariaDB símbolo del sistema
Sigue los pasos que se detallan a continuación:
Paso 1) Haga clic en Inicio, elija Todos los programas y luego haga clic en MariaDB...
Paso 2) Elija un MariaDB Símbolo del sistema.
Paso 3) La MariaDB Se iniciará el símbolo del sistema. Ahora es el momento de iniciar sesión. Debe iniciar sesión como usuario root y la contraseña que estableció durante la instalación de MariaDBEscriba el siguiente comando en el símbolo del sistema:
MySQL -u root -p
Paso 4) Ingrese la contraseña y presione la tecla de retorno. Deberías iniciar sesión, como se muestra a continuación:
Ya has iniciado sesión MariaDB.
Tipos de datos
MariaDB Admite los siguientes tipos de datos:
- Tipos de datos de cadena
- Tipos de datos numéricos
- Tipos de datos de fecha/hora
- Tipos de datos de objetos grandes
Tipos de datos de cadena
Estos incluyen lo siguiente:
Tipo de datos String | Descripción |
---|---|
carácter (tamaño) | El tamaño indica el número de caracteres que se almacenarán. Almacena un máximo de 255 caracteres. Cuerdas de longitud fija. |
varchar(tamaño) | El tamaño indica el número de caracteres que se almacenarán. Almacena un máximo de 255 caracteres. Cadenas de longitud variable. |
tamano del texto) | El tamaño indica el número de caracteres que se almacenarán. Almacena un máximo de 255 caracteres. Cuerdas de longitud fija. |
binario (tamaño) | El tamaño indica el número de caracteres que se almacenarán. Almacena un máximo de 255 caracteres. Cuerdas de tamaño fijo. |
Tipos de datos numéricos
Incluyen los siguientes:
Tipos de datos numéricos | Descripción |
---|---|
bit | Un valor entero muy pequeño equivalente a tinyint(1). Los valores con signo oscilan entre -128 y 127. Los valores sin signo oscilan entre 0 y 255. |
entero(m) | Un valor entero estándar. Los valores con signo oscilan entre -2147483648 y 2147483647. Los valores sin signo oscilan entre 0 y 4294967295. |
flotador(m,d) | Un número de punto flotante con precisión simple. |
doble(m,d) | Un número de punto flotante con doble precisión. |
flotador(p) | Un número de punto flotante. |
Tipos de datos de fecha/hora
Estos incluyen lo siguiente:
Tipo de datos de fecha/hora | Descripción |
---|---|
Fecha | Se muestra en el formato "aaaa-mm-dd". Los valores oscilan entre "1000-01-01" y "9999-12-31". |
Fecha y hora | Se muestra en el formato "aaaa-mm-dd hh:mm:ss". Los valores oscilan entre '1000-01-01 00:00:00' y '9999-12-31 23:59:59'. |
marca de tiempo (m) | Se muestra en el formato "aaaa-mm-dd hh:mm:ss". Los valores oscilan entre '1970-01-01 00:00:01' utc y '2038-01-19 03:14:07' utc. |
Hora | Se muestra en el formato "hh:mm:ss". Los valores oscilan entre '-838:59:59' y '838:59:59'. |
Tipos de datos de objetos grandes (LOB)
Incluyen los siguientes:
Tipo de datos de objeto grande | Descripción |
---|---|
pequeñablob | Su tamaño máximo es de 255 bytes. |
gota (tamaño) | Toma 65,535 bytes como tamaño máximo. |
gota mediana | Su tamaño máximo es de 16,777,215 bytes. |
texto largo | Se necesitan 4 GB como tamaño máximo. |
Crear una base de datos y tablas
Para crear una nueva base de datos en MariaDB, debe tener privilegios especiales que solo se otorgan al usuario root y a los administradores.
Para crear una nueva base de datos, debe utilizar el comando CREATE DATABASE que tiene la siguiente sintaxis:
CREATE DATABASE DatabaseName;
En este caso, necesitas crear una base de datos y darle el nombre Demo.
Iniciar el MariaDB Símbolo del sistema e inicie sesión como usuario root escribiendo el siguiente comando:
mysql -u root -p
Escriba la contraseña de root y presione la tecla de retorno. Estarás conectado.
Ahora, ejecute el siguiente comando:
CREATE DATABASE Demo;
Luego habrás creado una base de datos llamada Demo. Será bueno que confirmes si la base de datos se creó correctamente o no. Solo tienes que mostrar la lista de bases de datos disponibles ejecutando el siguiente comando:
SHOW DATABASES;
El resultado anterior muestra que la base de datos de demostración es parte de la lista, por lo que la base de datos se creó correctamente.
MariaDB Seleccionar base de datos
Para poder utilizar o trabajar en una base de datos en particular, debe seleccionarla de la lista de bases de datos disponibles. Después de seleccionar una base de datos, puede realizar tareas como crear tablas dentro de la base de datos.
Para seleccionar una base de datos, debe utilizar el comando USE. Toma la sintaxis que se proporciona a continuación:
USE database_name;
Debes utilizar la base de datos de demostración. Puedes seleccionarla ejecutando el siguiente comando:
USE Demo;
La imagen de arriba muestra que el MariaDB El símbolo del sistema ha cambiado de ninguno al nombre de la base de datos que se ha seleccionado.
Ahora puede continuar y crear tablas dentro de la base de datos de demostración.
MariaDB - Crear mesa
Para poder crear una tabla, debe haber seleccionado una base de datos. La tabla se puede crear utilizando la instrucción CREATE TABLE. Aquí está la sintaxis del comando:
CREATE TABLE tableName (columnName columnType);
Puede configurar una de las columnas como clave principal. Esta columna no debe permitir valores nulos.
Crearemos dos tablas dentro de la base de datos Demo, las tablas Libro y Precio. Cada tabla tendrá dos columnas.
Comencemos creando la tabla Book con dos columnas, id y name. Ejecute el siguiente comando:
CREATE TABLE Book( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(100) NOT NULL, PRIMARY KEY (id));
La restricción PRIMARY KEY se ha utilizado para establecer la columna de identificación como clave principal de la tabla. La propiedad AUTO_INCREMENT incrementará los valores de la columna de identificación en 1 automáticamente para cada nuevo registro insertado en la tabla. Todas las columnas no permitirán valores nulos.
Ahora, crea la segunda tabla, la tabla de Precios:
CREATE TABLE Price( id INT NOT NULL AUTO_INCREMENT, price float NOT NULL, PRIMARY KEY (id));
La columna de identificación se ha establecido como clave principal de la tabla.
Mostrando tablas
Ahora que ha creado las dos tablas, será bueno que confirme si las tablas se crearon correctamente o no. Puede mostrar la lista de tablas contenidas en una base de datos ejecutando el siguiente comando:
SHOW TABLES;
La captura de pantalla anterior muestra que las dos tablas se crearon correctamente dentro de la base de datos de demostración.
Mostrando la estructura de la tabla
Para ver la estructura de una tabla en particular, puede utilizar el comando DESCRIBE, comúnmente abreviado como DESC. Tiene la siguiente sintaxis:
DESC TableName;
Por ejemplo, para ver la estructura de la tabla llamada Libro, puede ejecutar el siguiente comando:
DESC Book;
La tabla tiene dos columnas. Para ver la estructura de la tabla de precios, puede ejecutar el siguiente comando:
DESC Price;
CRUD y Cláusulas
INSERT
Para insertar datos en un MariaDB tabla, debe utilizar la instrucción INSERT INTO. Este comando toma la sintaxis que se proporciona a continuación:
INSERT INTO tableName (column_1, column_2, ... ) VALUES (value1, value2, ... ), (value1, value2, ... ), ...;
La sintaxis anterior muestra que debe especificar las columnas de la tabla en las que desea insertar datos, así como los datos que necesita insertar.
Insertemos un registro en la tabla Libro:
INSERT INTO book (id, name) VALUES(1, 'MariaDB Book');
Ha insertado un solo registro en la tabla. Inserte un registro en la tabla Precio:
INSERT INTO price (id, price) VALUES(1, 200);
El registro ha sido creado.
SELECT
La sentencia SELECT nos ayuda a visualizar o ver el contenido de una tabla de la base de datos. Para ver el contenido de la tabla Book, por ejemplo, es necesario ejecutar el siguiente comando:
SELECT * from book;
Ahora, vea el contenido de la tabla de precios:
SELECT * from price;
Insertar múltiples registros
Es posible para nosotros insertar múltiples registros en un MariaDB Tabla de una sola vez. Para demostrarlo, ejecute el siguiente ejemplo:
INSERT INTO book (id, name) VALUES (2,'MariaDB Book2'), (3,'MariaDB Book3'), (4,'MariaDB Book4'), (5,'MariaDB Book5');
Puede consultar la tabla para comprobar si los registros se insertaron correctamente:
SELECT * FROM book;
Los registros se insertaron exitosamente. Inserte varios registros en la tabla Precio ejecutando este ejemplo:
INSERT INTO price (id, price) VALUES (2, 250), (3, 220), (4, 190), (5, 300);
Confirmemos si los registros se crearon correctamente:
SELECT * FROM price;
ACTUALIZAR
El comando ACTUALIZAR nos ayuda a cambiar o modificar los registros que ya han sido insertados en una tabla. Puede combinarlo con la cláusula WHERE para especificar el registro que se actualizará. Aquí está la sintaxis:
UPDATE tableName SET field=newValue, field2=newValue2,... [WHERE ...]
El comando ACTUALIZAR también se puede combinar con cláusulas como SET, WHERE, LIMIT y ORDER BY. Verás esto en breve:
Consideremos la tabla denominada Precio con los siguientes registros:
Cambiemos el precio del libro con un id de 1 de 200 a 250:
UPDATE price SET price = 250 WHERE id = 1;
El comando se ejecutó exitosamente. Ahora puede consultar la tabla para ver si se produjo el cambio:
La captura de pantalla anterior muestra que se ha implementado el cambio. Considere la tabla Book con los siguientes registros:
Cambiemos el nombre del libro llamado Libro a MariaDB Libro 1. Observe que el libro tiene una identificación de 1. Aquí está el comando para esto:
UPDATE book SET name = “MariaDB Book1” WHERE id = 1;
Compruebe si el cambio se ha implementado:
La captura de pantalla anterior muestra que el cambio se implementó exitosamente.
En los ejemplos anteriores, solo hemos cambiado una columna a la vez. Sin embargo, es posible que cambiemos varias columnas a la vez. Demostremos esto usando un ejemplo.
Utilicemos la tabla de precios con los siguientes datos:
Cambiemos tanto el id como el precio del libro con un id de 5. Cambiaremos su id a 6 y su precio a 6. Ejecute el siguiente comando:
UPDATE price SET id = 6, price = 280 WHERE id = 5;
Ahora, consulta la tabla para comprobar si el cambio se realizó correctamente:
El cambio se realizó exitosamente.
Borrar
Usamos el comando DELETE cuando necesitamos eliminar uno o varios registros de una tabla. Aquí está la sintaxis del comando:
DELETE FROM tableName [WHERE condition(s)] [ORDER BY exp [ ASC | DESC ]] [LIMIT numberRows];
Considere la tabla de precios con los siguientes registros:
Necesitamos eliminar el último registro de la tabla. Tiene un id de 6 y un precio de 280. Borremos el registro:
DELETE FROM price WHERE id = 6;
El comando se ejecutó exitosamente. Consultamos la tabla para confirmar si la eliminación fue exitosa:
El resultado muestra que el registro se eliminó correctamente.
Dónde
La cláusula WHERE nos ayuda a especificar la ubicación exacta donde necesitamos realizar un cambio. Se utiliza junto con instrucciones como INSERT, SELECT, UPDATE y DELETE. Considere la tabla Price con los siguientes datos:
Supongamos que necesitamos ver los registros en los que el precio es menor a 250. Podemos ejecutar el siguiente comando:
SELECT * FROM price WHERE price < 250;
Se han devuelto todos los registros en los que el precio es inferior a 250.
La cláusula WHERE se puede combinar con la instrucción AND. Supongamos que necesitamos ver todos los registros de la tabla Price donde el precio es inferior a 250 y el id es superior a 3. Podemos ejecutar el siguiente comando:
SELECT * FROM price WHERE id > 3 AND price < 250;
Sólo se ha devuelto un registro. La razón es que tiene que cumplir con todas las condiciones que se han especificado, es decir, id superior a 3 y precio inferior a 250. Si se viola alguna de estas condiciones, el registro no será devuelto.
La cláusula también se puede combinar con el comando OR. Reemplacemos el AND en nuestro comando anterior con OR y veamos el tipo de resultado que recibimos:
SELECT * FROM price WHERE id > 3 OR price < 250;
Ahora obtenemos 2 registros en lugar de 1. Esto se debe a que, para que un registro califique, solo tiene que cumplir una de las condiciones especificadas.
Como
Esta cláusula se utiliza para especificar el patrón de datos al acceder a datos de la tabla en los que es necesaria una coincidencia exacta. Se puede combinar con las declaraciones INSERT, UPDATE, SELECT y DELETE.
Debe pasar el patrón de datos que está buscando a la cláusula y devolverá verdadero o falso. Estos son los caracteres comodín que se pueden utilizar junto con la cláusula:
- %: para hacer coincidir 0 o más caracteres.
- _: para hacer coincidir un solo carácter.
Aquí está la sintaxis de la cláusula LIKE:
SELECT field_1, field_2,... FROM tableName1, tableName2,... WHERE fieldName LIKE condition;
Demostremos cómo utilizar la cláusula con el carácter comodín %. Utilicemos la tabla Book con los siguientes registros:
Necesitamos ver todos los registros en los que el nombre comienza con M. Podemos ejecutar el siguiente comando:
SELECT name FROM book WHERE name LIKE 'M%';
Se han devuelto todos los registros porque sus nombres comienzan con la letra M. Para ver todos los nombres que terminan con 4, puede ejecutar el siguiente comando:
SELECT name FROM book WHERE name LIKE '%4';
Solo se ha devuelto un nombre porque es el único que cumple la condición.
También podemos rodear el patrón de búsqueda con el comodín:
SELECT name FROM book WHERE name LIKE '%DB%';
Además del comodín %, la cláusula LIKE se puede utilizar junto con el comodín _. Este es el comodín de guión bajo y solo buscará un carácter.
Trabajemos con la tabla Precios con los siguientes registros:
Busquemos el registro cuyo precio sea 1_0. Ejecutamos el siguiente comando:
SELECT * FROM price WHERE price LIKE '1_0';
Nos ha devuelto el registro en el que el precio es 190. También podemos probar con otro patrón:
SELECT * FROM price WHERE price LIKE '_2_';
Es posible que utilicemos la cláusula LIKE junto con el operador NOT. Esto devolverá todos los registros que no cumplan con el patrón especificado. Por ejemplo:
Utilicemos la tabla de precios con los siguientes registros:
Busquemos todos los registros donde el precio no empieza por 2:
SELECT * FROM price WHERE price NOT LIKE '2%';
Sólo un registro no cumple con el patrón especificado.
Por fin
Esta cláusula nos ayuda a ordenar nuestros registros en orden ascendente o descendente. Lo usamos con la declaración SELECT, como se muestra a continuación:
SELECT expression(s) FROM tables [WHERE condition(s)] ORDER BY exp [ ASC | DESC ];
Es posible que utilicemos esta cláusula sin agregar la parte ASC o DESC. Por ejemplo:
Utilizaremos la tabla de Precios con los siguientes registros:
Ejecute el siguiente comando contra la tabla:
SELECT * FROM price WHERE price LIKE '2%.' ORDER BY price;
En el comando anterior, hemos ordenado por precio. Los registros se han ordenado con los precios en orden ascendente. Eso significa que cuando no especificamos el orden, la clasificación se realiza en orden ascendente de forma predeterminada.
Ejecutemos la cláusula con la opción DESC:
SELECT * FROM price WHERE price LIKE '2%' ORDER BY price DESC;
Los registros se han ordenado con el precio en orden descendente como hemos especificado.
Usemos la cláusula ORDER BY junto con el atributo ASC:
SELECT * FROM price WHERE price LIKE '2%.' ORDER BY price ASC;
Los registros han sido ordenados pero con los precios en orden ascendente. Esto es similar a cuando usamos la cláusula ORDER BY sin atributos ASC o DESC.
DISTINCT
Esta cláusula nos ayuda a eliminar los duplicados al seleccionar registros de una tabla. Esto significa que nos ayuda a obtener registros únicos. Su sintaxis se proporciona a continuación:
SELECT DISTINCT expression(s) FROM tableName [WHERE condition(s)];
Para demostrar esto, utilizaremos la tabla de Precios con los siguientes datos:
Cuando seleccionamos la columna de precio de la tabla, obtenemos el siguiente resultado:
SELECT price FROM Price;
Tenemos dos registros con un precio de 250, creando un duplicado. Necesitamos tener sólo registros únicos. Podemos filtrarlos mediante el uso de la cláusula DISTINCT como se muestra a continuación:
SELECT DISTINCT price FROM Price;
Ahora no tenemos ningún duplicado en el resultado anterior.
Desde
La cláusula FROM utilizada para recuperar datos de una tabla de base de datos. También puede ayudar a la hora de unir mesas. Aquí está la sintaxis del comando:
SELECT columnNames FROM tableName;
Para ver el contenido de la tabla de libros, ejecute el siguiente comando:
SELECT * FROM price;
La cláusula puede ayudarle a recuperar solo una columna de una tabla de base de datos. Por ejemplo:
SELECT price FROM Price;
Tareas avanzadas
Procedimiento almacenado
Un procedimiento es un MariaDB programa al que puede pasar parámetros. Un procedimiento no devuelve valores. Para crear un procedimiento, usamos el comando CREAR PROCEDIMIENTO.
Para demostrar cómo crear y llamar a un procedimiento, crearemos un procedimiento llamado myProcedure() que nos ayuda a seleccionar la columna de nombre de la tabla del libro. Aquí está el procedimiento:
DELIMITER $ CREATE PROCEDURE myProcedure() BEGIN SELECT name FROM book; END; ;
El procedimiento ha sido creado. Simplemente hemos incluido la instrucción SELECT dentro de las cláusulas BEGIN y END del procedimiento.
Ahora, podemos llamar al procedimiento por su nombre como se muestra a continuación:
CALL myProcedure();
El procedimiento devuelve la columna de nombre de la tabla del libro cuando se llama.
Podemos crear un procedimiento que tome un parámetro. Por ejemplo, necesitamos seleccionar el nombre del libro y filtrar usando el id del libro. Podemos crear el siguiente procedimiento para esto:
DELIMITER $ CREATE PROCEDURE myProcedure2(book_id int) BEGIN SELECT name FROM book WHERE id = book_id; END; ;
Arriba, hemos creado un procedimiento llamado myProcedure2(). Este procedimiento toma un parámetro entero llamado book_id, que es la identificación del libro cuyo nombre necesitamos ver. Para ver el nombre del libro con un id de 3, podemos llamar al procedimiento de la siguiente manera:
CALL myProcedure2(3);
Función
A diferencia de los procedimientos, debemos pasar parámetros a funciones y una función debe devolver un valor. Para crear una función en MariaDB, utilizamos la sentencia CREATE FUNCTION. La sentencia tiene la siguiente sintaxis:
CREATE [ DEFINER = { CURRENT-USER | username } ] FUNCTION function-name [(parameter datatype [, parameter datatype]) ] RETURNS datatype [LANGUAGE SQL | DETERMINISTIC | NOT DETERMINISTIC | {CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA} | SQL SECURITY {DEFINER | INVOKER} | COMMENT 'comment' BEGIN declaration-section executable-section END;
Los parámetros anteriores se describen a continuación:
Parámetro | Descripción |
---|---|
cláusula DEFINER | Este parámetro es opcional. Si no lo especifica, el definidor se convertirá en el usuario que creó la función. Si es necesario especificar un definidor diferente, incluya la cláusula DEFINER en la que el nombre de usuario será el definidor de la función. |
nombre de la función | El nombre que se le asignará a esta función en el MariaDB. |
parámetro | Los parámetros pasados a la función. Durante la creación de la función, todos los parámetros se tratan como EN parámetros (en lugar de los parámetros OUT/INOUT). |
tipo_datos_retorno | El tipo de datos del valor de retorno de la función. |
IDIOMA SQL | Afecta la portabilidad pero no la función. |
DETERMINISTA | La función devolverá un resultado solo cuando se le proporcionen varios parámetros. |
NO DETERMINISTA | Es posible que la función devuelva un resultado diferente cuando se le proporcionan varios parámetros. |
CONTIENE SQL | Informa MariaDB que esta función contiene SQL. La base de datos no verificará si esto es cierto. |
SIN SQL | Esta cláusula no se utiliza y no tiene ningún impacto en su función. |
LEE DATOS SQL | Informa MariaDB que esta función utilizará declaraciones SELECT para leer datos, pero no los modificará. |
MODIFICA DATOS SQL | Informa MariaDB que esta función utilizará INSERTAR, ELIMINAR, ACTUALIZAR y otras DDL declaraciones para modificar datos SQL. |
sección de declaración | Aquí es donde se deben declarar las variables locales. |
sección ejecutable | El código de función debe agregarse aquí. |
Aquí hay un ejemplo MariaDB función:
DELIMITER // CREATE FUNCTION sumFunc (x INT ) RETURNS INT DETERMINISTIC BEGIN DECLARE sum INT; SET sum = 0; label1: WHILE sum <= 3000 DO SET sum = sum + x; END WHILE label1; RETURN sum; END; // DELIMITER ;
Luego podemos llamar a la función anterior de la siguiente manera:
select sumFunc(1000);
El comando devolverá lo siguiente:
Una vez que hayas terminado con una función, será bueno que la elimines. Esto es fácil, ya que solo tienes que llamar a la instrucción DROP FUNCTION que tiene la siguiente sintaxis:
DROP FUNCTION function_name;
Por ejemplo, para eliminar la función llamada myFunc, podemos ejecutar el siguiente comando:
DROP FUNCTION myFunc;
ÚNETE
Cuando necesite recuperar datos de más de una tabla a la vez, utilice MariaDB UNIONES. Esto significa que un ÚNETE funciona en dos o más tablas. Los siguientes tres tipos de JOINS son compatibles en MariaDB:
- UNIÓN INTERNA/SIMPLE
- UNIÓN EXTERIOR IZQUIERDA/UNIÓN IZQUIERDA
- UNIÓN EXTERIOR DERECHA/UNIÓN DERECHA
Discutamos uno por uno:
INNER JOIN
La combinación interna devuelve todas las filas de las tablas en las que la condición de combinación es verdadera. Su sintaxis es la siguiente:
SELECT columns FROM table-1 INNER JOIN table-2 ON table-1.column = table-2.column;
Por ejemplo:
Usaremos nuestras dos mesas, libros y libro.
La tabla de libros tiene los siguientes datos:
La tabla de precios tiene los siguientes datos:
El objetivo es unir la columna de nombre de la tabla Libro y la columna de precio de la tabla Precio en una sola tabla. Esto es posible con una unión interna, como se demuestra a continuación:
SELECT book.name, price.price FROM book INNER JOIN price ON book.id = price.id;
El comando devuelve lo siguiente:
IZQUIERDA ÚNICA EXTERNA
Esta combinación devuelve todas las filas de la tabla de la izquierda y solo las filas en las que la condición de combinación es verdadera de la otra tabla. Su sintaxis es la siguiente:
SELECT columns FROM table-1 LEFT [OUTER] JOIN table-2 ON table-1.column = table-2.column;
La palabra clave OUTER se ha colocado entre corchetes porque es opcional.
Por ejemplo:
SELECT book.name, price.price FROM book LEFT JOIN price ON book.id = price.id;
El comando devuelve lo siguiente:
El último registro de la tabla anterior no tiene ningún valor coincidente a la izquierda. Por eso ha sido reemplazado por NULL.
UNIÓN EXTERIOR DERECHA
Esta combinación devuelve todas las filas de la tabla de la derecha y solo las filas en las que la condición de combinación es verdadera de la otra tabla. Su sintaxis es la siguiente:
SELECT columns FROM table-1 RIGHT [OUTER] JOIN table-2 ON table-1.column = table-2.column;
La palabra clave OUTER se ha colocado entre corchetes porque es opcional.
Por ejemplo:
SELECT book.name, price.price FROM book RIGHT JOIN price ON book.id = price.id;
El comando devuelve lo siguiente:
La razón es que todas las filas de la tabla de la derecha coincidieron con las de la otra tabla. Si algunas de las filas no coincidieran, tendríamos NULL en la primera columna.