0% encontró este documento útil (0 votos)
25 vistas61 páginas

Tipos de Datos

El documento describe los diferentes tipos de datos que reconoce MySQL, incluyendo valores numéricos (enteros y de coma flotante), cadenas, fechas y horas, y valores NULL. También explica los diferentes tipos de columnas que puede tener una tabla MySQL para almacenar estos tipos de datos, como enteros de diferentes tamaños, decimales, cadenas fijas y variables, y blobs para almacenar datos binarios.

Cargado por

fc727475
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)
25 vistas61 páginas

Tipos de Datos

El documento describe los diferentes tipos de datos que reconoce MySQL, incluyendo valores numéricos (enteros y de coma flotante), cadenas, fechas y horas, y valores NULL. También explica los diferentes tipos de columnas que puede tener una tabla MySQL para almacenar estos tipos de datos, como enteros de diferentes tamaños, decimales, cadenas fijas y variables, y blobs para almacenar datos binarios.

Cargado por

fc727475
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/ 61

MySQL

Tipo de datos
Tipo de datos

• MySQL reconoce varios tipos de datos, o lo


que es lo mismo, categorías generales
(abstracciones) cuyos valores se pueden
representar.
Valores numéricos

• Los números son valores como 48 o 193.62.


MySQL entiende los números especificados
como enteros (sin parte fraccional) o valores
de coma flotante (que sí lo tienen). Los
enteros se pueden especificar de forma
decimal o hexadecimal.
Valores numéricos

• Un entero consiste en una secuencia de


dígitos. Un entero hexadecimal está
compuesto por "0x" seguido de uno o más
números hexadecimal.
Valores numéricos

• MySQL reconoce las notaciones científicas.


Van indicadas inmediatamente después de
un número entero o de coma flotante con
una "e" o "E", un signo "+" o "-" y un
exponente entero. 1.34E+12 y 42.27e-1 son
números con notación científica correcta.
Valores numéricos

• Los decimales se conocerán como DOBLES


o de punto FLOTANTE, ya que se visualizan
como un número con dos partes enteras
divididas por un punto, por ejemplo 100.30.
Cadenas

• Las cadenas son valores como "MySQL es


una base de datos" o "en el mar, la vida es
más sabrosa".
• Puede utilizar comillas dobles o sencillas
para agrupar a una cadena.
Cadenas

• Para representar caracteres de escape existen


varias secuencias de escape.
• Cada secuencia comienza con una barra
invertida (\), que significa un escape
temporal de las reglas para la interpretación
de los caracteres.
Cadenas
• Secuencia Significado
• \0 ASCII 0
• \' Comilla simple
• \" Comilla doble
• \b Retroceso
• \n Nueva línea
• \r Retorno
• \t Tabulador
• \\ Barra invertida
Valores de fecha y hora
• Fechas y horas son valores del tipo "1999-06-17" o
"12:30:43".
• También reconoce las combinaciones de ambos
valores como "1999-06-17 12:30:43".
• MySQL mantiene el formato
YYYYMMDDHHMMSS, sin embargo se puede
cambiar el mismo con la función
DATE_FORMAT().
Valor NULL
• NULL se puede considerar un valor "sin tipo".
Normalmente quiere decir "sin valor", "valor
desconocido". Puede insertar en la tabla valores
NULL y hacer selecciones de campos si tienen
en valor NULL.
• No se puede realizar ningún operación con el
valor NULL, pues su resultado siempre será
NULL.
MySQL
Tipo de columnas MySQL
Tipo de columnas MySQL
• Como ya se había dicho, una tabla es un conjunto de
uno o más columnas.
• Cuando se crea una tabla con la sentencia CREATE
TABLE, se especifica el tipo deseado para cada
columna.
• Un TIPO DE COLUMNA es más específico que un
TIPO DE DATO.
• El tipo de dato es una categoría general como
"número"o "cadena".
Tipo de columnas MySQL
• A un tipo de cadena le caracteriza precisamente la
clase de valores que puede contener, como
SMALLINT o VARCHAR(32).
• Los tipos de columna MySQL son los responsables
de describir qué clase de valores quiere que contenga
una columna, lo que determina a su vez la manera en
que MySQL tratará.
Tipo de columnas MySQL
1. Qué clase de valores quiere almacenar.
2. Cuánto espacio ocupan los valores, si son de
longitud fija o de longitud variable.
3. Cómo se clasifican o comparan los valores del
tipo.
4. Si el tipo permite o no valores NULL
5. Si el tipo se puede indexar o no
Tipo de columnas MySQL
• Comprender los tipos de columna es muy
importante para reducir el tamaño de la base
de datos y aumentar su velocidad de los
procesos.
• MySQL proporciona tipos de columna para
todas las categorías de valores de datos en
general, excepto para el valor NULL.
MySQL
Tipos de columnas Enteras
Tipo de columna entera

