Inicio de sesión

RSS

Distribuir contenido

En línea

En este momento hay 0 usuarios y 0 invitados en línea.

Tipos de columnas en MySQL

De cara al usuario avanzado que quiere seguir estudiando la creación de páginas Web dinámicas, incluyo este anexo, en el que profundizamos en los diferentes tipos de datos que pueden almacenarse en una base de datos MySQL, y en los diferentes tipos de columnas que podemos crear para hacer el almacenamiento más efectivo.

Dado que muchas de estas columnas pueden tener parámetros opcionales, estableceremos una serie de convenciones a la hora de explicar las diferentes columnas.

Parámetros

M.Este parámetro se utiliza para indicar el número máximo de caracteres que pueden tener los valores que incluyamos en esta columna. M puede ser cualquier número entero entre 1 y 255. El almacenamiento de un número de caracteres mayor, indefectiblemente, nos acabará causando problemas, sobre todo cuando las relaciones entre las distintas bases de datos sean más complejas.

D.Este parámetro nos permite espeficicar cuántos números decimales pueden ser almacenados en valores de punto flotante. El máximo valor de este es 30, siempre y cuando el parámetro M nos lo permita.

Atributos

ZEROFILL. Esta opción consigue que la columna siempre ocupe su máxima longitud, dado que en el caso de que no le asignemos ningún valor, el sistema automáticamente lo completará con ceros. De esta manera nos aseguramos de que en una búsqueda siempre encontramos un valor, aunque sea cero. Al activar esta opción, automáticamente se activa la opción UNSIGNED.

UNSIGNED. Esta opción consigue que la columna sólo acepte valores positivos, o cero. Hayque tener precaución y, antes de activarla, tener completamente seguro que no queremos aceptar valores negativos.

BINARY. Por defecto, los caracteres de comparación en MySQL no distinguen entre mayúsculas y minúsculas. Sin embargo, los caracteres de comparación en columnas BINARY sí admiten mayúsculas y minúsculas.

Valores numéricos

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

Descripción: diminuto valore entero.
Rango: de -128 a127 (o de 0 a 255, si activamos la función UNSIGNED).

SMALLINT[(M)] [UNSIGNED] [ZEROFILL]

Descripción: diminuto valor entero.
Rango: de -32768 a 32767 (0 a 65535, si activamos la función UNSIGNED).

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

Descripción: entero de tamaño medio.
Rango: de -8388608 a 8388607 (0 a 16777215, si activamos la función UNSIGNED).

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

Descripción: entero de tamaño normal.
Rango: de -2147483648 a 2147483647. (0 a 4294967295, si activamos la función UNSIGNED).

INTEGER[(M)] [UNSIGNED] [ZEROFILL]

Descripción: es un sinónimo de INT.

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

Descripción: número entero de gran tamaño.
Rango: de -9223372036854775808 a 9223372036854775807. (0 a 18446744073709551615, si activamos la función UNSIGNED).

FLOAT(precision) [UNSIGNED] [ZEROFILL]

Descripción: número de punto flotante.
Rango: de 0 a +/- 1.175494351E - 38 +/- 3.402823466E+38.

Nota: si especificamos el parámetro precision (en bits), debe ser menor o igual a 24, pues de otra manera se creará una columna DOUBLE.

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

Descripción: número de punto flotante de gran precisión.
Rango: de 1.7976931348623157E+308 a -2.2250738585072014E-308, 0, y de
2.2250738585072014E-308 hasta 1.7976931348623157E+308.

Nota: La precisión (en bits), si se especifica, debe ser mayor o igual a 25; o si no, se creará una columna FLOAT. El valor de precisión no debe ser mayor a 53. También se puede definir como DOUBLE PRECISION[(M,D)] o REAL([M,D]).

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

Descripción: un número de punto flotante que puede almacenarse como una cadena de texto.
Rango: como para DOUBLE, pero atendiéndose a los parámetros M y D.

Nota: Si no especificamos el valor de D, por defecto, será igual a cero, y los números en esta columna no tendrán parte decimal. Si no especificamos el valor de M, su valore será igual a 10.

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

Descripción: idéntico al decimal.

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

Descripción: idéntico al decimal.

Valores de fecha y tiempo

DATE

Descripción: una fecha.
Rango: de '1000-01-01' hasta '9999-12-31'.

Nota: El valor en que las fechas son almacenadas en las tablas MySQL corresponde a 'aaaa-mm-dd' (año-mes-día).

