Sintaxis Enum

Para definir un campo de tipo "enum" usamos la siguiente sintaxis al crear la tabla:

create table postulantes( numero int unsigned auto_increment, documento char(8), nombre varchar(30), estudios enum('ninguno','primario','secundario', 'terciario','universitario'), primary key(numero) );


Los valores presentados deben ser cadenas de caracteres.

Si un "enum" permite valores nulos, el valor por defecto es "null"; si no permite valores nulos, el valor por defecto es el primer valor de la lista de permitidos.

Si se ingresa un valor numérico, lo interpreta como índice de la enumeración y almacena el valor de la lista con dicho número de índice. Por ejemplo:


insert into postulantes (documento,nombre,estudios) values('22255265','Juana Pereyra',5);

En el campo "estudios" almacenará "universitario" que es valor de índice 5.

Si se ingresa un valor inválido, puede ser un valor no presente en la lista o un valor de índice fuera de rango, coloca una cadena vacía (en las versiones nuevas de MySQL produce un error y no se inserta). Por ejemplo:

insert into postulantes (documento,nombre,estudios) values('22255265','Juana Pereyra',0); insert into postulantes (documento,nombre,estudios) values('22255265','Juana Pereyra',6); insert into postulantes (documento,nombre,estudios) values('22255265','Juana Pereyra','PostGrado');


Esta cadena vacía de error, se diferencia de una cadena vacía permitida porque la primera tiene el valor de índice 0; entonces, podemos seleccionar los registros con valores inválidos en el campo de tipo "enum" así:

select * from postulantes where estudios=0;


El índice de un valor "null" es "null".

Para seleccionar registros con un valor específico de un campo enumerado usamos "where", por ejemplo, queremos todos los postulantes con estudios universitarios:

select * from postulantes where estudios='universitario';


Los tipos "enum" aceptan cláusula "default".

Si el campo está definido como "not null" e intenta almacenar el valor "null" aparece un mensaje de error y la sentencia no se ejecuta.

Los bytes de almacenamiento del tipo "enum" depende del número de valores enumerados.

¡Crea tu página web gratis! Esta página web fue creada con Webnode. Crea tu propia web gratis hoy mismo! Comenzar