• Para números enteros (que no tienen parte


fraccional), como 43, -1, 3, 0 o -789345, los
formatos que MySQL puede manejar son:
Tipo de columna entera
• TINYINT
• Entera muy pequeña
• Requiere 1 byte
• Con signo -128 a 127
• Sin signo 0 a 255
Tipo de columna entera
• SMALLINT
• Requiere 2 bytes
• Entera pequeña
• Con signo -32768 a 32767
• Sin signo 0 a 65535
Tipo de columna entera
• MEDIUNMINT
• Entera mediana
• Requiere 3 bytes
• Con signo -8388608 a 8388607
• Sin signo 0 a 1677215
Tipo de columna entera
• INT
• Entera mediana
• Requiere 4 bytes
• Con signo -2147683648 a 2147483647
• Sin signo 0 a 4,294,967,295
Tipo de columna entera
• BIGINT
• Entero muy grande
• Requiere 8 bytes
• Con signo -9223372036854775808 a
9223372036854775807
• Sin signo 0 a 18,446,744,073,709,551,615
Tipo de columna entera
• Observe que el rango de los cinco tipos de
enteros depende de si tiene o no signo
(UNSIGNED), que es uno de los atributos.
• Un ATRIBUTO es una característica
adicional a la columna.
Tipo de columna entera
• Para seleccionar algún tipo de columna
necesitamos analizar el rango de nuestra
información y seleccionar el tipo más
pequeño que satisfaga ese rango, de lo
contrario estaremos desperdiciando recursos
de nuestra base de datos.
Tipo de columna entera
• Si usted intenta almacenar un campo mayor
al rango del tipo de columna, el proceso
marcará un error y sólo cargará hasta el
rango máximo, por ejemplo:
• Tiene un campo tipo TINYINT con signo, y
almacena un valor como 500, solo se
almacenará 127.
Tipo de columna entera

• SERIAL es un alias para BIGINT


UNSIGNED NOT NULL
AUTO_INCREMENT UNIQUE.
MySQL
Atributos de campos numéricos
Atributos de campos numéricos

• ZEROFILL: Tanto en Enteros como en


punto flotante, se tiene el atributo
ZEROFILL que sirve para rellenar la parte
izquierda de la columna en cero.
Atributos de campos numéricos
• AUTO_INCREMENT: El sistema numerará
desde el número uno a cada uno de los renglones
que sean creados en la tabla.
• Solo se puede tener un campo de este tipo por
tabla y debe ser nombrado como una llave
(PRIMARY KEY) o como clave (UNIQUE). No
acepta valores nulos (NOT NULL).
Atributos de campos numéricos

• UNSIGNED: Este comportamiento rechaza


los valores negativos de una columna y se
ajusta el rango aceptado como se muestra en
la tabla de los números enteros.
MySQL
Tipo de columna decimal
Tipo de columna decimal

• FLOAT
• Número único de coma flotante
• Requiere 4 bytes
• +-1.175494351E-38
Tipo de columna decimal

• DOUBLE
• Número doble de coma flotante
• Requiere 8 bytes
• +-2.2250738585072014E- 308
Tipo de columna decimal
• DECIMAL(M,D)
• Número coma flotante representado como
una cadena
• Requiere M+2 bytes
• Depende del valor de M y D
Tipo de columna decimal
• Los número de coma flotante siempre son
positivos y negativos.
• UNSIGNED está desactualizado en MySQL
8.0 para float, decimal y double.
• El tipo DECIMAL difiere del FLOAT en que
el primero se maneja como cadena desde la
versión 3.23 de MySQL.
Tipo de columna decimal
• Un número de punto fijo "exacto"
empaquetado. M es el número total de
dígitos (la precisión) y D es el número de
dígitos después del punto decimal.
• El punto decimal y (para números negativos)
el signo - no se cuentan en M.
• Si D es cero, los valores no tienen punto
decimal ni parte fraccionaria.
Tipo de columna decimal
• El número máximo de dígitos (M) para
DECIMAL es 65.
• El número máximo de decimales admitidos
(D) es 30. Si se omite D, el valor
predeterminado es cero.
• Si se omite M, el valor predeterminado es 10.
MySQL
Tipo de columna cadena
Tipo de columna cadena
• MySQL proporciona varios tipos de cadena
para mantener los datos de un carácter.
• Para todos los tipos de cadena, los valores
demasiado largos se cortan para ajustarlos.
• Los tipos de cadena que maneja MySQL son
(donde L es la longitud del valor):
Tipo de columna cadena
• Nombre del tipo Significado
• CHAR Cadena de caracteres de longitud fija
• VARCHAR Cadena de caracteres de longitud variable
• TINYBLOB Binary Large Object (BLOB) muy pequeño
• BLOB BLOB pequeño
• MEDIUMBLOB BLOB Mediano
• LONGBLOB BLOB Largo
Tipo de columna cadena
Especificación tipo Tamaño máximo Almacenamiento
CHAR(M) M bytes M bytes
VARCHAR(M) M bytes L+1 bytes
TINYBLOB 255 bytes L+1 bytes
TINYTEXT 255 bytes L+1 bytes
BLOB, TEXT 65535 bytes L+2 bytes
Tipo de columna cadena
Especificación tipo Tamaño máximo Almacenamiento
MEDIUMBLOB 16 megas L+3 bytes
MEDIUMTEXT 16 megas L+3 bytes
LONGBLOB 32 megas L+4 bytes
LONGTEXT 32 megas L+4 bytes
Tipo de columna cadena
• Los tipos de columnas más utilizados son
CHAR y VARCHAR.
• Difieren que el primero es de una longitud
fija y que el segundo es de una longitud
variable.
Tipo de columna cadena
• Si los campos que se van a almacenar no
varían de longitud drásticamente (por
ejemplo, un número telefónico) no conviene
utilizar el campo VARCHAR, pues tiene un
byte adicional de control, y los campos de
longitud fija se procesan más rápido.
Tipo de columna cadena
• Si existe una columna de longitud variable,
todos los registros serán de longitud variable.
• Hay que utilizar los campos de longitud
variable cuando se tenga un problema de
espacio en disco.
Tipo de columna cadena

