Atributos Base de Datos

Una de las cosas luego de diseñar una base de datos es elegir adecuadamente el tipo de dato a almacenar del atributo de la tabla, existen bastantes tipos diferentes disponibles, de modo que será mejor que los agrupemos por categorías: de caracteres, enteros, de coma flotante, tiempos, bloques, enumerados y conjuntos.

Tipos de cadenas:

Caracteres:

  • CHAR  - Es un sinónimo de CHAR(1), y puede contener un único carácter.
  • CHAR(M) - Contiene una cadena de longitud constante. Para mantener la longitud de la cadena, se rellena a la derecha con espacios. Estos espacios se eliminan al recuperar el valor. Los valores válidos para M son de 0 a 255.
  • VARCHAR - Contiene una cadena de longitud variable. Los valores válidos para M son de 0 a 255

Enteros:
  • TINYINT - Contiene un valor entero muy pequeño. El rango con signo es entre -128 y 127. El rango sin singo, de 0 a 255
  • BIT, BOOL, BOOLEAN - Todos son sinónimos de TINYINT(1).
  • SMALLINT - Contiene un entero corto. El rango con signo es de -32768 a 32767. El rango sin singo, de 0 a 65535.
  • MEDIUMINT - Contiene un entero de tamaño medio, el rango con signo está entre -8388608 y 8388607. El rango sin signo, entre 0 y 16777215.
  • INT - Contiene un entero de tamaño normal. El rango con signo está entre -2147483648 y 2147483647. El rango sin singo, entre 0 y 4294967295.
  • INTEGER - Es sinónimo de INT.
  • BIGINT - Contiene un entero grande. El rango con signo es de -9223372036854775808 a 9223372036854775807. El rango sin signo, de 0 a 18446744073709551615.
Datos de Coma Flotante:
  • FLOAT - Contiene un número en coma flotante. precision puede ser menor o igual que 24 para números de precisión sencilla y entre 25 y 53 para números en coma flotante de doble precisión. Estos tipos son idénticos que los tipos FLOAT y DOUBLE descritos a continuación. FLOAT(X) tiene el mismo rango que los tipos FLOAT y DOUBLE correspondientes, pero el tamaño mostrado y el número de decimales quedan indefinidos.
  • FLOAT(M,D) - Contiene un número en coma flotante pequeño (de precisión sencilla). Los valores permitidos son entre -3.402823466E+38 y -1.175494351E-38, 0, y entre 1.175494351E-38 y 3.402823466E+38. Si se especifica el modificador UNSIGNED, los valores negativos no se permiten.
    El valor M es la anchura a mostrar y D es el número de decimales. Si se usa sin argumentos o si se usa FLOAT(X), donde X sea menor o igual que 24, se sigue definiendo un valor en coma flotante de precisión sencilla.
  • DOUBLE (M, D) - Contiene un número en coma flotante de tamaño normal (precisión doble). Los valores permitidos están entre -1.7976931348623157E+308 y -2.2250738585072014E-308, 0, y entre 2.2250738585072014E-308 y 1.7976931348623157E+308. Si se especifica el modificador UNSIGNED, no se permiten los valores negativos.
    El valor M es la anchura a mostrar y D es el número de decimales. Si se usa sin argumentos o si se usa FLOAT(X), donde X esté entre 25 y 53, se sigue definiendo un valor en coma flotante de doble precisión.
  • DOUBLE PRECISION, REAL - Ambos son sinónimos de DOUBLE
  • DECIMAL(M[,D]) - Contiene un número en coma flotante sin empaquetar. Se comporta igual que una columna CHAR: "sin empaquetar" significa qu se almacena como una cadena, usando un carácter para cada dígito del valor. El punto decimal y el signo '-' para valores negativos, no se cuentan en M (pero el espacio para estos se reserva). Si D es 0, los valores no tendrán punto decimal ni decimales.
    El rango de los valores DECIMAL es el mismo que para DOUBLE, pero el rango actual para una columna DECIMAL dada está restringido por la elección de los valores M y D.
    Si se especifica el modificador UNSIGNED, los valores negativos no están permitidos.
    Si se omite D, el valor por defecto es 0. Si se omite M, el valor por defecto es 10.
  • DEC, NUMERIC, FIXED - Todos ellos son sinónimos de DECIMAL.
Tiempo:
  • DATE - Contiene una fecha. El rango soportado está entre '1000-01-01' y '9999-12-31'. SQL muestra los valores DATE con el formato 'AAAA-MM-DD', pero es posible asignar valores a columnas de este tipo usando tanto números como cadenas.
  • DATETIME - Contiene una combinación de fecha y hora. El rango soportado está entre '1000-01-01 00:00:00' y '9999-12-31 23:59:59'. SQL muestra los valoresDATETIME con el formato 'AAAA-MM-DD HH:MM:SS', pero es posible asignar valores a columnas de este tipo usando tanto cadenas como números.
  • TIMESTAMP (M) - Contiene un valor del tipo timestamp. El rango está entre '1970-01-01 00:00:00' y algún momento del año 2037. Se puede asignar fácilmente la fecha y hora actual a uno de estas columnas asignando el valor NULL.
    El argumento M afecta sólo al modo en que se visualiza la columna TIMESTAMP. Los valores siempre se almacenan usando cuatro bytes. Además, los valores de columnas TIMESTAMP(M), cuando M es 8 ó 14 se devuelven como números, mientras que para el resto de valores se devuelven como cadenas.
  • TIME - Una hora. El rango está entre '-838:59:59' y '838:59:59'. SQL muestra los valores TIME en el formato 'HH:MM:SS', pero permite asignar valores a columnas TIME usando tanto cadenas como números.
  • YEAR - Contiene un año en formato de 2 ó 4 dígitos (por defecto es 4). Los valores válidos son entre 1901 y 2155, y 0000 en el formato de 4 dígitos. Y entre 1970-2069 si se usa el formato de 3 dígitos (70-69).
    SQL muestra los valores YEAR usando el formato AAAA, pero permite asignar valores a una columna YEAR usando tanto cadenas como números.
Datos sin Tipo o Grandes Bloques de datos:
  • TINYBLOB, TINYTEXT - Contiene una columna BLOB o TEXT con una longitud máxima de 255 caracteres (28 - 1).
  • BLOB, TEXT -Contiene una columna BLOB o TEXT con una longitud máxima de 65535 caracteres (216 - 1).
  • MEDIUMBLOB, MEDIUMTEXT -Contiene una columna BLOB o TEXT con una longitud máxima de 16777215 caracteres (224 - 1).
  • LONGBLOB, LONGTEXTContiene una columna BLOB o TEXT con una longitud máxima de 4294967298 caracteres (232 - 1).
Enumerados y conjuntos:
  • ENUM - Contiene un enumerado. Un objeto de tipo cadena que puede tener un único valor, entre una lista de valores 'valor1', 'valor2', ..., NULL o el valor especial de error "". Un ENUM puede tener un máximo de 65535 valores diferentes.
  • SET -Contiene un conjunto. Un objeto de tipo cadena que puede tener cero o más valores, cada uno de los cuales debe estar entre una lista de valores 'valor1', 'valor2', ...
    Un conjunto puede tener un máximo de 64 miembros.

Publicar un comentario

0 Comentarios