Index
Index
Creación de
bases de datos en MySQL
Apuntes de BD para DAW, DAM y ASIR
Curso 2023/2024
Índice
3 Manipulación de tablas 7
3.1 Crear una tabla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.1.1 Restricciones sobre las columnas de la tabla . . . . . . . . . . . . . . . . . . . . . . . . 7
3.1.2 Opciones en la declaración de claves ajenas (FOREIGN KEY) . . . . . . . . . . . . . . 9
3.1.3 Opciones a tener en cuenta en la creación de las tablas . . . . . . . . . . . . . . . . . . 11
3.2 Eliminar una tabla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.3 Modificar una tabla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.3.1 Ejemplo de ALTER TABLE <tbl_name> MODIFY . . . . . . . . . . . . . . . . . . 14
3.3.2 Ejemplo de ALTER TABLE <tbl_name> CHANGE . . . . . . . . . . . . . . . . . . 15
3.3.3 Ejemplo de ALTER TABLE <tbl_name> ALTER . . . . . . . . . . . . . . . . . . . 15
3.3.4 Ejemplo de ALTER TABLE <tbl_name> ADD . . . . . . . . . . . . . . . . . . . . . 16
3.3.5 Ejemplo de ALTER TABLE <tbl_name> DROP . . . . . . . . . . . . . . . . . . . . 17
3.4 Consultar el listado de tablas disponibles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.5 Mostrar información sobre la estructura de una tabla . . . . . . . . . . . . . . . . . . . . . . . 17
3.6 Mostrar la sentencia SQL de creación de una tabla . . . . . . . . . . . . . . . . . . . . . . . . . 17
4 Tipos de datos 19
4.1 Números enteros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.1.1 ZEROFILL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.1.2 Nota importante sobre INT(11) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.1.3 BIT, BOOL, BOOLEAN, SERIAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.2 Números en punto flotante (Valores aproximados) . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.2.1 Problemas de precisión con operaciones en punto flotante . . . . . . . . . . . . . . . . 21
i
Unidad Didáctica 4. Creación de bases de datos en MySQL Curso 2023/2024
5 Índices 28
6 Vistas 29
7 Referencias 30
8 Licencia 31
iii
Índice de cuadros
iv
1 El lenguaje DDL de SQL
El DDL (Data Definition Language) o Lenguaje de Definición de Datos es la parte de SQL dedicada a la definición
de los datos. Las sentencias DDL son las siguientes:
• CREATE: se utiliza para crear objetos como bases de datos, tablas, vistas, índices, triggers y procedimien‑
tos almacenados.
• DROP: se utiliza para eliminar los objetos de la base de datos.
• ALTER: se utiliza para modificar los objetos de la base de datos.
• SHOW: se utiliza para consultar los objetos de la base de datos.
• USE: se utiliza para indicar la base de datos con la que queremos trabajar.
• DESCRIBE: se utiliza para mostrar información sobre la estructura de una tabla.
1
2 Manipulación de Bases de Datos
Ejemplos:
Si no especificamos el set de caracteres en la creación de la base de datos, se usará latin1 por defecto.
Las bases de datos que vamos a crear durante el curso usarán el set de caracteres utf8 o utf8mb4.
El cotejamiento, es el criterio que vamos a utilizar para ordenar las cadenas de caracteres de la base de datos. Si
no especificamos ninguno se usará el que tenga asignado por defecto el set de caracteres escogido. Por ejemplo,
para el set de caracteres utf8 se usa utf8_general_ci.
El siguiente ejemplo muestra cómo podemos especificar el cotejamiento queremos de forma explícita:
Unicode es un set de caracteres universal, un estándar en el que se definen todos los caracteres necesarios
para la escritura de la mayoría de los idiomas hablados en la actualidad. El estándar Unicode describe las pro‑
piedades y algoritmos necesarios para trabajar con los caracteres Unicode y este estándar es gestionado por el
consorcio Unicode.
Los formatos de codificación que se pueden usar con Unicode se denominan UTF‑8, UTF‑16 y UTF‑32.
• UTF‑8 utiliza 1 byte para representar caracteres en el set ASCII, 2 bytes para caracteres en otros bloques
alfabéticos y 3 bytes para el resto del BMP (Basic Multilingual Plane), que incluye la mayoría de los carac‑
teres utilizados frecuentemente. Para los caracteres complementarios se utilizan 4 bytes.
• UTF‑16 utiliza 2 bytes para cualquier carácter en el BMP y 4 bytes para los caracteres complementarios.
2
Unidad Didáctica 4. Creación de bases de datos en MySQL Curso 2023/2024
Se recomienda la lectura del artículo Codificación de caracteres: conceptos básicos publicado por la W3C.org.
En MySQL el set de caracteres utf8 utiliza un máximo de 3 bytes por carácter y contiene sólo los caracteres
del BMP (Basic Multilingual Plane). Según el estándar Unicode, el formato de codificación utf8 permite repre‑
sentar caracteres desde 1 hasta 4 bytes, esto quiere decir que el set de caracteres utf8 de MySQL no permite
almacenar caracteres Unicode con 4 bytes.
Este problema se solucionó a partir de MySQL 5.5.3, cuando se añadió el set de caracteres utf8mb4 que per‑
mite utilizar hasta 4 bytes por carácter.
Por ejemplo, en MySQL los caracteres Emoji Unicode no se podrían representar con utf8, habría que utilizar
utf8mb4:
U+1F603 \xF0\x9F\x98\x83
U+1F648 \xF0\x9F\x99\x88
U+1F47E \xF0\x9F\x91\xBE
En la documentación oficial de MySQL informan que en las próximas versione de de MySQL se espera solucionar
este problema haciendo que utf8 sea un alias de utf8mb4. Hasta que esto no ocurra, se recomienda utilizar
utf8mb4.
• CHARACTER SET: Especifica el set de caracteres que vamos a utilizar en la base de datos.
• COLLATE: Especifica el tipo de cotejamiento que vamos a utilizar en la base de datos. Indica el criterio
que vamos a seguir para ordenar las cadenas de caracteres.
Para ver cuáles son los sets de caracteres que tenemos disponibles podemos usar la siguiente sentencia:
1 SHOW COLLATION;
Si queremos hacer una consulta más específica sobre los tipos de cotejamiento que podemos usar con utf8:
Para consultar qué set de caracteres y qué cotejamiento está utilizando una determinada base de datos pode‑
mos consultar el valor de las variables character_set_database y collation_database.
1 USE database;
Suponemos que tenemos una tabla que contiene cadenas de caracteres codificadas en latin1.
Ahora vamos a obtener los registros de la tabla aplicando diferentes tipos de cotejamiento:
5 | AAA |
6 | aaa |
7 | bbb |
8 | BBB |
9 +------+
• Cotejamiento binary (dos caracteres son iguales si los valores de su representación numérica son igua‑
les).
Ejemplo:
Ejemplo:
1 SHOW DATABASES;
Muestra un listado con todas las bases de datos a las que tiene acceso el usuario con el que hemos conectado
a MySQL.
1 USE nombre_base_datos;
Se puede utilizar para visualizar la sentencia SQL que sería necesaria ejecutar para crear la base de datos que
le estamos indicando como parámetro.
A continuación se muestra una versión simplificada de la sintaxis necesaria para la creación de una tabla en
MySQL.
Para una definición más exhaustiva, puede consultar la sintaxis de creación de tablas en la documentación
oficial de MySQL.
7
Unidad Didáctica 4. Creación de bases de datos en MySQL Curso 2023/2024
• NOT NULL o NULL: Indica si la columna permite almacenar valores nulos o no.
• DEFAULT: Permite indicar un valor inicial por defecto si no especificamos ninguno en la inserción.
• AUTO_INCREMENT: Sirve para indicar que es una columna autonumérica. Su valor se incrementa auto‑
máticamente en cada inserción de una fila. Sólo se utiliza en campos de tipo entero.
• UNIQUE KEY: Indica que el valor de la columna es único y no pueden aparecer dos valores iguales en la
misma columna.
• PRIMARY KEY: Para indicar que una columna o varias son clave primaria.
• CHECK: Nos permite realizar restricciones sobre una columna. En las versiones previas a MySQL 8.0 estas
restricciones no se aplicaban, sólo se parseaba la sintaxis pero eran ignoradas por el sistema gestor de
base de datos. A partir de la versión de MySQL 8.0 ya sí se aplican las restricciones definidas con CHECK.
Ejemplo 1:
Ejemplo 2:
• ON DELETE y ON UPDATE: Nos permiten indicar el efecto que provoca el borrado o la actualización
de los datos que están referenciados por claves ajenas. Las opciones que podemos especificar son las
siguientes:
– RESTRICT: Impide que se puedan actualizar o eliminar las filas que tienen valores referenciados
por claves ajenas. Es la opción por defecto en MySQL.
– CASCADE: Permite actualizar o eliminar las filas que tienen valores referenciados por claves ajenas.
– SET NULL: Asigna el valor NULL a las filas que tienen valores referenciados por claves ajenas.
– NO ACTION: Es una palabra clave del estándar SQL. En MySQL es equivalente a RESTRICT.
– SET DEFAULT: No es posible utilizar esta opción cuando trabajamos con el motor de almacena‑
miento InnoDB. Puedes encontrar más información en la documentación oficial de MySQL.
Ejemplo 1:
26 INSERT INTO pieza VALUES (2, 'Pieza 2', 'Verde', 32.75, 1);
27 INSERT INTO pieza VALUES (3, 'Pieza 3', 'Rojo', 12.00, 2);
28 INSERT INTO pieza VALUES (4, 'Pieza 4', 'Azul', 24.50, 2);
Ejemplo 2:
Ejemplo 3:
Algunas de las opciones que podemos indicar durante la creación de las tablas son las siguientes:
• AUTO_INCREMENT: Aquí podemos indicar el valor inicial que vamos a usar en el campo definido como
AUTO_INCREMENT.
• CHARACTER SET: Especifica el set de caracteres que vamos a utilizar en la tabla.
• COLLATE: Especifica el tipo de cotejamiento que vamos a utilizar en la tabla.
• ENGINE: Especifica el motor de almacenamiento que vamos a utilizar para la tabla. Los más habituales
en MySQL son InnoDB y MyISAM. Por defecto las tablas se crean con el motor InnoDB
Para conocer todas las opciones posibles podemos consultar la sintaxis de creación de tablas en la documen‑
tación oficial de MySQL. Con el objetivo de simplificar la creación de tablas solamente hemos enumerado las
opciones con las que vamos a trabajar durante el curso.
En la documentación oficial de MySQL podemos encontrar más información sobre los diferentes motores de
almacenamiento disponibles en MySQL.
Ejemplo:
En este ejemplo se ha seleccionado para cada una de las tablas las siguientes opciones de configuración: In‑
noDB como motor de base de datos, utf8 como el set de caracteres y el valor 1000 como valor inicial para las
columnas de tipo AUTO_INCREMENT.
Ejemplos:
En muchas ocasiones es necesario modificar los atributos de una tabla, añadir nuevos campos o eliminar otros.
Si la tabla no tiene datos podemos eliminar la tabla y volver a crearla, pero si se trata de una tabla que ya
contiene datos tenemos que hacer uso de la sentencia ALTER TABLE.
68 | index_type
69 | WITH PARSER parser_name
70 | COMMENT 'string'
71
72 table_options:
73 table_option [[,] table_option] ...
74
75 table_option:
76 AUTO_INCREMENT [=] value
77 | AVG_ROW_LENGTH [=] value
78 | [DEFAULT] CHARACTER SET [=] charset_name
79 | CHECKSUM [=] {0 | 1}
80 | [DEFAULT] COLLATE [=] collation_name
81 | COMMENT [=] 'string'
82 | COMPRESSION [=] {'ZLIB'|'LZ4'|'NONE'}
83 | CONNECTION [=] 'connect_string'
84 | {DATA|INDEX} DIRECTORY [=] 'absolute path to directory'
85 | DELAY_KEY_WRITE [=] {0 | 1}
86 | ENCRYPTION [=] {'Y' | 'N'}
87 | ENGINE [=] engine_name
88 | INSERT_METHOD [=] { NO | FIRST | LAST }
89 | KEY_BLOCK_SIZE [=] value
90 | MAX_ROWS [=] value
91 | MIN_ROWS [=] value
92 | PACK_KEYS [=] {0 | 1 | DEFAULT}
93 | PASSWORD [=] 'string'
94 | ROW_FORMAT [=] {DEFAULT|DYNAMIC|FIXED|COMPRESSED|REDUNDANT|COMPACT}
95 | STATS_AUTO_RECALC [=] {DEFAULT|0|1}
96 | STATS_PERSISTENT [=] {DEFAULT|0|1}
97 | STATS_SAMPLE_PAGES [=] value
98 | TABLESPACE tablespace_name [STORAGE {DISK|MEMORY|DEFAULT}]
99 | UNION [=] (tbl_name[,tbl_name]...)
100
101 partition_options:
102 (see CREATE TABLE options)
MODIFY nos permite modificar el tipo de dato de una columna y sus atributos.
Y queremos modificar las columna nombre para que pueda almacenar 50 caracteres y además que sea NOT
NULL. En este caso usaríamos la sentencia:
CHANGE nos permite renombrar una columna, modificar el tipo de dato de una columna y sus atributos.
Y queremos renombrar el nombre de la columna nombre_de_usuario como nombre, que pueda almacenar
50 caracteres y además que sea NOT NULL. En este caso usaríamos la sentencia:
ALTER nos permite asignar un valor por defecto a una columna o eliminar el valor por defecto que tenga esta‑
blecido.
Y queremos que el valor por defecto de la columna rol sea Estudiante. En este caso usaríamos la senten‑
cia:
Si ahora quisiéramos eliminar el valor por defecto de la columna rol, usaríamos la siguiente sentencia:
ADD nos permite añadir nuevas columnas a una tabla. Con los modificadores FIRST y AFTER podemos elegir
el lugar de la tabla donde queremos insertar la nueva columna. FIRST coloca la nueva columna en primer
lugar y AFTER la colocaría detrás de la columna que se especifique. Si no se especifica nada la nueva columna
se añadiría detrás de la última columna de la tabla.
En este caso la nueva columna se ha añadido detrás de la última columna, rol. La tabla quedaría así:
Suponemos que ahora queremos añadir las columnas apellido1 y apellido2 detrás de la columna
nombre.
1 ALTER TABLE usuario ADD apellido1 VARCHAR(50) NOT NULL AFTER nombre;
2
3 ALTER TABLE usuario ADD apellido2 VARCHAR(50) AFTER apellido1;
1 SHOW TABLES;
Muestra un listado de todas las tablas que existen en la base de datos con la que estamos trabajando.
1 DESCRIBE nombre_tabla;
1 DESC nombre_tabla;
Esta sentencia se utiliza para mostrar información sobre la estructura de una tabla.
Se puede utilizar para visualizar la sentencia SQL que sería necesaria ejecutar para crear la tabla que le estamos
indicando como parámetro.
Puedes encontrar más información sobre números enteros en la documentación oficial de MySQL.
4.1.1 ZEROFILL
Todos los tipos de datos numéricos admiten el atributo ZEROFILL. Cuando asignamos este atributo a una
columna también se le añade de forma automática el atributo UNSIGNED, de modo que el campo quedaría
como UNSIGNED ZEROFILL.
INT(11) no quiere decir que queremos guardar un número entero de 11 cifras. El número indicado entre
paréntesis indica el ancho de la columna que ocupará dicho valor y tiene utilidad cuando asignamos el atri‑
19
Unidad Didáctica 4. Creación de bases de datos en MySQL Curso 2023/2024
buto UNSIGNED ZEROFILL. En este caso se completa con 0 a la izquierda del valor hasta alcanzar el número
indicado entre paréntesis.
Por ejemplo, para una columna declarada como INT(4)ZEROFILL, el valor 5 será representado como 0005.
Tipo Descripción
Puedes encontrar más información sobre estos tipos de datos en la documentación oficial de MySQL.
Los tipos de datos FLOAT y DOUBLE almacenan valores numéricos aproximados y no valores exactos, por lo
tanto, debe tener en cuenta que podemos obtener resultados erróneos a la hora de realizar comparaciones
exactas. En la documentación oficial de MySQL podemos encontrar un ejemplo de los problemas que podemos
tener con los valores en punto flotante.
FLOAT 4
FLOAT(M,D) 4 ±1.175494351E‑38 ±3.402823466E+38
FLOAT(M,D) 4 1.175494351E‑38 3.402823466E+38
UNSIGNED
DOUBLE 8
DOUBLE(M,D) 8 ±1.7976931348623157E+308±2.2250738585072014E‑
308
MySQL permite utilizar una sintaxis no estándar para definir los tipos de datos FLOAT y DOUBLE como: FLOAT
(M,D) y DOUBLE(M,D). Donde (M,D) representan que los valores pueden ser almacenados con M dígitos en
total (parte entera más parte decimal), de los cuales D dígitos serán para la parte decimal. A partir de la versión
8.0.17 de MySQL esta sintaxis está obsoleta.
Por ejemplo, un número declarado como FLOAT(7,4) tendrá 7 dígitos como máximo y 4 de ellos serán deci‑
males. El rango de números que se pueden representar en este caso será desde -999.9999 hasta 999.9999
.
El estándar SQL permite indicar de forma opcional el número de bits (precisión) que se van a utilizar para al‑
macenar la mantisa en los datos de tipo FLOAT. En este caso, el número de bits (precisión) se indicará entre
paréntesis a continuación de la palabra reservada FLOAT, por ejemplo: FLOAT(p), donde p indica el número
de bits de la mantisa.
El tipo de dato FLOAT representa un número real de 32 bits en simple precisión, con 1 bit para el signo, 8 bits
para el exponente y 23 para la mantisa, por lo tanto, a la hora de definir una precisión para este tipo de dato
podremos utilizar un valor entre 0 y 23 bits.
Puedes encontrar más información sobre números en punto flotante en la documentación oficial de MySQL.
A continuación, se muestran algunas referencias que pueden útiles para comprender los problemas de preci‑
sión que pueden aparecer en las operaciones con datos en punto flotante.
Los tipos de datos DECIMAL y NUMERIC almacenan valores numéricos exactos y se utilizan cuando es necesa‑
rio guardar los valores exactos sin redondeos. Se suelen utilizar cuando trabajamos con datos monetarios.
En la documentación oficial de MySQL puede encontrar información sobre cómo MySQL proporciona soporte
para realizar operaciones matemáticas con precisión.
Tipo Bytes
DECIMAL
DECIMAL(M,D) M + 2 bytes si D > 0
DECIMAL(M,D)UNSIGNED M + 1 bytes si D = 0
NUMERIC
NUMERIC(M,D) M + 2 bytes si D > 0
NUMERIC(M,D)UNSIGNED M + 1 bytes si D = 0
Por ejemplo, un número declarado como DECIMAL(7,4) tendrá 7 dígitos como máximo y 4 de ellos serán deci‑
males. El rango de números que se pueden representar en este caso será desde -999.9999 hasta 999.9999
.
Cuando se declara una columna como DECIMAL y no se indica la precisión (M) ni el número de cifras decimales
(D), se utilizarán los valores por defecto, que es equivalente a declarar la columna como DECIMAL(10,0).
Si sólo se indica la precisión (M) y no se indica el número de cifras decimales (D), entonces la columna no alma‑
cenará decimales. Por ejemplo, si declaramos una columna como DECIMAL(7), es equivalente a declararla
como DECIMAL(7,0).
Puedes encontrar más información sobre números en punto fijo en la documentación oficial de MySQL.
Puedes encontrar más información sobre fechas y tiempo en la documentación oficial de MySQL.
Se recomienda la lectura del artículo que hay en Wikipedia sobre el problema del año 2038.
Tipo Descripción
Puedes encontrar más información sobre cadenas de caracteres en la documentación oficial de MySQL.
Tipo Descripción
Puedes encontrar más información sobre datos binarios en la documentación oficial de MySQL.
Tipo Descripción
ENUM('valor1', 'valor2', ...) Puede tener 65535 valores. Sólo permite seleccionar
un valor de la lista
SET('valor1', 'valor2', ...) Puede tener 64 valores. Permite seleccionar varios
valores de la lista
Puedes encontrar más información sobre estos tipos de datos en la documentación oficial de MySQL (ENUM y
SET).
4.8 JSON
Tipo Descripción
MySQL también incluye un tipo de dato específico para almacenar datos en formato JSON (JavaScript Object
Notation). El formato JSON está definido en el RFC 7159 y se trata de un formato de texto para el intercambio
de datos.
Las ventajas de utilizar el tipo de dato JSON en lugar de una cadena de caracteres (VARCHAR, TEXT, etc.) son:
• Realiza una validación automática de la sintaxis del documento JSON que se quiere almacenar y no per‑
mite almacenar documentos que contengan errores de sintaxis.
• Los documentos se almacenan en un formato binario optimizado que permiten acceder a los elementos
del documento de una forma más eficiente.
Puedes encontrar más información sobre este tipo de dato en la documentación oficial de MySQL.
Ejemplo:
1 BIT[(length)]
2 TINYINT[(length)] [UNSIGNED] [ZEROFILL]
3 SMALLINT[(length)] [UNSIGNED] [ZEROFILL]
4 MEDIUMINT[(length)] [UNSIGNED] [ZEROFILL]
5 INT[(length)] [UNSIGNED] [ZEROFILL]
6 INTEGER[(length)] [UNSIGNED] [ZEROFILL]
7 BIGINT[(length)] [UNSIGNED] [ZEROFILL]
8 REAL[(length,decimals)] [UNSIGNED] [ZEROFILL]
9 DOUBLE[(length,decimals)] [UNSIGNED] [ZEROFILL]
10 FLOAT[(length,decimals)] [UNSIGNED] [ZEROFILL]
11 DECIMAL[(length[,decimals])] [UNSIGNED] [ZEROFILL]
12 NUMERIC[(length[,decimals])] [UNSIGNED] [ZEROFILL]
13 DATE
14 TIME
15 TIMESTAMP
16 DATETIME
17 YEAR
18 CHAR[(length)] [BINARY] [CHARACTER SET charset_name] [COLLATE collation_name]
19 VARCHAR(length) [BINARY] [CHARACTER SET charset_name] [COLLATE collation_name]
20 BINARY[(length)]
21 VARBINARY(length)
22 TINYBLOB
23 BLOB
24 MEDIUMBLOB
25 LONGBLOB
26 TINYTEXT [BINARY] [CHARACTER SET charset_name] [COLLATE collation_name]
27 TEXT [BINARY] [CHARACTER SET charset_name] [COLLATE collation_name]
28 MEDIUMTEXT [BINARY] [CHARACTER SET charset_name] [COLLATE collation_name]
29 LONGTEXT [BINARY] [CHARACTER SET charset_name] [COLLATE collation_name]
30 ENUM(value1,value2,value3,...) [CHARACTER SET charset_name] [COLLATE
collation_name]
31 SET(value1,value2,value3,...) [CHARACTER SET charset_name] [COLLATE
collation_name]
32 spatial_type
33 JSON
Cuando MySQL almacena en una columna de tipo numérico un valor que está fuera del rango permitido, pueden
ocurrir dos situaciones que dependen de la configuración de MySQL (sql_mode).
• Si está habilitado el modo estricto, MySQL no permite que se inserten los valores que están fuera de rango
y lanza un mensaje de error.
Ejemplo.
Si tenemos una columna con un tipo de dato TINYINT UNSIGNED, el rango de valores permitido para
esta columna será [0, 255]. Si quisiéramos almacenar el valor 256 en esta columna MySQL lanzaría
• Si no está habilitado el modo estricto, MySQL permite se que inserten los valores que están fuera de rango
pero se adaptan al rango de valores que permita la columna.
Ejemplo.
Si tenemos una columna con un tipo de dato TINYINT UNSIGNED, el rango de valores permitido para
esta columna será [0, 255]. Si quisiéramos almacenar el valor 400 en esta columna y MySQL está
configurado en modo no estricto, se almacenaría 255 que es el máximo valor que se puede representar
con este tipo de dato.
Puedes encontrar más información sobre como se gestionan los valores fuera de rango y el desbordamiento en
la documentación oficial de MySQL.
Donde algunos de los valores más importantes que podemos utilizar en modes son:
• ANSI
• STRICT_TRANS_TABLES
• TRADITIONAL
Puede consultar cuál es la lista de todos los modos que podemos utilizar en la documentación oficial.
Para consultar cuál es el valor que tienen estas variables podemos hacerlo así:
1 SELECT @@GLOBAL.sql_mode;
2 SELECT @@SESSION.sql_mode;
Puede consultar más detalles sobre los modos de SQL en la documentación oficial.
Referencias:
28
6 Vistas
Referencia:
• Unidad: Vistas.
• Documentación oficial de MySQL sobre la creación de vistas.
29
7 Referencias
30
8 Licencia
Esta página forma parte del curso Bases de Datos de José Juan Sánchez Hernández y su contenido se distribuye
bajo una licencia Creative Commons Reconocimiento‑NoComercial‑CompartirIgual 4.0 Internacional.
31