You are here
Tipos de datos en MySQL Sin categoría 

Tipos de datos en MySQL

Tipos de datos en MySQL

 

Para almacenar TEXTO usamos cadenas de caracteres. Las cadenas se colocan entre comillas simples. Podemos almacenar dígitos con los que no se realizan operaciones matemáticas,  por ejemplo, códigos de identificación, números de documentos, números  telefónicos. Tenemos los siguientes tipos:

 

1) VARCHAR(x): define una cadena de caracteres de longitud variable en la cual determinamos el máximo de caracteres con el argumento “x” que va entre paréntesis. Su rango va de 1 a 255 caracteres. Un VARCHAR(10) ocupa 11 bytes, pues en uno de ellos almacena la longitud de la cadena. Ocupa un byte más que la cantidad definida.

 

2) CHAR(x): define una cadena de longitud fija, su rango es de 1 a 255 caracteres. Si la cadena ingresada es menor a la longitud definida (por ejemplo cargamos ‘Juan’ en un CHAR(10)), almacena espacios en blanco a la derecha, tales espacios se eliminan al recuperarse el dato. Un CHAR(10) ocupa 10 bytes, pues al ser fija su longitud, no necesita ese byte adicional donde guardar la longitud. por ello, si la longitud es invariable, es conveniente utilizar el tipo CHAR; caso contrario, el tipo VARCHAR.

 

Ocupa tantos bytes como se definen con el argumento “x”. Si ingresa un argumento mayor al permitido (255) aparece un mensaje indicando que no se permite y sugiriendo que use “BLOB” o “TEXT”. Si omite el argumento, coloca 1 por defecto.

 

3) BLOB o TEXT: bloques de datos de 60000 caracteres de longitud aprox.

 

Para los tipos que almacenan cadenas, si asignamos una cadena de caracteres de mayor longitud que la permitida o definida, la cadena se corta. Por ejemplo, si definimos un campo de tipo VARCHAR(10) y le asignamos la cadena ‘Buenas tardes’, se almacenará ‘Buenas tar’ ajustándose a la longitud de 10.

 

Es importante elegir el tipo de dato adecuado según el caso, el más preciso. POR ejemplo, si vamos a almacenar un carácter, conviene usar CHAR(1), que ocupa 1 byte y no VARCHAR(1), que ocupa 2 bytes.

 

Tipo              Bytes de almacenamiento

 

 

CHAR(x)                             x

VARCHAR(x)                      x+1

 

20.- Tipos de datos (numéricos)

 

Existe variedad de tipos numéricos para representar enteros, negativos, decimales.

 

Para  almacenar  valores  enteros,  por  ejemplo,  en  campos  que  hacen  referencia  a  cantidades, precios,                                                                etc.,                                                                usamos:

 

 

1) INTEGER(x) o INT(x): su rango es de -2000000000 a 2000000000 aprox. El tipo “INT UNSIGNED” va de 0 a 4000000000.

 

El tipo “INTEGER” tiene subtipos:

 

–  MEDIUMINT(x):  va  de  –8000000  a  8000000  aprox.  SIN  signo  va  de  0  a  16000000  aprox.

–   SMALLINT(x):   va   de   –30000   a   30000   aprox.,   sin   signo,   de   0   a   60000   aprox.

– TINYINT(x): define un valor entero pequeño, cuyo rango es de -128 a 127. El tipo sin signo va de 0 a                                                                                                                                                         255.

– BOOL o BOOLEAN: sinónimos de TINYINT(1). Un valor cero se considera falso, los valores distintos                                       de                                       cero,                                       verdadero.

– BIGINT(x): es un entero largo. Va de –9000000000000000000 a 9000000000000000000 aprox. SIN

signo es de 0 a 10000000000000000000.

 

Para almacenar valores con decimales utilizamos:

 

2) FLOAT (t,d): número de coma flotante. Su rango es de -3.4e+38 a –1.1e-38 (9 cifras).

 

3) DECIMAL o NUMERIC (t,d): el primer argumento indica el total de dígitos y el segundo, la cantidad de decimales. El rango depende de los argumentos, también los  bytes que ocupa. Si queremos almacenar valores entre 0.00 y 99.99 debemos definir el campo como tipo “decimal (4,2)”. Si no se indica el valor del segundo argumento, por defecto es 0. Para los tipos “FLOAT” y “decimal” se utiliza el punto como separador de decimales.

 

Todos los tipos enteros pueden tener el atributo “UNSIGNED”, esto permite sólo valores positivos y duplica el rango. Los tipos de coma flotante también aceptan el atributo “UNSIGNED”, pero el valor del límite superior del rango no se modifica.

 

Es importante elegir el tipo de dato adecuado según el caso, el más preciso. POR ejemplo, si un campo  numérico  almacenará  valores  positivos  menores  a  10000,  el  tipo  “INT”  no  es  el  más adecuado, porque su rango va de -2000000000 a 2000000000 aprox., conviene el tipo “SMALLINT UNSIGNED”, cuyo rango va de 0 a 60000 aprox. De esta manera usamos el menor espacio de almacenamiento posible.

 

