Blog de informática: programación, internet, php, wordpress, zend framework, mysql, windows, mootools, linux,…
In: mysql
24 sep 2009
Existes dos tipos de campo en MySQL que siempre los he visto iguales. He investigado un poco en sus diferencias y lo que voy a comentar sirve tanto para MySQL 5.1 como MySQL 5.4.
Tanto ENUM como SET, sirven para determinar los valores que puede tener un campo de una tabla, es decir, puedes determinar que en un campo solamente pueda contener valores de una lista definida por ti. La principal diferencia es que un campo del tipo ENUM siempre contiene sólo un valor de la lista; y un campo del tipo SET puede contener ninguno, uno o varios valores de la lista.
Hay más características de estos dos campos de MySQL, que les hace diferenciarse y es necesario conocerlas para decidir cual es más apropiado para nuestro diseño de la base de datos.
El tipo de campo ENUM se caracteriza por:
CREATE TABLE sizes ( size ENUM('small', 'medium', 'large') NOT NULL DEFAULT 'medium' );
El tipo de campo SET se caracteriza por:
CREATE TABLE letters ( letter SET('a', 'b', 'c', 'd') );
| SET | Decimal | Bytes |
| ‘a’ | 1 | 0001 |
| ‘b’ | 2 | 0010 |
| ‘c’ | 4 | 0100 |
| ‘d’ | 8 | 1000 |
(N+7)/8 bytes)Conociendo más a fondo los tipos de campos, y sabiendo sus posibilidades, ahora es fácil decidirse y justicarse.
Entradas relacionadas:
Este blog informático pretende ser un blog de notas o portafolio de información variada: trozos de código, descubrimientos, notas sueltas, ... Para tenerla a mano, y ser compartida.
1 Comentario en Diferencias entre ENUM y SET en MySQL
Enrique
10 julio 2010 a las 19:17
Muy buena guia. Estaba buscando esto, Gracias !