0% encontró este documento útil (0 votos)
13 vistas43 páginas

Tipos de Datos Mysql

Datos en mysql

Cargado por

tamaldeverdeee
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
13 vistas43 páginas

Tipos de Datos Mysql

Datos en mysql

Cargado por

tamaldeverdeee
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 43

M. En C.

Sergio Galván Cruz


 Al diseñar nuestras tablas tenemos que
especificar el tipo de datos y tamaño que
podrá almacenar cada campo.

 Se debe procurar que la tabla no se quede


corta en su capacidad.
◦ que destine un tamaño apropiado a la longitud de
los datos.
◦ Maximizar la velocidad de ejecución
 Básicamente MySQL admite dos tipos de
datos:

◦ Números.

◦ Cadenas de caracteres.
 En estos campos solo se pueden almacenar
números positivos o negativos, enteros o
decimales, en notación hexadecimal,
científica o decimal.
 BIT[(M)]
En un tipo de datos bit. M indica el número de bits por valor, de 1 a 64. El
valor por defecto es 1 si se omite M . Este tipo de datos se añadió en
MySQL 5.0.3 para MyISAM, una extensión en 5.0.5 para MEMORY,
InnoDB, y BDB. Antes de 5.0.3, BIT es un sinónimo de TINYINT(1).

 TINYINT[(M)] [UNSIGNED] [ZEROFILL]


Un entero muy pequeño. El rango con signo es de -128 a 127. El rango sin
signo es de 0 a 255.

 BOOL, BOOLEAN
Son sinónimos para TINYINT(1). Un valor de cero se considera falso.
Valores distintos a cero se consideran ciertos.

En el futuro, se introducirá tratamiento completo de tipos booleanos según


el estándar SQL.
 SMALLINT[(M)] [UNSIGNED] [ZEROFILL]
Un entero pequeño. El rango con signo es de -32768 a 32767. El
rango sin signo es de 0 a 65535.

 MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]


Entero de tamaño medio. El rango con signo es de -8388608 a
8388607. El rango sin singo es de 0 a 16777215.

 INT[(M)] [UNSIGNED] [ZEROFILL]


Un entero de tamaño normal. El rango con signo es de -2147483648 a
2147483647. El rango sin signo es de 0 a 4294967295.
 INTEGER[(M)] [UNSIGNED] [ZEROFILL]

 Es un sinónimo de INT.

 BIGINT[(M)] [UNSIGNED] [ZEROFILL]

Un entero grande. El rango con signo es de -9223372036854775808 a


9223372036854775807. El rango sin signo es de 0 a
18446744073709551615.
FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]

FLOAT (m,d) representa números decimales. Podemos especificar


cuantos dígitos (m) pueden utilizarse (término también conocido como
ancho de pantalla), y cuantos en la parte decimal (d). Mysql redondeará
el decimal para ajustarse a la capacidad.

DOUBLE[(M,B)] [UNSIGNED] [ZEROFILL]

DOUBLE Número de coma flotante de precisión doble. Es un tipo de datos


igual al anterior cuya única diferencia es el rango numérico que abarca

DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]

DECIMAL almacena los números como cadenas.


Tipo Bytes Valor Mínimo Valor Máximo

(Con signo/Sin signo) (Con signo/Sin signo)

TINYINT 1 -128 127


0 255
SMALLINT 2 -32768 32767
0 65535
MEDIUMINT 3 -8388608 8388607
0 16777215
INT 4 -2147483648 2147483647
0 4294967295

BIGINT 8 -9223372036854775808 9223372036854775807

0 18446744073709551615
 El tipo DATETIME se usa cuando necesita valores
que contienen información de fecha y hora. MySQL
recibe y muestra los valores DATETIME en formato
'YYYY-MM-DD HH:MM:SS' .

 El rango soportado es de '1000-01-01 00:00:00' a


'9999-12-31 23:59:59'. (“Soportado” significa que
aunque valores anteriores pueden funcionar, no
hay garantías)
 El tipo DATE se usa cuando necesita sólo un
valor de fecha, sin una parte de hora.

 MySQL recibe y muestra los valores DATE en


formato 'YYYY-MM-DD' . El rango soportado
es de '1000-01-01' a '9999-12-31'.
 El tipo TIMESTAMP similar a DATETIME.
 El tipo YEAR es un tipo de un byte usado para representar
años.

 MySQL devuelve y muestra los valores YEAR en formato YYYY


. El rango es de 1901 a 2155.

 Puede especificar los valores YEAR en una variedad de


formatos:

 Como cadena de caracteres de cuatro dígitos en el rango de


'1901' a '2155'.

 VALORES ILEGALES DE YEAR SE CONVIERTEN EN 0000


 MySQL devuelve y muestra los valores TIME en formato
'HH:MM:SS' (o formato 'HHH:MM:SS' para valores de hora
grandes).

 TIME tiene rango de '-838:59:59' a '838:59:59'. La


