sql >> Base de Datos >  >> RDS >> Mysql

Tipos de datos de MySQL:sepa cuáles usar y cómo hacerlo

Al crear una tabla en una base de datos, debe tener un nombre y un tipo de datos. El tipo de datos de una columna define los valores que contiene la columna, como entero, dinero, binario, carácter, fecha y hora. Por lo tanto, es tarea del desarrollador determinar qué tipos de datos se almacenarán en cada columna al crear bases de datos y tablas.

En términos simples, los tipos de datos son pautas que ayudan a SQL a comprender qué tipo de datos se requieren dentro de una columna. También es eficiente para identificar cómo SQL interactúa con los datos almacenados.

Un punto a tener en cuenta es que los tipos de datos pueden contener diferentes nombres en diferentes bases de datos, y en los casos en que los nombres sean los mismos, otros aspectos y detalles, como el tamaño, serán diferentes. Por lo tanto, se recomienda consultar siempre la documentación cuando se encuentre con casos similares.

Las siguientes características pueden identificar tipos de datos en MySQL:

  • Los valores de los tipos de datos que se pueden indexar y los que no se pueden indexar
  • El tipo de valores que representan
  • El espacio que ocupan, si los valores son de longitud variable o longitud fija
  • Cómo se compara MySQL con los diferentes valores de tipos de datos específicos

Antes de sumergirnos y cubrir los tipos de datos de MySQL, es esencial aprender y comprender las convenciones utilizadas por las descripciones de los tipos de datos, como se destaca a continuación:

  • (M ):para tipos enteros, indica el ancho máximo que el tipo de datos puede mostrar.
    :indica el número total de dígitos que se pueden almacenar para tipos de punto fijo y tipos de punto flotante.
    :Para tipos de cadena, muestra la longitud máxima

Nota:M El valor máximo permitido de depende del tipo de datos

• (D ):solo se aplica a tipos de punto fijo y tipos de punto flotante. Indica la escala (el número de dígitos que siguen al punto decimal). El valor máximo posible es 10, mientras que no debería ser más significativo que M -2

• Los corchetes ([y]) muestran las partes opcionales del tipo de definición.

f sp: esta convención se aplica a los tipos de marca de tiempo, fecha y hora. Representa la precisión de las fracciones de segundo (el número de dígitos que siguen al punto decimal durante las fracciones de segundo). El fsp dado El valor debe oscilar entre 0 y 6. El valor 0 significa que no hay partes fraccionarias presentes en el valor dado. Sin embargo, en los casos en que se omite el valor, la precisión se indica como 0.

En MySQL, hay tres categorías principales de tipos de datos que contienen subcategorías. Los tipos de datos primarios son:

  1. Tipos de datos de cadena
  2. Tipos de datos de fecha y hora.
  3. Tipos de datos numéricos

MySQL admite otros tipos de datos, como tipos de datos espaciales y tipos de datos JSON.

Este artículo cubrirá exhaustivamente todos los tipos de datos mencionados anteriormente. Por lo tanto, para obtener una comprensión clara de los tipos de datos, apéguese a este artículo.

Tipos de datos de cadena

Los tipos de datos de cadena se utilizan principalmente para contener datos binarios y texto sin formato, como imágenes y archivos. Además, MYSQL tiene la capacidad de comparar y buscar valores de cadena según el patrón coincidente, como expresiones regulares y operadores.

A continuación se muestra una ilustración detallada de todos los tipos de datos de cadena que admite MySQL:

CARÁCTER ( tamaño ): Esta es la longitud fija de una cadena. Puede contener letras, caracteres especiales o números. El parámetro tamaño denota la longitud de la columna en caracteres, y puede oscilar entre 0 y 255. El tamaño predeterminado es 1.

VARCHAR ( tamaño ): Esta es la longitud variable de una cadena. Contiene números, caracteres especiales o letras. El parámetro tamaño muestra la longitud máxima de la columna en caracteres, y puede oscilar entre 0 y 65535.

BINARIO ( tamaño ): Estos son iguales a CHAR (), solo almacenan cadenas de bytes binarios. El parámetro tamaño especifica la longitud de la columna en bytes. El valor predeterminado es 1

VARBINARIO ( tamaño ): Esto es igual a VARCHAR (), solo que almacena cadenas de bytes binarios. El parámetro tamaño especifica la longitud máxima de la columna en bytes.

TINYTEXT: Contiene cadenas que contienen una longitud máxima de 255 caracteres.

TEXTO ( tamaño ): Contiene cadenas que contienen una longitud máxima de 65 535 bytes.

BLOQUEO ( tamaño ): Para Objetos Binarios Grandes (BLOBs). Contienen hasta 65 535 bytes de datos.

TINYBLOB: Para Objetos Binarios Grandes (BLOBs). Contiene una longitud máxima de 255 bytes.