• Si usted combina columnas CHAR y


VARCHAR, MySQL convertirá las columnas
CHAR (con una longitud mayor a 4) a tipo
VARCHAR.
Tipo de columna cadena

• MySQL tiene un bloque de campos TEXT


(TINYTEXT, TEXT, MEDIUMTEXT,
LONGTEXT) con longitud variable de los
textos.
Tipo de columna cadena

• Por su tamaño, es fácil que estos tipos de


tablas se fragmenten (queden almacenadas
en diferentes áreas del disco duro), por lo
que es necesario continuamente optimizarlo
(OPTIMIZE TABLE).
Tipo de columna cadena

• El tipo ENUM y SET permiten que los


campos tengan un valor entre una
enumeración (ENUM) o conjunto (SET).
MySQL
Tipo de columna de fecha y tiempo
Tipo de columna de fecha y
tiempo
• MySQL proporciona varios tipos de columna
para valores temporales:
• DATE : Requiere 3 bytes
• Valor de fecha en formato YYYY-MM-DD
• "1000-01-01" a "9999-12-31"
Tipo de columna de fecha y
tiempo

• TIME : Valor de hora en formato


HH:MM:SS
• "-838:59:59" a "838:59:59"
• Requiere 3 bytes
Tipo de columna de fecha y
tiempo

• DATETIME : Valor de fecha y hora en


formato YYYY-MM-DD hh:mm:ss
• "1000-01-01 00:00:00" a "9999-12-31 23:59:59"
• Requiere 8 bytes
Tipo de columna de fecha y
tiempo

• TIMESTAMP : Valor de un lapso de tiempo


en formato
• YYYYMMDDhhmmss
• Requiere 4 bytes
Tipo de columna de fecha y
tiempo

• YEAR
• Año en formato YYYY
• Requiere 1 byte
Tipo de columna de fecha y
tiempo
• Si insertamos un valor ilegal, en los campos aparecerá el siguiente valor equivalente a
"cero".
• Especificación del tipo Valor cero
• DATE 0000-00-00
• TIME 00:00:00
• DATETIME 0000-00-00 00:00:00
• TIMESTAMP 000000000000
• YEAR 0000
Columna de fecha y tiempo
• MySQL siempre representa las fechas con el año en
primer lugar, según la especificación de ANSI.
• Los tipos DATE, TIME y DATETIME contiene la fecha,
la hora y los valores combinados de ambos.
• Los formatos son YYYY-MM-DD, HH:MM:SS y
YYYY-MM-DD HH:MM:SS respectivamente. Para
DATETIME se necesita la parte de la Fecha y la Hora.
• Si falta alguna de ellas automáticamente MySQL las pone
en cero.
MySQL
Cómo elegir entre los tipos de las columnas
Cómo elegir entre los tipos de las
columnas
• Para poder escoger entre todas las variaciones de
tipo de columna, no está demás hacerse las
siguientes preguntas (aunque algunas veces
parecerán obvias):
• ¿Qué tipo de valores, números, cadenas y fechas
almacenará la columna?
• ¿Sus valores se corresponden con algún rango?
Cómo elegir entre los tipos de las
columnas
• ¿Qué tipos de columnas son los más eficientes?
• Operaciones de cadena vs. numéricas.
• Tipos más pequeños vs. tipos más grandes.
• Tipo de longitud fija vs. longitud variable.
• ¿Cómo hay que comparar sus valores?
• ¿Bajo qué campos será indexada la tabla?

También podría gustarte