Blog de Gonzalo

TIPO DE DATO SET EN MYSQL

El tipo de dato set en mysql representa un conjunto de cadenas. Puede tener un máximo de 64 valores distintos y es una cadena cuyo valor se elige de una lista enumerada de valores permitidos que se especifica al definir el campo y puede ser una cadena vacía e incluso null. Dicha lista de valores comienza en 1 no como los arrays en los lenguajes de programación que comienzan en 0.
Este tipo de dato hay que usarlo cuando en una base de datos se definen varios tipos, por ejemplo, tenemos un sitio web donde los perfiles de usuarios pueden estar en varios idiomas, lo ideal es definir un campo "idioma" de tipo set donde al suuario se le de la opción de crear el perfil en inglés y español.
Código de creación de la tabla y de inserción / modificación:


 create table usuarios(
numero int unsigned auto_increment,
documento char(8),
nombre varchar(30),
idioma set('ingles','frances','español'),
primary key(numero)
); );

//En el ejemplo se creará el usuario cuyo perfil será en inglés
insert into usuarios(documento,nombre,idioma) values('587456','Luis Pérez','ingles'); //En el ejemplo se creará el usuario cuyo perfil será en inglés y español
insert into usuarios(documento,nombre,idioma) values('741258','Juan Gómez','ingles,español');
//Un update sería igual que en el insert

//para buscar por el tipo set sería
select * from usuarios where idioma='ingles';

Os invito a ver el post: tipo de dato enum en mysql

Compartir en twitter