Usando el tipo de dato Enum en MySQL


Las enumeraciones en Mysql es un tipo de dato divertido que funciona sobre todo cuando los datos relacionados son fijos y nunca cambian.

Primero que nada, que es un Enum o Enumeración?

Las enumeraciones son tipos de datos similares o iguales a los Arrays en los lenguajes de programación, es decir, se asocian palabras con un indice numérico que inicia de 0 hasta el numero de elementos -1. Ejemplo.

En el caso de MySQL los indices empiezan desde 1.

Enumeración: Marcas de autos

IndiceNombre
1Ford
2Ferrari
3Chevrolette
4Lamborghini

Teniendo nuestra enumeración, podemos acceder a cualquiera de los valores usando el indice.

Enumeraciones en MySQL

Las enumeraciones en MySQL se definen en la creación de la tabla, para las inserciones y actualizaciones de los campos tipo enum vamos a usar el indice de la enumeración.

create table car(
id int not null auto_increment primary key,
modelo varchar(255),
marca enum("Ford", "Ferrari","Chevrolette","Lamborghini")
);

En la linea 4 podemos ver que definimos el tipo enum, que contiene 4 elementos: Ford, ferrari, chevrolette, lamborghini.

La cantidad de elementos que se pueden agregar en un Enum es de 65535 elementos.

Insertar valores

Como ya decía anteriormente, para agregar valores en el enum nos vamos a referir al indice y al mostrar los valores en automático se ingresa el valor en texto.

insert into car(modelo, marca) value("f-150",1);

Al mostrar los resultados veríamos algo asi.

MariaDB [sysshortener]> select * from car;
+----+--------+-------+
| id | modelo | marca |
+----+--------+-------+
|  1 | f-150  | Ford  |
+----+--------+-------+
1 row in set (0.000 sec)

Automáticamente al insertar el valor 1 en la marca se toma el valor en texto que tenia la Enumeración de valores.

Lo mismo para actualizar algún valor siempre utilizaremos el indice del enum.

update car set marca=2;

Y se actualizan los datos.

MariaDB [sysshortener]> select * from car;
+----+--------+---------+
| id | modelo | marca   |
+----+--------+---------+
|  1 | f-150  | Ferrari |
+----+--------+---------+
1 row in set (0.000 sec)

Y listo, ahora ya pueden usar enums en su próximo proyecto. Alguna duda?


Leave a comment

One thought on “Usando el tipo de dato Enum en MySQL