razón por la que la parte de hora puede ser tan grande
es que el tipo TIME puede usarse no sólo para
representar una hora del día (que debe ser menor a 24
horas), pero también el tiempo transcurrido o un
intervalo de tiempo entre dos eventos (que puede ser
mucho mayor a 24 horas, o incluso negativo).
Tipo de Columna “Cero” Valor
DATETIME '0000-00-00 00:00:00'
DATE '0000-00-00'
TIMESTAMP 00000000000000
TIME '00:00:00'
YEAR 0000
 Las definiciones de columnas para varios tipos de
datos de cadenas de caracteres incluyen un
atributo CHARACTER SET para especificar el
conjunto de caracteres y, ocasionalmente, una
colación. (CHARSET es sinónimo de CHARACTER
SET.)

 CREATE TABLE t (
 c1 CHAR(20) CHARACTER SET utf8,
 c2 CHAR(20) CHARACTER SET latin1 COLLATE
latin1_bin );
 CHAR Este tipo se utiliza para almacenar cadenas de
longitud fija. Su longitud abarca desde 1 a 255 caracteres.


VARCHAR Al igual que el anterior se utiliza para almacenar
cadenas, en el mismo rango de 1-255 caracteres, pero en
este caso, de longitud variable. Un campo CHAR ocupará
siempre el máximo de longitud que le hallamos asignado,
aunque el tamaño del dato sea menor (añadiendo espacios
adicionales que sean precisos). Mientras que VARCHAR
solo almacena la longitud del dato, permitiendo que el
tamaño de la base de datos sea menor. Eso si, el acceso a
los datos CHAR es mas rápido que VARCHAR.
Almacenami Almacenami
Valor CHAR(4) ento VARCHAR(4) ento
necesario necesario
'' ' ' 4 bytes '' 1 byte
'ab' 'ab ' 4 bytes 'ab' 3 bytes
'abcd' 'abcd' 4 bytes 'abcd' 5 bytes
'abcdefgh' 'abcd' 4 bytes 'abcd' 5 bytes
 BINARY(M)
El tipo BINARY es similar al tipo CHAR, pero almacena cadenas de
datos binarios en lugar de cadenas de caracteres no binarias.

 VARBINARY(M)
El tipo VARBINARY es similar al tipo VARCHAR, pero almacena cadenas
de caracteres binarias en lugar de cadenas de caracteres no binarias.

 TINYBLOB
Una columna BLOB con una longitud máxima de 255 (2^8 - 1) bytes.
 TINYTEXT
Una columna TEXT con longitud máxima de 255 (2^8 - 1) caracteres.

 BLOB[(M)]
Una columna BLOB con longitud máxima de 65,535 (2^16 - 1) bytes.

Una longitud opcional M puede darse para este tipo en MySQL 5.0. Si se
hace, MySQL creará las columnas como el tipo BLOB de tamaño mínimo
para tratar los valores de M bytes.

 TEXT[(M)]
Una columna TEXT con longitud máxima de 65,535 (2^16 - 1) caracteres.
En MySQL 5.0, se puede dar una longitud opcional M . En ese caso MySQL
creará las columnas con el tipo TEXT de longitud mínima para almacenar
los valors de longitud M .
 MEDIUMBLOB

 Una columna BLOB con longitud de 16,777,215 (2^24 - 1) bytes.

 MEDIUMTEXT

 Una columna TEXT con longitud máxima de 16,777,215 (2^24 -


1) caracteres.

 LONGBLOB
 Una columna BLOB con longitud máxima de 4,294,967,295 o
4GB (2^32 - 1) bytes. La longitud máxima efectiva (permitida) de
las columnas LONGBLOB depende del tamaño máximo
configurado para los paquetes en el protocolo
cliente/servidor y la memoria disponible.
 LONGTEXT

 Una columna TEXT con longitud máxima de 4,294,967,295 or 4GB (2^32 - 1)


caracteres. La longitud máxima efectiva (permitida) de columnas LONGTEXT
depende del tamaño máximo de paquete configurado en el protocolo
cliente/servidor y la memoria disponible.

 ENUM('value1','value2',...)

 Una enumeración. Un objeto de cadena de caracteres que sólo puede tener un


valor, elegido de una lista de valores 'value1', 'value2', ..., NULL o el valor de error
especial '' . Una columna ENUM puede tener un máximo de 65,535 valores
distintos. Los valores ENUM se representan internamente como enteros.

 SET('value1','value2',...)

 Un conjunto. Un objeto de cadena de caracteres que puede tener cero o más


valores que deben pertencer a la lista de valores 'value1', 'value2', ... Una columna
SET puede tener un máximo de 64 miembros. Los valores SET se representan
internamente como enteros.
Almacenamiento
Tipo de columna
requerido
TINYINT 1 byte
SMALLINT 2 bytes
MEDIUMINT 3 bytes
INT, INTEGER 4 bytes
BIGINT 8 bytes

