TIPOS DE DATOS

Enum           Set         Blob 

ENUM

El tipo de dato "enum" representa una enumeración. Puede tener un máximo de 65535 valores distintos. Es una cadena cuyo valor se elige de una lista enumerada de valores permitidos que se especifica al definir el campo. Puede ser una cadena vacía, incluso "null".

Los valores presentados como permitidos tienen un valor de índice que comienza en 1.

Una empresa necesita personal, varias personas se han presentado para cubrir distintos cargos. La empresa almacena los datos de los postulantes a los puestos en una tabla llamada "postulantes". Le interesa, entre otras cosas, conocer los estudios que tiene cada persona, si tiene estudios primario, secundario, terciario, universitario o ninguno. Para ello, crea un campo de tipo "enum" con esos valores.

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).


SET

El tipo de dato "set" representa un conjunto de cadenas.

Puede tener 1 ó más valores que se eligen de una lista de valores permitidos que se especifican al definir el campo y se separan con comas. Puede tener un máximo de 64 miembros. Ejemplo: un campo definido como set ('a', 'b') not null, permite los valores 'a', 'b' y 'a,b'. Si carga un valor no incluido en el conjunto "set", se ignora y almacena cadena vacía.

Es similar al tipo "enum" excepto que puede almacenar más de un valor en el campo.

Una empresa necesita personal, varias personas se han presentado para cubrir distintos cargos. La empresa almacena los datos de los postulantes a los puestos en una tabla llamada "postulantes". Le interesa, entre otras cosas, saber los distintos idiomas que conoce cada persona; para ello, crea un campo de tipo "set" en el cual guardará los distintos idiomas que conoce cada postulante.

Para definir un campo de tipo "set" usamos la siguiente sintaxis:

create table postulantes( numero int unsigned auto_increment, documento char(8), nombre varchar(30), idioma set('ingles','italiano','portuges'), primary key(numero) );

Ingresamos un registro:

insert into postulantes (documento,nombre,idioma) values('22555444','Ana Acosta','ingles');

Para ingresar un valor que contenga más de un elemento del conjunto, se separan por comas, por ejemplo:

insert into postulantes (documento,nombre,idioma) values('23555444','Juana Pereyra','ingles,italiano'); 


BLOB

Los tipos "blob" o "text" son bloques de datos. Tienen una longitud de 65535 caracteres.

Un "blob" (Binary Large Object) puede almacenar un volumen variable de datos. La diferencia entre "blob" y "text" es que "text" diferencia mayúsculas y minúsculas y "blob" no; esto es porque "text" almacena cadenas de caracteres no binarias (caracteres), en cambio "blob" contiene cadenas de caracteres binarias (de bytes).

No permiten valores "default".

Existen subtipos:

- tinyblob o tinytext: longitud máxima de 255 caracteres.

- mediumblob o mediumtext: longitud de 16777215 caracteres.

- longblob o longtext: longitud para 4294967295 caracteres.

Se utiliza este tipo de datos cuando se necesita almacenar imágenes, sonidos o textos muy largos.

Un video club almacena la información de sus películas en alquiler en una tabla denominada "peliculas". Además del título, actor y duración de cada película incluye un campo en el cual guarda la sinopsis de cada una de ellas.

La tabla contiene un campo de tipo "text" llamado "sinopsis":

- codigo: int unsigned auto_increment, clave primaria, - nombre: varchar(40), - actor: varchar(30), - duracion: tinyint unsigned, - sinopsis: text,

Se ingresan los datos en un campo "text" o "blob" como si fuera de tipo cadena de caracteres, es decir, entre comillas:

insert into peliculas values(1,'Mentes que brillan','Jodie Foster',120, 'El no entiende al mundo ni el mundo lo entiende a él; es un niño superdotado. La escuela especial a la que asiste tampoco resuelve los problemas del niño. Su madre hará todo lo que esté a su alcance para ayudarlo. Drama');

Para buscar un texto en un campo de este tipo usamos "like":

select * from peliculas where sinopsis like '%Drama%';

No se pueden establecer valores por defecto a los campos de tipo "blob" o "text", es decir, no aceptan la cláusula "default" en la definición del campo.


Cibergrafía:

https://tutorialesprogramacionya.com/mysqlya/temarios/descripcion.php?inicio=42&cod=54&punto=57

https://tutorialesprogramacionya.com/mysqlya/temarios/descripcion.php?inicio=42&cod=55&punto=58

https://tutorialesprogramacionya.com/mysqlya/temarios/descripcion.php?inicio=42&cod=78&punto=59

Ricardo Restrepo - Blog para bases de datos
Todos los derechos reservados 2020
Creado con Webnode
¡Crea tu página web gratis! Esta página web fue creada con Webnode. Crea tu propia web gratis hoy mismo! Comenzar