LONGLOB: Para Objetos Binarios Grandes (BLOBs). Contienen hasta 4 294 967 295 bytes de datos.

TEXTO LARGO: Contiene cadenas que contienen una longitud máxima de 4 294 967 295 caracteres.

TEXTO MEDIO: Contiene cadenas que contienen una longitud máxima de 16 777 215 caracteres.

BLOQUE MEDIO: Para Objetos Binarios Grandes (BLOBs). Contienen hasta 16 777 215 bytes de datos.

ESTABLECER ( val1, val2, val3, … ): Este es un objeto de cadena que contiene más de un valor (cadenas que contienen 0 o más valores). Se eligen de una lista de valores posibles al igual que ENUM. Sin embargo, en una lista SET, solo puede enumerar hasta 64 valores.

ENUM ( val1, val2, val3, … ): Este es un objeto de cadena que solo puede contener un valor elegido de una lista de todos los valores posibles. En una lista ENUM, puede enumerar hasta 65535 valores. Si se inserta un valor que no está en la lista, el valor insertado estará en blanco. Además, es esencial tener en cuenta que los valores se ordenan según el orden en que el usuario los ingresó.

Tipos de datos de fecha y hora

Los tipos de datos de fecha y hora especifican los valores temporales como DateTime, timestamp, year, time y date. Cada uno de los tipos temporales mencionados tiene valores que incluyen cero. Cada vez que se inserta un valor no válido, MySQL no puede representarlo. Por lo tanto, se opta por un cero.

A continuación se muestra una ilustración completa de los tipos de datos de fecha y hora admitidos por MySQL:

FECHA: El formato de fecha estándar es años, meses y días respectivamente (AAAA-MM-DD), y el rango admitido es '1000-01-01' a '9999-12-31'.

FECHA Y HORA ( fsp ): Esta es la combinación de fecha y hora. El formato estándar, en este caso, es años, meses, días, horas, minutos y segundos respectivamente (AAAA-MM-DD hh:mm:ss)

Nota: Agregar DEFAULT y ON UPDATE en una columna es esencial para iniciar la inicialización automática y actualiza la hora y la fecha actuales.

MARCA DE TIEMPO ( fsp ): Desde la época de Unix, los valores de marca de tiempo se almacenan como la cantidad de segundos, como ('1970-01-01 00;00;00' UTC). El formato estándar es años, meses, días, horas, minutos y segundos respectivamente (AAAA-MM-DD hh:mm:ss) mientras que el rango admitido es entre '('1970-01-01 00;00;01' UTC a ('2038-01-09 03;14;07' UTC. DEFAULT_CURRENT_TIMESTAMP y ON UPDATE CURRENT_TIMESTAMP son vitales para inicializar y actualizar automáticamente la fecha y hora actuales.

TIEMPO ( fsp ): El formato de hora estándar admitido es horas, minutos y segundos, respectivamente (hh:mm:ss), y el rango admitido es de '-838:59:59' a '838:59:59'.

AÑO: Un año se representa en un formato de cuatro dígitos:los valores permitidos en el formato de cuatro dígitos van de 1902 a 2155 y 0000.

Nota: La última versión de MySQL (8.0) no admite el formato de año de dos dígitos.

Tipos de datos numéricos

Los tipos de datos numéricos incluyen todos los tipos de datos numéricos exactos, como enteros, decimales y numéricos. También contiene los tipos de datos numéricos aproximados, como float, double, double precision y real. Los tipos de datos numéricos almacenan valores de bits ya que admiten los tipos de datos BIT. Por lo general, los tipos de datos numéricos en MySQL se dividen en dos categorías:tipos de datos firmados y tipos de datos sin firmar; sin embargo, esta es una excepción a los tipos de datos de bits.

A continuación se muestra una ilustración detallada que contiene todos los tipos de datos numéricos admitidos por MySQL y su descripción:

BIT ( tamaño ): Este es un tipo de valor de bit en el que el número de bits por valor se indica en términos de tamaño . El parámetro tamaño tiene la capacidad de contener valores del 1 al 64, y su valor predeterminado para el tamaño es 1.

TINYINT ( tamaño ): Este es un número entero muy pequeño cuyo rango con signo va de -128 a 127 mientras que su rango sin signo va de 0 a 255. El parámetro tamaño denota el ancho máximo que se mostrará, que es de aproximadamente 255.

BOOLEANO: Es igual a un BOOL

BOOL: En un BOOL, los valores distintos de cero se consideran verdaderos. Al mismo tiempo, los valores cero se consideran falsos.

INT ( tamaño ): Este es un entero medio cuyo rango con signo va de -2147483648 a 2147483647, mientras que el rango sin signo va de 0 a 4294967295. El parámetro size especifica el ancho máximo que se mostrará, que es de aproximadamente 255.

