Evilnapsis

Programming, Hacking and More

Databases

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?

Agustin Ramos

Desarrollador de Software

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

Leave a Reply