Tipo           à           Bytes de almacenamiento

 

 

SMALLINT à 2 FLOAT à 4
MEDIUMINT à 3 DECIMAL (t,d) à t+2 si d>0, t+1 si d=0 y d+2 si t<d
INT à 4      
BIGINT à 8      

 

21.- Tipos de datos (fechas y horas)

 

Para guardar fechas y horas dispone de varios tipos:

 

1) DATE: representa una fecha con formato “YYYY-MM-DD”. El rango va de “1000-01-01” a “9999-

12-31”.

 

2) DATETIME: almacena fecha y hora, su formato es “YYYY-MM-DD HH:MM:SS”. El rango es de

“1000-01-01 00:00:00” a “9999-12-31 23:59:59”.

 

3) TIME: una hora. Su formato es “HH:MM:SS”. El rango va de “-838:59:59” a “838:59:59”.

 

4) YEAR(2) y YEAR(4): un año. Su formato es “YYYY” o “YY”. Permite valores desde 1901 a 2155 (en formato de 4 dígitos) y desde 1970 a 2069 (en formato de 2 dígitos).

 

Si ingresamos los valores como cadenas, un valor entre “00” y “69” es convertido a valores “YEAR” en el rango de 2000 a 2069; si el valor está entre “70” y “99”, se convierten a valores “YEAR” en el rango 1970 a 1999.

 

Si ingresamos un valor numérico 0, se convierte en “0000”; entre 1 y 69, se convierte a valores

“YEAR” entre 2001 a 2069; entre 70 y 99, es convertido a valores “YEAR” de 1970 a 1999. Para almacenar valores de tipo fecha se permiten como separadores “/”, “-” y “.”.

Si ingresamos ‘06-12-31’ (año de 2 dígitos), lo toma como ‘2006-12-31’.

 

Si ingresamos ‘2006-2-1’ (mes y día de 1 dígito), lo toma como ‘2006-02-01’.

 

Si ingresamos ‘20061231’ (cadena sin separador), lo toma como ‘2006-12-31’. Si ingresamos 20061231 (numérico), lo toma como ‘2006-12-31’.

Si ingresamos ‘20061231153021’ (cadena sin separadores), lo toma como ‘2006-12-31 15:30:21’.

 

Si ingresamos ‘200612311530’ (cadena sin separadores con un dato faltante) no lo reconoce como fecha-hora y almacena ceros.

 

Si ingresamos ‘2006123’ (cadena sin separadores con un dato faltante) no lo reconoce como fecha y almacena ceros.

 

Si ingresamos ‘2006-12-31 11:30:21’ (valor date time) en un campo ‘DATE’, toma sólo la parte de la fecha, la hora se corta, se guarda ‘2006-12-31’.

 

Es importante elegir el tipo de dato adecuado según el caso, el más preciso. Por ejemplo, si sólo necesitamos registrar un año (sin día ni mes), el tipo adecuado es “YEAR” y no “date”.

 

Tipo              bytes de almacenamiento

 

 

DATE           3

DATETIME   8

 

TIME            3

YEAR           1

 

22.- valores por defecto

 

Para campos declarados “NOT NULL”, el valor por defecto depende del tipo de dato. Para cadenas de caracteres el valor por defecto es una cadena vacía. Para valores numéricos el valor por defecto es 0; en caso de ser “AUTO_INCREMENT” es el valor mayor existente+1 comenzando en 1. Para campos de tipo fecha y hora, el valor por defecto es 0 (por ejemplo, en un campo “date” es “0000-00-

00”).

 

Para todos los tipos, excepto “BLOB”, “TEXT” y “AUTO_INCREMENT” se pueden explicitar valores por defecto con la cláusula “DEFAULT”.

 

Un valor por defecto se inserta cuando no está presente al ingresar un registro y en algunos casos en que el dato ingresado es inválido.

 

Los campos para los cuales no se ingresaron valores tomarán los valores por defecto según el tipo de dato del campo, en el campo “codigo” ingresará el siguiente valor de la secuencia porque es “AUTO_INCREMENT”; en el campo “nombre”, ingresará una cadena vacía porque es “VARCHAR NOT NULL”; en el campo “direccion” almacenará “NULL”, porque no está definido “NOT NULL”; en el campo “pago” guardará “NULL” porque es el valor por defecto de los campos no definidos como “NOT NULL” y en el campo “cantidad” ingresará 0 porque es el valor por defecto de los campos numéricos que no admiten valores nulos.

 

Tipo                                   valor por defecto                  Cláusula “DEFAULT”

 

 

caracter NOT NULL          cadena vacía                                             permite numerico NOT NULL                   0                                                      permite fecha NOT NULL              0000-00-00                                     permite

hora NOT NULL                00:00:00                                          permite auto_INcrement                siguiente de la sec., empieza en 1            no  permite carac.,numer.,fecha,hORa NULL NULL


Si quieres seguir aprendiendo con nosotros, puedes ingresar a nuestros

Cursos y Diplomados de Tecnología Web visita www.uneweb.edu.ve  para más información

 

Related posts