DATETIME

Descripción: combinación de fecha y hora.
Rango: de '1000-01-01 00:00:00' hasta '9999-12-31 23:59:59'

Nota: El valor en que las fechas son almacenadas en las tablas MySQL corresponde a 'AAAA-MM-DD HH:MM:SS'

TIMESTAMP[(M)]

Descripción: almacena la fecha y hora en un momento determinado.
Rango: desde '1970-01-01 00:00:00' o algún otro momento en el año 2037.

Nota: Una columna con formato TIMESTAMP tiene gran utilidad para almacenar la fecha y ora de una operación de INSERT o UPDATE porque, automáticamente, fija la fecha y hora de la operación más reciente si no le damos un valor nosotros mismos. También podemos fijar la fecha y hora actual, asignándole un valor NULL.

TIME

Descripción: una hora.
Rango: desde '-838:59:59' hasta '838:59:59'.

Nota: El valor en que las horas son almacenadas en las tablas MySQL corresponde a 'HH:MM:SS'.

YEAR[(2|4)]

Descripción: un año, en versión de dos o cuatro dígitos (el valor por defecto es cuatro).
Rango: desde 1901 hasta 2155 en versión de cuatro dígitos, y desde 1970 hasta 2069 en versión de dos dígitos.

Valores de caracter

CHAR(M) [BINARY]

Descripción: una cadena de caracteres de longitud fija.
Longitud máxima: M caracteres.

Nota: Las cadenas de caracteres son almacenador hasta la longitud máxima indicada de M (0 a 255 caracteres). Los espacios internmedios son eliminados cuando se supera este valor. Asimismo, si no ocupamos el valor completo de M, automáticamente se almacenarán espacios al final de la cadena de texto hasta completar la longitud.

VARCHAR(M) [BINARY]

Descripción: una cadena de caracteres de longitud variable.
Logitud máxima: M caracteres.

Nota: Los espacios al principio y al final de la cadena de texto son elimindados a la hora de almacenamiento. Dado que es una cadena de
longitud variable, no es necesario consumir el máximo espacio permitido.

TINYBLOB

TINYTEXT

Descripción: una pequeña cadena de texto de longitud variable.
Longitud máxima: 255 caracteres.

Nota: Muy similar a VARCHAR; sin embargo, en este caso se borran los caracteres del principio y del final de las líneas.

BLOB

TEXT

Descripción: una cadena de texto de longitud variable.
Logitud máxima: 65535 caracteres.

MEDIUMBLOB

MEDIUMTEXT

Descripción: una cadena de texto de tamaño medio y longitud variable.
Longitud máxima: 16777215 caracteres.

LONGBLOB

LONGTEXT

Descripción: una cadena de texto de gran tamaño y longitud variable.
Longitud máxima: 4294967295 caracteres.

ENUM('valor1','valor2', ...)

Descripción: una enumeración de valores de los cuales uno ha de ser escogido de cada fila.
Longitud máxima: puede contener hasta un total de 65535 valores distintos.

Nota: Los valores en este tipo de campos son almacenados como números enteros que representan el elemento seleccionado. 1 representa el primer elemento; 2, el segundo; y asi sucesivamente. El valor 0 representa una cadena vacía, es decir, que no seleccionamos ninguno de los valores que se nos ofrecen.

SET('valor1','valor2',...)

Descripción: un conjunto de valores, cada uno de los cuales puede ser seleccionado o no.
Longitud máxima: podemos dar hasta 64 valores para seleccionar.

Autor

Enviar un comentario nuevo

El contenido de este campo se mantiene como privado y no se muestra públicamente.
  • Las direcciones de las páginas web y las de correo se convierten en enlaces automáticamente.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <i> <b> <h2> <h3> <tt> <blockcode>
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>. Beside the tag style "<foo>" it is also possible to use "[foo]". PHP source code can also be enclosed in <?php ... ?> or <% ... %>.
  • Saltos automáticos de líneas y de párrafos.
  • Every instance heading tags will be modified to include an id attribute for anchor linking.
  • Se pueden agregar imágenes a este envío.
  • Every instance of "<!--tableofcontents-->" in the input text will be replaced with a collapsible mediawiki-style table of contents. Accepts options for title, list style, minimum heading level, and maximum heading level as follows: <!--tableofcontents list: ol; title: Table of Contents; minlevel: 1; maxlevel: 3;-->. All arguments are optional and defaults are shown.

Más información sobre opciones de formato


Publicidad