Guía Completa de MariaDB Nivel I
Guía Completa de MariaDB Nivel I
UNEWEB
MariaDB Nivel I | Uneweb
TABLA DE CONTENIDO
Introducción ................................................................................................................................................. 3
RDBMS Terminología .................................................................................................................................... 3
Base de datos MariaDB................................................................................................................................. 4
Características principales de MariaDB ......................................................................................................... 4
Instalación MariaDB ..................................................................................................................................... 5
Instalación en Linux / Unix ........................................................................................................................ 5
Instalación en Windows ............................................................................................................................ 6
Prueba de la instalación ............................................................................................................................ 6
Posterior a la instalación ........................................................................................................................... 7
Actualización en Windows ........................................................................................................................ 7
Compatibilidad ......................................................................................................................................... 8
Administración MariaDB ............................................................................................................................... 8
La creación de una cuenta de usuario ....................................................................................................... 8
El archivo de configuración ....................................................................................................................... 9
Comandos de administración.................................................................................................................. 11
MariaDB sintaxis de PHP ............................................................................................................................. 11
Conexión MariaDB...................................................................................................................................... 13
MYSQL binario ........................................................................................................................................ 13
Script de conexión PHP ........................................................................................................................... 13
Crear base de datos MariaDB...................................................................................................................... 16
binario mysqladmin ................................................................................................................................ 16
PHP Crear base de datos de secuencias de comandos ............................................................................. 16
MariaDB Seleccionar base de datos ............................................................................................................ 18
El símbolo del sistema ............................................................................................................................ 18
Seleccione la base de datos de secuencias de comandos PHP.................................................................. 19
Tipos de datos MariaDB.............................................................................................................................. 20
Tipos de datos numéricos ....................................................................................................................... 20
Fecha y hora de tipos de datos................................................................................................................ 22
Tipos de datos Cadena ............................................................................................................................ 22
MariaDB crear tablas .................................................................................................................................. 24
El símbolo del sistema ............................................................................................................................ 24
PHP Crear tabla de secuencias de comandos ........................................................................................... 25
Tablas MariaDB Eliminar tablas................................................................................................................... 27
1
MariaDB Nivel I | Uneweb
2
MariaDB Nivel I | Uneweb
INTRODUCCIÓN
Existe una aplicación de base de datos separada de las principales
colecciones de datos de aplicación y almacena. Cada base de datos emplea
una o varias API’s para la creación, el acceso, la gestión, la búsqueda y la
replicación de los datos que contiene.
Las bases de datos también utilizan fuentes de datos no relacionales como
objetos o archivos. Sin embargo, las bases de datos prueban la mejor
opción para grandes conjuntos de datos, que sufren de recuperación lenta y
la escritura con otras fuentes de datos.
Los sistemas relacionales de gestión de base de datos, o RDBMS,
almacenar datos en diferentes tablas. Las relaciones entre estas tablas se
establecen utilizando las claves principales y claves externas.
RDBMS ofrece las siguientes características -
Que le permiten implementar un origen de datos con tablas,
columnas e índices.
Se aseguran la integridad de las referencias a través de filas de
varias tablas.
Se actualizan los índices automáticamente.
Ellos interpretan las consultas y operaciones de SQL en la
manipulación de los datos o de aprovisionamiento de las tablas.
RDBMS TERMINOLOGÍA
Antes de comenzar revisemos algunos términos relacionados con las bases
de datos.
Database - Una base de datos es una fuente de datos que
consiste en tablas que contienen datos relacionados.
Table - Una tabla, es decir, una hoja de cálculo, es una matriz
que contiene datos.
Column - Una columna, es decir, elemento de datos, es una
estructura que sostiene los datos de un tipo; por ejemplo, las
fechas de envío.
Row - Una fila es una estructura de agrupación de datos
relacionados; por ejemplo, datos para un cliente. También se
conoce como una tupla, entrada o registro.
Redundancy - Este término se refiere al almacenamiento de
datos dos veces con el fin de acelerar el sistema.
3
MariaDB Nivel I | Uneweb
4
MariaDB Nivel I | Uneweb
INSTALACIÓN MARIADB
Todas las descargas de MariaDB se encuentran en la Descarga sección del
sitio web oficial de la Fundación MariaDB. Haga clic en el enlace a la versión
que le gustaría, y una lista de descargas para varios sistemas operativos,
arquitecturas y tipos de archivos de instalación se muestra.
openSUSE
arch Linux
mageia
menta
Slackware
5
MariaDB Nivel I | Uneweb
INSTALACIÓN EN WINDOWS
Después de localizar y descargar un archivo de instalación
automatizada (MSI) , simplemente haga doble clic en el archivo para iniciar
la instalación. El asistente de instalación le guiará a través de cada paso de
la instalación y los ajustes necesarios.
Pruebe la instalación iniciándolo desde el símbolo del sistema. Vaya a la
ubicación de la instalación, por lo general en el directorio, y escriba lo
siguiente en el símbolo -
[Link] --console
PRUEBA DE LA INSTALACIÓN
Realizar algunas tareas sencillas para confirmar el funcionamiento e
instalación de MariaDB.
6
MariaDB Nivel I | Uneweb
POSTERIOR A LA INSTALACIÓN
Después de la instalación exitosa de MariaDB, establecer una contraseña de
root. Una nueva instalación tendrá una contraseña en blanco. Introduzca
los siguientes datos para establecer la nueva contraseña -
mysql -u root -p
Enter password:*******
ACTUALIZACIÓN EN WINDOWS
Si ya tiene instalado MySQL en el sistema Windows, y desea actualizar a
MariaDB; no desinstale MySQL e instalar MariaDB. Esto provocará un
conflicto con la base de datos existente. En su lugar, debe instalar MariaDB,
y luego usar el Asistente de actualización en el archivo de instalación de
Windows.
Las opciones de su fichero [Link] MySQL deben trabajar con MariaDB. Sin
embargo, MariaDB tiene muchas características que no se encuentran en
MySQL.
7
MariaDB Nivel I | Uneweb
COMPATIBILIDAD
MySQL y MariaDB son esencialmente idénticas. Sin embargo, hay
suficientes diferencias para crear problemas en la actualización.
ADMINISTRACIÓN MARIADB
Antes de intentar ejecutar MariaDB, en primer lugar determinar su estado
actual, encendido o apagado. Hay tres opciones para iniciar y detener
MariaDB:
Este código agrega una fila a la tabla de usuario sin privilegios. También
tiene la opción de utilizar un valor hash de la contraseña. Conceder los
privilegios de usuario con el siguiente código -
8
MariaDB Nivel I | Uneweb
EL ARCHIVO DE CONFIGURACIÓN
Después de una acumulación en Unix / Linux, el archivo de configuración
“/etc/[Link]” debe ser editado a aparecer de la siguiente manera:
# One can use all long options that the program supports.
# Run the program with --help to get a list of available options
9
MariaDB Nivel I | Uneweb
versions) to abort...
# skip-locking
# set-variable = key_buffer = 16M
# set-variable = thread_cache = 4
loose-innodb_data_file_path = ibdata1:1000M
loose-mutex-deadlock-detector
gdb
[mysqldump]
quick
MariaDB
8
set-variable = max_allowed_packet=16M
[mysql]
no-auto-rehash
[myisamchk]
set-variable = key_buffer = 128M
Editar las líneas de datos “=” y “language =” para que coincida con su
entorno.
Después de modificación del archivo, navegue hasta el directorio de origen
y ejecutar el siguiente -
10
MariaDB Nivel I | Uneweb
COMANDOS DE ADMINISTRACIÓN
Revisar la siguiente lista de comandos importantes que va a utilizar con
regularidad cuando se trabaja con MariaDB:
USE [database name] - Establece la base de datos por defecto
actual.
SHOW DATABASES - Lista las bases de datos actualmente en
el servidor.
SHOW TABLES - Lista todas las tablas no temporales.
SHOW COLUMNS FROM [table name] - Proporciona
información de la columna correspondiente a la tabla
especificada.
SHOW INDEX FROM TABLENAME [table name] - Proporciona
información de índice de la tabla relativa a la tabla
especificada.
SHOW TABLE STATUS LIKE [table name]\G – - Proporciona
tablas con información acerca de las tablas no temporales, y
el patrón que aparece después de la cláusula LIKE es usado
para obtener los nombres de tabla.
11
MariaDB Nivel I | Uneweb
mysql_function(value,value,...) ;
mysqli_connect($connect) ;
mysqli_query($connect,"SQL statement") ;
<html>
<head>
<title>PHP and MariaDB</title>
</head>
<body>
<?php
$retval = mysql_function(value, [value,...]) ;
if( !$retval ) {
die ( "Error: Error message here" ) ;
}
// MariaDB or PHP Statements
?>
</body>
</html>
12
MariaDB Nivel I | Uneweb
CONEXIÓN MARIADB
Una forma de establecer una conexión con MariaDB consiste en utilizar el
binario de MySQL en el símbolo del sistema.
MYSQL BINARIO
Consultar un ejemplo que figura a continuación.
Enter password:******
Type 'help;' or '\h' for help. Type '\c' to clear the current in
put statement.
mysql>
mysql> exit
13
MariaDB Nivel I | Uneweb
después de una conexión exitosa, o una falsa sobre la conexión sin éxito.
También proporciona mysql_close(); la función para cerrar
conexiones de base de datos, que utiliza un solo parámetro.
Revisar la sintaxis siguiente secuencia de comandos de conexión de PHP -
connection mysql_connect(server,user,passwd,new_link,client_flag
) ;
1 Server
Este parámetro opcional especifica el nombre de host que ejecuta el servidor de base de
datos. Su valor por defecto es “localhost: 0,3036.”
2 User
Este parámetro opcional especifica el nombre de usuario para acceder a la base de datos.
Su valor por defecto es el propietario del servidor.
3 Passwd
Este parámetro opcional especifica la contraseña del usuario. Su valor por defecto está
en blanco.
4 new_link
Este parámetro opcional especifica que en una segunda llamada a mysql_connect() con
idénticos argumentos, en lugar de una nueva conexión, se devuelve el identificador
de la conexión actual.
5 client flags
Este parámetro opcional utiliza una combinación de los siguientes valores constantes -
MYSQL_CLIENT_SSL - Se utiliza el cifrado SSL.
MYSQL_CLIENT_COMPRESS - Utiliza el protocolo de compresión.
MYSQL_CLIENT_IGNORE_SPACE - Permite espacio después de los nombres
de función.
MYSQL_CLIENT_INTERACTIVE - Permite segundos de tiempo de espera
interactivos de inactividad antes de cerrar la conexión.
14
MariaDB Nivel I | Uneweb
<html>
<head>
<title>Connect to MariaDB Server</title>
</head>
<body>
<?php
$dbhost = 'localhost:3036';
$dbuser = 'guest1';
$dbpass = 'guest1a';
$conn = mysql_connect($dbhost, $dbuser, $dbpass) ;
if(! $conn ) {
die('Could not connect: ' . mysql_error() );
}
15
MariaDB Nivel I | Uneweb
BINARIO MYSQLADMIN
El siguiente ejemplo muestra el uso del binario mysqladmin en la creación
de una base de datos con los nombres de Products -
1 Sql
Este parámetro obligatorio consiste en la consulta SQL necesario para realizar la
operación.
2 connection
Cuando no se especifica, este parámetro opcional utiliza la conexión más reciente
utilizado.
16
MariaDB Nivel I | Uneweb
<html>
<head>
<title>Create a MariaDB Database</title>
</head>
<body>
<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass) ;
if(! $conn ) {
die('Could not connect: ' . mysql_error() );
}
if(! $retval ) {
die('Could not create database: ' . mysql_error() );
}
17
MariaDB Nivel I | Uneweb
Enter password:******
Database changed
18
MariaDB Nivel I | Uneweb
Una vez que seleccione una base de datos, todos los comandos posteriores
operarán en la base de datos elegida.
1 db_name
Este parámetro obligatorio especifica el nombre de la base de datos para su uso.
2 connection
Cuando no se especifica, este parámetro opcional utiliza la conexión más reciente
utilizado.
<html>
<head>
<title>Select a MariaDB Database</title>
</head>
<body>
<?php
$dbhost = 'localhost:3036';
19
MariaDB Nivel I | Uneweb
$dbuser = 'guest1';
$dbpass = 'guest1a';
$conn = mysql_connect($dbhost, $dbuser, $dbpass) ;
if(! $conn ) {
die('Could not connect: ' . mysql_error() );
}
echo 'Connected successfully';
mysql_select_db( 'PRODUCTS' ) ;
mysql_close($conn) ;
?>
</body>
</html>
20
MariaDB Nivel I | Uneweb
21
MariaDB Nivel I | Uneweb
22
MariaDB Nivel I | Uneweb
23
MariaDB Nivel I | Uneweb
databaseproducts_ tbl(
product_id INT NOT NULL AUTO_INCREMENT,
product_name VARCHAR(100) NOT NULL,
product_manufacturer VARCHAR(40) NOT NULL,
submission_date DATE,
PRIMARY KEY ( product_id )
);
24
MariaDB Nivel I | Uneweb
Enter password:*******
mysql> use PRODUCTS;
Database changed
mysql> CREATE TABLE products_tbl(
-> product_id INT NOT NULL AUTO_INCREMENT,
-> product_name VARCHAR(100) NOT NULL,
-> product_manufacturer VARCHAR(40) NOT NULL,
-> submission_date DATE,
-> PRIMARY KEY ( product_id )
-> );
mysql> SHOW TABLES;
+------------------------+
| PRODUCTS |
+------------------------+
| products_tbl |
+------------------------+
<html>
<head>
<title>Create a MariaDB Table</title>
</head>
<body>
<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
25
MariaDB Nivel I | Uneweb
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass) ;
if(! $conn ) {
die('Could not connect: ' . mysql_error() );
}
echo 'Connected successfully<br />';
mysql_select_db( 'PRODUCTS' ) ;
$retval = mysql_query( $sql, $conn ) ;
if(! $retval ) {
die('Could not create table: ' . mysql_error() );
}
echo "Table created successfully\n";
mysql_close($conn) ;
?>
</body>
</html>
26
MariaDB Nivel I | Uneweb
Existen dos opciones para realizar una eliminación de tabla: utilizar la línea
de comandos o un script PHP.
27
MariaDB Nivel I | Uneweb
<html>
<head>
<title>Create a MariaDB Table</title>
</head>
<body>
<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass) ;
if(! $conn ) {
die('Could not connect: ' . mysql_error() );
}
echo 'Connected successfully<br />';
if(! $retval ) {
die('Could not delete table: ' . mysql_error() );
}
echo "Table deleted successfully\n";
mysql_close($conn) ;
?>
</body>
28
MariaDB Nivel I | Uneweb
</html>
belowmysql>
INSERT INTO products_tbl (ID_number, Nomenclature) VALUES (12345
,
“Orbitron 4000”);
mysql> SHOW COLUMNS FROM products_tbl;
+-------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
29
MariaDB Nivel I | Uneweb
+-------------+-------------+------+-----+---------+-------+
| ID_number | int(5) | | | | |
| Nomenclature| char(13) | | | | |
+-------------+-------------+------+-----+---------+-------+
INSERT INTO products VALUES (1, “first row”) , (2, “second row”)
;
<?php
if(isset($_POST['add']) ) {
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass) ;
if(! $conn ) {
die('Could not connect: ' . mysql_error() );
}
if(! get_magic_quotes_gpc() ) {
$product_name = addslashes ($_POST['product_name']) ;
30
MariaDB Nivel I | Uneweb
mysql_select_db('PRODUCTS') ;
$retval = mysql_query( $sql, $conn ) ;
if(! $retval ) {
die('Could not enter data: ' . mysql_error() );
}
31
MariaDB Nivel I | Uneweb
32
MariaDB Nivel I | Uneweb
<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass) ;
if(! $conn ) {
die('Could not connect: ' . mysql_error() );
}
mysql_select_db('PRODUCTS') ;
$retval = mysql_query( $sql, $conn ) ;
if(! $retval ) {
die('Could not get data: ' . mysql_error() );
}
33
MariaDB Nivel I | Uneweb
Las mejores prácticas sugieren que liberar la memorias del cursor después
de cada instrucción SELECT. PHP proporciona
la mysql_free_result(). Revisar su uso como se muestra a continuación:
<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass) ;
if(! $conn ) {
die('Could not connect: ' . mysql_error() );
}
34
MariaDB Nivel I | Uneweb
FROM products_tbl';
mysql_select_db('PRODUCTS') ;
$retval = mysql_query( $sql, $conn ) ;
if(! $retval ) {
die('Could not get data: ' . mysql_error() );
}
mysql_free_result($retval) ;
echo "Fetched data successfully\n";
mysql_close($conn) ;
?>
35
MariaDB Nivel I | Uneweb
Operador
=! =
><
> = <=
36
MariaDB Nivel I | Uneweb
+-------------+----------------+----------------------+
SELECT *
FROM products_tbl
WHERE product_name = 'Bun Janshu 3000';
AND product_id <= 344;
SELECT *
FROM products_tbl
WHERE (product_name = 'Bun Janshu 3000' AND product_id < 344)
OR (product_name = 'Bun Janshu 3000') ;
<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass) ;
if(! $conn ) {
die('Could not connect: ' . mysql_error() );
}
37
MariaDB Nivel I | Uneweb
mysql_select_db('PRODUCTS') ;
$retval = mysql_query( $sql, $conn ) ;
if(! $retval ) {
die('Could not get data: ' . mysql_error() );
}
38
MariaDB Nivel I | Uneweb
39
MariaDB Nivel I | Uneweb
+-------------+---------------------+----------------------+
| ID_number | Nomenclature | product_manufacturer |
+-------------+---------------------+----------------------+
| 112 | Fiber Blaster 300Z | XYZ Corp |
+-------------+---------------------+----------------------+
<?php
$dbhost = ‘localhost:3036’;
$dbuser = ‘root’;
$dbpass = ‘rootpassword’;
$conn = mysql_connect($dbhost, $dbuser, $dbpass) ;
if(! $conn ) {
die(‘Could not connect: ‘ . mysql_error() );
}
mysql_select_db(‘PRODUCTS’) ;
$retval = mysql_query( $sql, $conn ) ;
if(! $retval ) {
die(‘Could not update data: ‘ . mysql_error() );
}
40
MariaDB Nivel I | Uneweb
41
MariaDB Nivel I | Uneweb
<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass) ;
if(! $conn ) {
die('Could not connect: ' . mysql_error() );
}
if(! $retval ) {
die('Could not delete data: ' . mysql_error() );
}
42
MariaDB Nivel I | Uneweb
43
MariaDB Nivel I | Uneweb
+-------------+----------------+----------------------+
| 12345 | Orbitron 4000 | XYZ Corp |
+-------------+----------------+----------------------+
| 12346 | Orbitron 3000 | XYZ Corp |
+-------------+----------------+----------------------+
| 12347 | Orbitron 1000 | XYZ Corp |
+-------------+----------------+----------------------+
<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass) ;
if(! $conn ) {
die('Could not connect: ' . mysql_error() );
}
mysql_select_db('PRODUCTS') ;
$retval = mysql_query( $sql, $conn ) ;
if(! $retval ) {
die('Could not get data: ' . mysql_error() );
}
44
MariaDB Nivel I | Uneweb
45
MariaDB Nivel I | Uneweb
Utilizar una cláusula ORDER BY, ya sea en el símbolo del sistema o dentro
de un script PHP.
46
MariaDB Nivel I | Uneweb
<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass) ;
if(! $conn ) {
die('Could not connect: ' . mysql_error() );
}
mysql_select_db('PRODUCTS') ;
$retval = mysql_query( $sql, $conn ) ;
if(! $retval ) {
die('Could not get data: ' . mysql_error() );
}
47
MariaDB Nivel I | Uneweb
48
MariaDB Nivel I | Uneweb
MARIADB JOIN
En los ejemplos anteriores, se analizó la recuperación de una sola tabla, o
recuperar múltiples valores de múltiples fuentes. La mayoría de las
operaciones de datos del mundo real son mucho más complejo, que
requiere la agregación, la comparación y la recuperación de varias tablas.
Los JOINs permiten la fusión de dos o más tablas en un solo
objeto. Son empleados a través de SELECT, UPDATE y DELETE.
Revisar la sintaxis general de una declaración que emplea un JOIN como se
muestra a continuación -
SELECT column
FROM table_name1
INNER JOIN table_name2
ON table_name1.column = table_name2.column;
Es posible utilizar una cláusula WHERE para lograr una unión, pero las
palabras clave funcionan mejor para facilitar la lectura, el mantenimiento y
las mejores prácticas.
Se puede unir en muchas formas, tales como una combinación izquierda, a
la derecha, o combinación interna. Varios tipos de combinación ofrecen
diferentes tipos de agregación basadas en valores o características
compartidas.
Emplear un JOIN ya sea en el símbolo del sistema o con un script PHP.
49
MariaDB Nivel I | Uneweb
FROM products
INNER JOIN inventory
ON products.ID_numbeer = inventory.ID_number;
+-------------+----------------+-----------------+
| ID_number | Nomenclature | Inventory Count |
+-------------+----------------+-----------------+
| 12345 | Orbitron 4000 | 150 |
+-------------+----------------+-----------------+
| 12346 | Orbitron 3000 | 200 |
+-------------+----------------+-----------------+
| 12347 | Orbitron 1000 | 0 |
+-------------+----------------+-----------------+
<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass) ;
if(! $conn ) {
die('Could not connect: ' . mysql_error() );
}
50
MariaDB Nivel I | Uneweb
mysql_select_db('PRODUCTS') ;
$retval = mysql_query( $sql, $conn ) ;
if(! $retval ) {
die('Could not get data: ' . mysql_error() );
}
ID Number: 12345
Nomenclature: Orbitron 4000
Inventory Count: 150
--------------------------------------
ID Number: 12346
Nomenclature: Orbitron 3000
Inventory Count: 200
--------------------------------------
ID Number: 12347
Nomenclature: Orbitron 1000
Inventory Count: 0
51
MariaDB Nivel I | Uneweb
--------------------------------------
mysql> Fetched data successfully
52
MariaDB Nivel I | Uneweb
La otra forma -
FUNCIONES NULL
Hay funciones diseñadas específicamente para la gestión de valores NULL.
Son -
IFNULL() - Si la primera expresión no es NULL se
devuelve. Cuando se evalúa a NULL, devuelve la segunda expresión.
NULLIF() - Devuelve NULL cuando las expresiones
comparados son iguales, si no, se devuelve la primera
expresión.
Funciones como SUM y AVG ignoran los valores nulos.
53
MariaDB Nivel I | Uneweb
1 ^
Que coincide con el inicio de la cadena.
2 $
Que coincide con el final de la cadena.
3 .
Coincide con un carácter único.
4 [...]
Coincide con cualquier carácter en los soportes.
5 [^...]
Coincide con cualquier carácter que no figura en los soportes.
6 p1|p2|p3
54
MariaDB Nivel I | Uneweb
55