MENTA MEDIA ( tamaño ): Este también es un entero medio cuyo rango con signo va de -32768 a 32767 mientras que su rango sin signo va de 0 a 65535. El parámetro tamaño especifica el ancho máximo que se mostrará, que es de aproximadamente 255.

PEQUEÑO ( tamaño ): Este es un entero pequeño cuyo rango con signo está entre -32768 y 32767, mientras que el rango sin signo está entre 0 y 16777215. El tamaño El parámetro, en este caso, se usa para especificar el ancho máximo de visualización, cuyo rango es de aproximadamente 255.

FLOTANTE ( tamaño, d ): Es un número de punto flotante cuyo número total de dígitos se denota en tamaño. La d El parámetro ayuda a especificar el número de dígitos después del punto decimal.

Nota: este parámetro ha quedado obsoleto en MySQL versión 8.0.17. Por lo tanto, no se reproducirá en futuras versiones de MySQL.

ENTERO ( tamaño ): Esto es equivalente a un INT (tamaño ).

FLOTANTE( p ): Es un número de punto flotante. La P El parámetro se utiliza para determinar si se utilizará FLOAT o DOUBLE en un tipo de datos resultante. Cuando la P -valor va de 0 a 24, el dato se conoce como FLOAT(). Mientras que cuando la P -el valor varía de 25 a 53, luego el tipo de datos cambia a DOUBLE ().

DEC ( tamaño, d ): Este es un equivalente de un DECIMAL (tamaño, d )

DOBLE ( tamaño, d ): Esto denota un tamaño estándar número de punto flotante cuyo número total de dígitos se da en tamaño. La d El parámetro ayuda a especificar el número de dígitos después del punto decimal.

DECIMALES ( tamaño, d ): Es un número de punto fijo exacto cuyo número total de dígitos se especifica en términos de tamaño . La d El parámetro especifica los dígitos del número después del punto decimal. El tamaño máximo el número es 65, mientras que la d el número máximo es 30. Por lo tanto, el valor predeterminado para d es 0, mientras que el valor predeterminado para tamaño es 10.

Nota: todos los tipos numéricos contienen opciones adicionales; ZEROFILL y SIN FIRMAR. Si se agrega la opción UNSIGNED, MySQL no permitirá los valores negativos en la columna. Por otro lado, si se agrega la opción ZEROFILL, MySQL agregará automáticamente el atributo UNSIGNED a dicha columna.

Otros tipos de datos

Tipo de dato booleano

El tipo entero más pequeño TINYINT (1) se usa para representar valores booleanos en MySQL, ya que MySQL no contiene un tipo de datos BOOL o BOOLEAN incorporado. Por lo tanto, cuando trabaje con BOOL y BOOLEAN, debe igualarlos a TINYINT (1).

Tipo de datos espaciales

MySQL brinda soporte para varios tipos de datos espaciales que tienen varios tipos de valores geográficos y geométricos, como se indica a continuación:

GEOMETRÍA: Este es un agregado o punto que puede contener el valor espacial de cualquier tipo siempre que tenga una ubicación.

POLÍGONO: Esta es una superficie plana representada por una geometría de varios lados. Puede definirse por cero o solo uno exterior y más límites interiores.

CADENA MULTILINEA: Esta es una geometría de múltiples curvas que contiene una colección de valores LINESTRING.

MULTIPOLÍGONO: Este es un objeto multisuperficie representado por una colección de varios elementos poligonales, y es una geometría bidimensional

PUNTO: Este es un punto o un par que contiene las coordenadas X e Y. Se puede decir que es un punto en una geometría que representa una sola ubicación.

COLECCIÓN DE GEOMETRÍA: Esta es una colección de valores de GEOMETRÍA

SECUENCIA DE LÍNEAS: Esta es una curva que contiene uno o más valores de punto. En los casos en que una cadena de líneas contiene solo dos puntos, significa que representa una línea.

MULTIPUNTO: Esta es una colección de valores de PUNTOS en los que el punto no se puede ordenar ni conectar de ninguna manera.

Tipo de datos JSON

MYSQL ha admitido el tipo de datos JSON nativo desde el inicio de la versión 5.7.8, lo que permitió el almacenamiento y la gestión de documentos JSON de forma mucho más rápida y eficaz. Además, el tipo de datos JSON nativo es responsable de proporcionar un formato de almacenamiento óptimo y una validación automática de los documentos JSON.

Conclusión

Este artículo ha cubierto exhaustivamente todos los aspectos relacionados con los tipos de datos de MySQL que lo ayudarán a comprender qué tipos de datos deben usarse y cómo deben usarse. Creemos que el artículo también ayudará a mejorar su conocimiento de MySQL.