Table of Contents
Aprenda MySQL/MariaDB para principiantes-Parte 1
En este artículo mostraremos cómo crear una base de datos (también conocida como esquema), tablas (con tipos de datos) y explicaremos cómo realizar Lenguaje de manipulación de datos. ( DML. operaciones con datos en un servidor MySQL. MariaDB.
Se asume que previamente tiene 1). instaló los paquetes necesarios en su sistema Linux, y 2). ejecutó mysql_secure_installation. para mejorar la seguridad del servidor de la base de datos. De lo contrario, siga las guías a continuación para instalar el servidor MySQL/MariaDB.
- Instale la base de datos MySQL más reciente en sistemas Linux
- Instale la base de datos MariaDB más reciente en sistemas Linux
Para mayor brevedad, nos referiremos a MariaDB. exclusivamente a lo largo de este artículo, pero los conceptos y comandos descritos aquí también se aplican a MySQL.
Parte 1 : Aprenda MySQL/MariaDB para principiantes Parte 2 : Aprenda a utilizar varias funciones de MySQL y MariaDB
Creación de bases de datos, tablas, y usuarios autorizados
Como sabe, una base de datos se puede definir en términos simples como una colección organizada de información. En particular, MariaDB. es un sistema de gestión de bases de datos relacionales ( RDBMS. y utiliza el lenguaje de consulta de estructura para realizar operaciones en bases de datos. Además, tenga en cuenta que MariaDB usa los términos base de datos y esquema de manera intercambiable.
Para almacenar información persistente en una base de datos, usaremos tablas. que almacenan filas de datos. A menudo, dos o más tablas estarán relacionadas entre sí de alguna manera. Eso es parte de la organización que caracteriza el uso de bases de datos relacionales.
Crear una nueva base de datos freestar.config.enabled_slots.push
Para crear una nueva base de datos llamada BooksDB, ingrese el indicador de MariaDB con el siguiente comando (se le pedirá que ingrese la contraseña para el usuario raíz de MariaDB):
[[email protected] ~] # mysql-u root-p. Ingresar contraseña: Bienvenido al monitor MariaDB. Los comandos terminan con; o \ g. Su ID de conexión MariaDB es 2 Versión del servidor: 10.1.14-MariaDB MariaDB Server Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab y otros. Escriba ‘ayuda’; o ‘\ h’ para obtener ayuda. Escriba ‘\ c’ para borrar la declaración de entrada actual. MariaDB [(none)]> CREAR BASE DE DATOS BookstoreDB;. Consulta OK, 1 fila afectada (0.00 seg) MariaDB [(none)]>
Una vez que la base de datos creado, necesitamos crear al menos dos tablas en él. Pero primero exploremos el concepto de tipos de datos.
Introducción a los tipos de datos MariaDB
Como explicamos anteriormente, las tablas. son objetos de base de datos donde guardaremos información persistente . Cada tabla consta de dos o más campos (también conocidos como columnas. de un tipo de datos determinado (el tipo de información) que dicho campo puede almacenar.
Los tipos de datos más comunes en MariaDB son los siguientes (puedes consultar la lista completa en la documentación oficial en línea de MariaDB):
Numérico:
- BOOLEAN. considera 0 como falso y cualquier otro valor como verdadero .
- TINYINT. si se usa con SIGNED, cubre el rango de-128 a 127, mientras que el rango de UNSIGNED es de 0 a 255.
- SMALLINT. si se usa con SIGNED, cubre el rango de-32768 a 32767. El rango de UNSIGNED es de 0 a 65535.
- INT. si se usa con UNSIGNED, cubre el rango de 0 a 4294967295, y de-2147483648 a 2147483647 en caso contrario.
Nota. En TINYINT, SMALLINT e INT, se asume el valor predeterminado FIRMADO.
DOBLE (M, D). donde M. es el número total de dígitos y D. es el número de dígitos después del punto decimal, representa un número de punto flotante de doble precisión. Si se especifica UNSIGNED, no se permiten valores negativos.
Cadena:
- VARCHAR (M). representa una cadena de longitud variable donde M. es la longitud máxima de columna permitida en bytes (65.535 en teoría ). En la mayoría de los casos, el número de bytes es idéntico al número de caracteres, excepto por algunos caracteres que pueden ocupar hasta 3 bytes. Por ejemplo, la letra española ñ representa un carácter pero ocupa 2 bytes.
- TEXT (M). representa una columna con una longitud máxima de 65,535 caracteres. Sin embargo, como sucede con VARCHAR (M). la longitud máxima real se reduce si se almacenan caracteres de varios bytes. Si se especifica M. la columna se crea como el tipo más pequeño que puede almacenar tal número de caracteres.
- MEDIUMTEXT (M). y LONGTEXT (M). son similares a TEXT (M). solo que las longitudes máximas permitidas son 16.777.215 y 4.294.967.295 caracteres, respectivamente.
Fecha y hora:
- FECHA. representa la fecha en formato AAAA-MM-DD.
- HORA. representa la hora en HH: MM: SS.sss. formato (hora, minutos, segundos y milisegundos).
- DATETIME. es la combinación de DATE. y TIME. en formato AAAA-MM-DD HH: MM: SS.
- TIMESTAMP. se utiliza para definir el momento en que se agregó o actualizó una fila.
Después de haber revisado estos tipos de datos, estará en una mejor posición para determinar qué tipo de datos necesita asignar a una columna determinada en un tabla.
Por ejemplo, el nombre de una persona puede caber fácilmente en un VARCHAR (50). mientras que una publicación de blog necesitará un tipo de TEXTO. (elija M. según sus necesidades específicas).
Creación de tablas con claves primarias y externas
Antes de sumergirnos en la creación de tablas, hay dos conceptos fundamentales sobre las bases de datos relacionales que debemos revisar: primario. y claves externas.
Una clave principal. contiene un valor que identifica de forma única cada fila o registro de la tabla. Por otro lado, se utiliza una clave externa. para crear un vínculo entre los datos en dos tablas y para controlar los datos que se pueden almacenar en la tabla donde se encuentra la clave externa. Tanto las claves primarias como las externas son generalmente INT.
Para ilustrar, usemos BookstoreDB y creemos dos tablas llamadas AuthorsTBL y BooksTBL de la siguiente manera. La restricción NOT NULL. indica que el campo asociado requiere un valor distinto de NULL.
Además, AUTO_INCREMENT. se usa para aumente en uno el valor de las columnas de clave primaria INT. cuando se inserte un nuevo registro en la tabla.
MariaDB [(none)]>. USE BookstoreDB; MariaDB [(ninguno)]>. CREAR TABLA AuthorsTBL (AuthorID INT NOT NULL AUTO_INCREMENT, AuthorName VARCHAR (100), PRIMARY KEY (AuthorID)); MariaDB [(ninguno)]>. CREATE TABLE BooksTBL (BookID INT NOT NULL AUTO_INCREMENT, BookName VARCHAR (100) NOT NULL, AuthorID INT NOT NULL, BookPrice DECIMAL (6,2) NOT NULL, BookLastUpdated TIMESTAMP, BookIsAvailable BOOLEAN, PRIMARY KEY (BookID), FOREIGN KEY (AuthorID) REFERENCIAS AuthorsTBL (AuthorID)); Crear tablas MySQL con clave primaria y externa MariaDB [(none)]> USE BookstoreDB;. Base de datos cambiada MariaDB [BookstoreDB]> CREAR TABLA AuthorsTBL (-> AuthorID INT NOT NULL AUTO_INCREMENT,-> AuthorName VARCHAR (100),-> PRIMARY KEY (AuthorID)->);. Consulta OK, 0 filas afectadas (0.05 seg) MariaDB [BookstoreDB]> CREAR TABLA BooksTBL (-> BookID INT NOT NULL AUTO_INCREMENT,-> BookName VARCHAR (100) NOT NULL,-> AuthorID INT NOT NULL,-> BookPrice DECIMAL (6,2) NOT NULL,-> BookLastUpdated TIMESTAMP,-> BookIsAvailable BOOLEAN,-> PRIMARY KEY (BookID),-> FOREIGN KEY (AuthorID) REFERENCIAS AuthorsTBL (AuthorID)->);. Consulta OK, 0 filas afectadas (0.05 seg ) MariaDB [BookstoreDB]>
Ahora podemos seguir adelante y comenzar a insertar registros en AuthorsTBL y BooksTBL.
Seleccionar, insertar, actualizar y eliminar ing Rows
Primero llenaremos la tabla AuthorsTBL. ¿Por qué? Porque necesitamos tener valores para AuthorID antes de insertar registros en BooksTBL.
Ejecute la siguiente consulta desde su indicador MariaDB:
MariaDB [BookstoreDB]> INSERT INTO AuthorsTBL (AuthorName) VALUES (‘Agatha Christie’), (‘Stephen King’), (‘Paulo Coelho’);
Después de eso, seleccionaremos todos los registros de AuthorsTBL. Recuerde que necesitaremos el ID de autor. de cada registro para crear la consulta INSERT. para BooksTBL.
Si desea recuperar un registro a la vez, puede utilizar una cláusula WHERE. para indicar una condición que debe cumplir una fila para ser devuelta. Por ejemplo,
MariaDB [BookstoreDB]>. SELECT * FROM AuthorsTBL WHERE AuthorName = ‘Agatha Christie’;
Alternativamente, puede seleccionar todos los registros simultáneamente:
MariaDB [BookstoreDB]>. SELECT * FROM AuthorsTBL; Seleccionar y consultar registro en MySQL MariaDB [BookstoreDB]> SELECT * FROM AuthorsTBL WHERE AuthorName = ‘Agatha Christie’;. +———-+—————–+ | AuthorID | AuthorName | +———-+—————–+ | 1 | Agatha Christie | +———-+—————–+ 1 fila en el conjunto (0.00 seg) MariaDB [BookstoreDB]>
Seleccionar y consultar una cadena en la base de datos MySQL
Ahora vamos cree la consulta INSERT. para BooksTBL. utilizando el AuthorID. correspondiente para que coincida con el autor de cada libro. Un valor de 1. en BookIsAvailable. indica que el libro está disponible, 0. en caso contrario:
MariaDB [BookstoreDB]>. INSERT INTO BooksTBL (BookName, AuthorID, BookPrice, BookIsAvailable) VALUES (‘And Then There Were None’, 1, 14.95, 1), (‘The Man in the Brown Suit’, 1, 23.99, 1), ( ‘The Stand’, 2, 35.99, 1), (‘Pet Sematary’, 2, 17.95, 0), (‘The Green Mile’, 2, 29.99, 1), (‘The Alchemist’, 3, 25, 1 ), (‘Por el río Piedra me senté y lloré’, 3, 18.95, 0); Insertar consulta en la tabla MySQL MariaDB [BookstoreDB]> INSERT INTO BooksTBL (BookName, AuthorID, BookPrice, BookIsAvailable)-> VALUES (‘And Then There Were None’, 1, 14.95, 1 ),-> (‘El hombre del traje marrón’, 1, 23.99, 1),-> (‘El soporte’, 2, 35.99, 1),-> (‘Pet Sematary’, 2, 17.95, 0),-> (‘La milla verde’, 2, 29.99, 1),-> (‘El alquimista’, 3, 25, 1),-> (‘Junto al río Piedra me senté y lloré’, 3, 18.95, 0);. Consulta OK, 7 filas afectadas (0.03 seg) Registros: 7 Duplicados: 0 Advertencias: 0
En este punto haremos un SELECCIONAR. para ver los registros en LibrosTBL. Luego, ACTUALIZAR. el precio de “ El alquimista. de Paulo Coelho. y SELECCIONAR. ese registro específico nuevamente.
Observe cómo el campo BookLastUpdated. ahora muestra un valor diferente. Como explicamos anteriormente, un campo TIMESTAMP. muestra el valor cuando el registro fue insertado o modificado por última vez.
MariaDB [BookstoreDB]>. SELECT * FROM BooksTBL; MariaDB [BookstoreDB]>. ACTUALIZAR BooksTBL SET BookPrice = 22.75 WHERE BookID = 6; MariaDB [BookstoreDB]>. SELECT * FROM BooksTBL WHERE BookID = 6; Insertar tabla de consulta y actualización en la base de datos MySQL MariaDB [BookstoreDB]> SELECT * FROM BooksTBL;. +——–+—————————————–+———-+———–+———————+—————–+ | BookID | BookName | AuthorID | BookPrice | BookLastUpdated | BookIsAvailable | +——–+—————————————–+———-+———–+———————+—————–+ | 1 | Y luego no hubo ninguno | 1 | 14,95 | 2016-10-01 23:31:41 | 1 | | 2 | El hombre del traje marrón | 1 | 23,99 | 2016-10-01 23:31:41 | 1 | | 3 | El Stand | 2 | 35,99 | 2016-10-01 23:31:41 | 1 | | 4 | Pet Sematary | 2 | 17,95 | 2016-10-01 23:31:41 | 0 | | 5 | La milla verde | 2 | 29,99 | 2016-10-01 23:31:41 | 1 | | 6 | El alquimista | 3 | 25,00 | 2016-10-01 23:31:41. | 1 | | 7 | Junto al río Piedra me senté y lloré | 3 | 18,95 | 2016-10-01 23:31:41 | 0 | +——–+—————————————–+———-+———–+———————+—————–+ 7 filas en conjunto (0.00 seg) MariaDB [BookstoreDB]> ACTUALIZAR BooksTBL SET BookPrice = 22.75 WHERE BookID = 6;. Consulta OK, 1 fila afectada (0.04 seg) Filas coincidentes: 1 Modificado: 1 Advertencias: 0 MariaDB [BookstoreDB]> SELECT * FROM BooksTBL WHERE BookID = 6; +——–+—————+———-+———–+———————+—————–+ | BookID | BookName | AuthorID | BookPrice | BookLastUpdated | BookIsAvailable | +——–+—————+———-+———–+———————+—————–+ | 6 | El alquimista | 3 | 22,75 | 2016-10-01 23:35:00 | 1 | +——–+—————+———-+———–+———————+—————–+ 1 fila en el conjunto (0,00 seg) MariaDB [BookstoreDB ]>
Insertar y actualizar el registro de la tabla de la base de datos
Aunque no lo haremos aquí, también puede eliminar un registro si ya no se usa. Por ejemplo, supongamos que queremos eliminar “ El alquimista. de BooksTBL.
Para hacerlo, usaremos DELETE. declaración de la siguiente manera:
MariaDB [BookstoreDB]>. DELETE FROM BooksTBL WHERE BookID = 6;
Como en el caso de ACTUALIZAR. es una buena idea hacer una SELECCIÓN. primero para ver los registros que pueden verse afectados por el DELETE.
Además, no olvide agregar la cláusula WHERE. y una condición (BookID = 6). a seleccione el registro específico que se eliminará. De lo contrario, corre el riesgo de eliminar todas las filas de la tabla.
Si desea concatenar dos (o más) campos, puede utilizar la instrucción CONCAT. Por ejemplo, digamos que queremos devolver un conjunto de resultados que consta de un campo con el nombre del libro y el autor en forma de “ El alquimista (Paulo Coelho). y otra columna con el precio.
Esto requerirá un JOIN. entre AuthorsTBL. y BooksTBL. en el campo común compartido por ambas tablas ( AuthorID ):
MariaDB [BookstoreDB]>. MOSTRAR COLUMNAS EN BooksTBL; Enumerar columnas en la tabla de la base de datos MariaDB [BookstoreDB]> MOSTRAR COLUMNAS EN BooksTBL;. +—————–+————–+——+—–+——————-+—————————–+ | Campo | Tipo | Nulo | Clave | Por defecto | Extra | +—————–+————–+——+—–+——————-+—————————–+ | BookID | int (11) | NO | PRI | NULL | auto_increment | | BookName | varchar (100) | NO | | NULL | | | AuthorID | int (11) | NO | MUL | NULL | | | BookPrice | decimal (6,2) | NO | | NULL | | | BookLastUpdated | marca de tiempo | NO | | CURRENT_TIMESTAMP | en la actualización CURRENT_TIMESTAMP | | BookIsAvailable | tinyint (1) | SI | | NULL | | +—————–+————–+——+—–+——————-+—————————–+ 6 filas en establecer (0.02 seg)
Lista de columnas en la tabla de la base de datos
Una inspección rápida revela que el campo BookIsAvailable. admite valores NULL. Como no queremos permitir eso, ALTER. la tabla de la siguiente manera:
MariaDB [BookstoreDB]>. ALTER TABLE BooksTBL MODIFY BookIsAvailable BOOLEAN NOT NULL ;
(Siéntase libre de mostrar las columnas nuevamente; el SÍ. resaltado en la imagen de arriba ahora debería ser un NO. .
Por último, para ver todas las bases de datos en su servidor, haga:
MariaDB [BookstoreDB]>. MOSTRAR BASES DE DATOS; O MariaDB [BookstoreDB]>. MOSTRAR ESQUEMAS; Listar todas las bases de datos MySQL [[email protected] ~] # mysql-u bookstoreuser-p. Ingresar contraseña: Bienvenido al monitor MariaDB. Los comandos terminan con; o \ g. Su ID de conexión MariaDB es 3 Versión del servidor: 10.1.14-MariaDB MariaDB Server Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab y otros. Escriba ‘ayuda’; o ‘\ h’ para obtener ayuda. Escriba ‘\ c’ para borrar la declaración de entrada actual. MariaDB [BookstoreDB]> MOSTRAR BASES DE DATOS;. +——————–+ | Base de datos | +——————–+ | BookstoreDB | | esquema_de_información | +——————–+ 2 filas en conjunto (0.00 seg) MariaDB [BookstoreDB]> MOSTRAR ESQUEMAS; +——————–+ | Base de datos | +——————–+ | BookstoreDB | | esquema_de_información | +——————–+ 2 filas en conjunto (0.00 seg)
La siguiente imagen muestra el resultado del comando anterior después de acceder al indicador de MariaDB como el usuario de librería. (tenga en cuenta que esta cuenta no puede “ver” ninguna base de datos que no sea BookstoreDB. y esquema de información. (disponible para todos los usuarios):
Listar todas las bases de datos MySQL
Resumen
En este artículo hemos explicado cómo ejecutar operaciones DML. y cómo crear una base de datos, tablas y usuarios en una base de datos MariaDB. Además, compartimos algunos consejos que pueden facilitarle la vida como administrador de sistema/base de datos.