4 bytes si 0 <= p <= 24,


FLOAT(p)
8 bytes si 25 <= p <= 53

FLOAT 4 bytes
DOUBLE [PRECISION],
8 bytes
objeto REAL
DECIMAL(M,D), Varía; consulte la
NUMERIC(M,D) siguiente explicación
aproximadamente
BIT(M)
(M+7)/8 bytes
Almacenamiento
Tipo de columna
requerido
DATE 3 bytes
DATETIME 8 bytes
TIMESTAMP 4 bytes
TIME 3 bytes
YEAR 1 byte
Tipo de columna Almacenamiento requerido
CHAR(M) M bytes, 0 <= M <= 255
L+1 bytes, donde L <= M y 0 <= M
VARCHAR(M)
<= 255
BINARY(M) M bytes, 0 <= M <= 255
L+1 bytes, donde L <= M y 0 <= M
VARBINARY(M)
<= 255
TINYBLOB, TINYTEXT L+1 byte, donde L < 2^8
BLOB, TEXT L+2 bytes, donde L < 2^16

MEDIUMBLOB, MEDIUMTEXT L+3 bytes, donde L < 2^24

LONGBLOB, LONGTEXT L+4 bytes, donde L < 2^32


1 o 2 bytes, dependiendo del número
ENUM('value1','value2',...) de valores de la enumeración (65,535
valores como máximo)

1, 2, 3, 4, o 8 bytes, dependiendo del


SET('value1','value2',...) número de miembros del conjunto
(64 miembros como máximo)
Tipos de otros vendedores Tipos MySQL

BOOL, TINYINT
BOOLEAN TINYINT
CHAR VARYING(M) VARCHAR(M)
DEC DECIMAL
FIXED DECIMAL
FLOAT4 FLOAT
FLOAT8 DOUBLE
INT1 TINYINT
INT2 SMALLINT
INT3 MEDIUMINT
INT4 INT
INT8 BIGINT
LONG VARBINARY MEDIUMBLOB
LONG VARCHAR MEDIUMTEXT
LONG MEDIUMTEXT
MIDDLEINT MEDIUMINT
NUMERIC DECIMAL
 Es la tecnología de almacenamiento de datos
usada por defecto por el DBMS de MySQL.

 En las nuevas versiones el motor InnoDB está


empezando a reemplazar a este tipo de
tablas por su capacidad de ejecutar
transacciones tipo ACID.
 Cada tabla de tipo MyISAM guarda tres
archivos. Cada archivo tiene el nombre de la
tabla y una extensión que indica el tipo de
archivo.

◦ .frm almacena la definición de la tabla


◦ .MYD (MyData) contiene los registros de la tabla.
◦ .MYI (MyIndex) contiene los índices de la tabla.
 CREATE TABLE sistemas (id INT) ENGINE = MYISAM;
 La principal característica de este tipo de
almacenamiento es la velocidad por la que se
obtienen las consultas debido a que no se
hacen comprobaciones de integridad.

 Es adecuado para sistema que no tienen un


número elevado de inserciones como pueden
ser páginas web.
 Tecnología de almacenamiento de código
abierto.

 Está incluido en el estándar en todas las


distribuciones de MySQL AB.

 Su principal característica es que soporta


transacciones de tipo ACID.
 Ofrece fiabilidad y consistencia.

 Cuando se utiliza MyISAM el sistema


operativo realiza la caché de lecturas y
escrituras, mientras que INNODB realiza esta
tarea.

 INNODB se recupera de algún problema


volviendo a ejecutar sus logs.
 INNODB almacena físicamente los registros
en el orden de la clave primaria, mientras que
MyISAM los guarda en el orden en que fueron
añadidos.

 INNODB no dispone de la compresión de


datos aunque fue reducido en MySQL 5.0
 Cuando opera en transacciones ACID se tiene
un límite aproximadamente de 200
transacciones por segundo. Aumentar lo
anterior exige controladores de disco con
caché de escritura.
 Acrónimo de Atomicity, Consistency, Isolation
and Druability.

 Atomicidad. Propiedad que asegura que la


operación se ha realizado o no. Cuando se
presente un fallo del sistema no puede quedar a
medias.

 Consistencia. Ejecutar las operaciones que no


violaran con las reglas y directrices de integridad
de la base de datos.
 Aislamiento. Esta propiedad asegura que una
operación no afectará a otras. Por ejemplo,
dos transacciones sobre la misma
información serán independientes.

 Durabilidad. Es la propiedad que nos asegura


que al realizarse una operación, ésta
persistirá a pesar de cualquier fallo del
sistema.
 http://dev.mysql.com/doc/refman/5.0/es/co
lumn-type-overview.html

http://www.ignside.net/man/mysql/datatype
s.php

 http://dev.mysql.com/doc/refman/5.5/en/in
nodb-storage-engine.html

También podría gustarte