Tipo de datos de MySQL enum

Tipo de datos de MySQL enum
Existen muchos tipos de datos en MySQL para almacenar diferentes datos en la tabla de bases de datos. El tipo de datos enum es uno de ellos. La forma completa de enumer es una enumeración. Cuando se requiere insertar cualquier valor particular de la lista de los valores predefinidos en un campo de una tabla, entonces se usa un tipo de datos enum. La lista de valores se almacena como la cadena para el campo ENUM, y el número de valores seleccionados de los valores de la lista se insertará en el campo ENUM en el tiempo de inserción o actualización. Cuando el campo enum se recupere de la tabla, mostrará el valor del número al formato legible por humanos. Los usos del tipo de datos enum en MySQL se han mostrado en este tutorial.

Sintaxis:

La sintaxis del tipo de datos enum se da a continuación.

Crear tabla table_name (

enum_field enum ('val1', 'val2', ..., 'valn'),

);

Los valores máximos de 65,535 se pueden definir como valores de enum.

Enume atributos:

El tipo de datos de enum tiene tres atributos. Estos se describen a continuación.

POR DEFECTO

El valor predeterminado del tipo de datos enum es nulo. Si no se proporciona ningún valor para el campo ENUM, entonces se insertará el valor nulo.

NULO

Funciona igual que el valor predeterminado si este atributo está configurado para el campo ENUM.

NO NULO

Aparecerá un mensaje de advertencia si este atributo está configurado para el campo Enum y no se proporciona ningún valor en el momento de la inserción.

Verificación de los usos del tipo de datos enum:

Debe crear una tabla con el tipo de datos de enum en una base de datos MySQL para verificar el uso del tipo de datos enum. Abra el terminal y conéctese con el servidor MySQL ejecutando el siguiente comando.

$ sudo mysql -u root

Ejecute el siguiente comando para crear una base de datos llamada test_db.

Crear base de datos test_db;

Ejecute el siguiente comando para seleccionar la base de datos.

Usar test_db;

Ejecute la siguiente consulta para crear una tabla llamada Libro con cinco campos. El tipo de datos del tipo El campo de esta tabla es un enum que almacenará cualquiera de los tres valores (ingeniería, médico y negocio).

Crear libro de mesa (
ID INT no nulo llave primaria auto_increment,
Nombre Varchar (50) No nulo,
tipo enum ('ingeniería', 'médico', 'negocios'),
Autor Varchar (50) No NULL,
precio flotante (5,2) no nulo
) Motor = innodb;

Ejecute el siguiente comando para verificar la estructura del Libro mesa.

Describir el libro;

Producción:

La siguiente salida aparecerá después de ejecutar el comando anterior.

Insertar datos válidos en la tabla:

Ejecute la siguiente consulta de inserción para insertar tres registros en el Libro mesa. 'Ingeniería, "médicos' y 'negocios' se han utilizado para el campo Enum de la tabla, que son valores de enum válidos. Entonces, la consulta se ejecutará sin ningún error.

Insertar en 'Libro' ('id', 'Nombre', 'Tipo', 'Autor', 'Precio') Valores
(NULL, 'Teoría de las máquinas', 'Ingeniería', 'J.K. Gupta y R.S. Khurmi ', 59.99),
(Null, 'Medicina de bolsillo', 'Medical', 'Marc S Sabatine', 45.80),
(NULL, 'Principios de marketing', 'Negocios', 'Gary Armstrong y Philip Kotler', 60.00);

Leer datos de la tabla:

Después de ejecutar la consulta de inserción, ejecute la siguiente consulta de selección para verificar el contenido del Libro mesa.

Seleccionar * de 'Libro';

Producción:

La siguiente salida aparecerá después de ejecutar el comando anterior.

Inserte datos no válidos en la tabla:

La consulta de inserción generará un error si el valor que no existe en la lista Enum se intentará insertar. En la siguiente consulta de inserción, el valor 'BBA' se establece para el campo ENUM (tipo), pero no coincide con ninguno de los elementos de Enum definidos en el momento de la creación de la tabla. Entonces, la siguiente consulta de inserción generará un error después de la ejecución.

Insertar en 'Libro' ('id', 'Nombre', 'Tipo', 'Autor', 'Precio') Valores
(NULL, 'Comunicidad de negocios esenciales', 'BBA', 'Courtland L Bovee y John Thill', 59.99);

Producción:

La siguiente salida aparecerá después de ejecutar el comando anterior. Aquí, error no 1265 se ha generado, y no se insertará ningún nuevo registro.

Filtro de datos de la tabla basado en el valor numérico de enum:

El valor de la cadena se usa en el momento de insertar datos en el campo Enum de la tabla, pero los registros insertados de la tabla se pueden recuperar en función del índice numérico o el valor de la cadena del campo ENUM. El uso del índice numérico del valor enum para filtrar los datos del Libro La tabla se ha mostrado en la siguiente consulta de selección. El índice numérico 2 del campo Enum contiene el valor, 'Médico.'Entonces, los registros que contienen el valor 'Médico' en el campo tipo de la Libro La tabla aparecerá en la salida. Solo hay un registro en la tabla que coincide con los criterios.

Seleccione ID, nombre, tipo, autor, precio del libro donde tipo = 2;

Producción:

La siguiente salida aparecerá después de ejecutar la consulta anterior.

Filtro de datos de la tabla basado en el valor de enum de legendible por humanos:

No es más fácil recordar el índice numérico de cada valor de elemento enum si el campo Enum contiene una lista de una gran cantidad de elementos. En este caso, es mejor usar el valor de cadena del elemento enum en la consulta para recuperar los registros basados ​​en el valor del campo Enum. La siguiente consulta de selección filtrará los registros donde el campo Tipo contiene el valor, 'Business.'Según los datos de la tabla de libros, solo hay un registro coincidente con el tipo valor, 'negocios.'

Seleccione ID, nombre, tipo, autor, precio del libro donde tipo = 'Business';

Producción:

La siguiente salida aparecerá después de ejecutar la consulta anterior.

Conclusión:

El enum es un tipo de datos beneficioso de MySQL. La inserción de datos no válidos se puede prevenir utilizando este tipo de datos. La forma de declarar e insertar datos en el campo Enum y la forma de recuperar datos basados ​​en el campo ENUM se ha mostrado en este tutorial utilizando ejemplos.