MySQL – Tipos de datos

Definir correctamente los campos en la tabla es importante para la optimización general de su base de datos. Solo debe usar el tipo y tamaño del campo que realmente necesita. Por ejemplo, no defina un campo de 10 caracteres de ancho si sabe que solo va a utilizar 2 caracteres. Estos tipos de campo (o columna) también se denominan tipos de datos después tipo de datos almacenará en estos campos.

MySQL utiliza muchos tipos de datos diferentes, divididos en tres categorías:

  • Numérico
  • fecha y hora
  • Tipos de cuerdas.

Vamos a discutirlos ahora en detalle.

Tipos de datos numéricos

MySQL utiliza todos los tipos de datos numéricos ANSI SQL estándar, por lo que si está migrando a MySQL desde un sistema de base de datos diferente, estas definiciones le resultarán familiares.

La siguiente lista muestra los tipos de datos numéricos comunes y sus descripciones.

  • EN T – Un número entero de tamaño normal que puede estar con o sin signo. Si tiene signo, el rango válido es de -2147483648 a 2147483647. Si no tiene signo, el rango válido es de 0 a 4294967295. Puede especificar un ancho de hasta 11 dígitos.

  • TINIINT – Un número entero muy pequeño que puede estar con o sin signo. Si está firmado, el rango válido es de -128 a 127. Si no está firmado, el rango válido es de 0 a 255. Puede especificar un ancho de hasta 4 dígitos.

  • POCO – Un pequeño entero que puede estar firmado o no firmado. Si está firmado, el rango válido es de -32768 a 32767. Si no tiene signo, el rango válido es de 0 a 65535. Puede especificar un ancho de hasta 5 dígitos.

  • MEDIO – Un entero de tamaño mediano que puede estar firmado o no firmado. Si está firmado, el rango válido es de -8388608 a 8388607. Si no está firmado, el rango válido es de 0 a 16777215. Puede especificar un ancho de hasta 9 dígitos.

  • EMPEZANDO – Un entero grande que puede estar firmado o sin firmar. Si tiene signo, el rango válido es -9223372036854775808 a 9223372036854775807. Si no tiene signo, el rango válido es de 0 a 18446744073709551615. Puede especificar un ancho de hasta 20 dígitos.

  • FLOTADOR (M, D) – Un número de coma flotante que no se puede anular. Puede definir la longitud de la pantalla (M) y el número de decimales (D). Esto no es obligatorio y estará predeterminado en 10.2, donde 2 es el número de lugares decimales y 10 es el número total de dígitos (incluidos los lugares decimales). La precisión decimal puede ser de hasta 24 dígitos para FLOAT.

  • DOBLE (M, D) – Un número de coma flotante de doble precisión que no puede estar sin signo. Puede definir la longitud de la pantalla (M) y el número de decimales (D). Esto es opcional y por defecto será 16.4, donde 4 es el número de posiciones decimales. La precisión decimal puede ser de hasta 53 dígitos para DOBLE. REAL es sinónimo de DOBLE.

  • DECIMAL (M; D) – Un número de punto flotante desempaquetado que no se puede quitar. En decimales descomprimidos, cada número decimal corresponde a un byte. Quiere determinar la longitud de la pantalla (M) y el número de lugares decimales (D). NUMERIC es sinónimo de DECIMAL.

Tipos de fecha y hora

Los tipos de datos de fecha y hora de MySQL son los siguientes:

  • LA FECHA – Fecha en formato AAAA-MM-DD, entre el 01.01.1000 y el 31.12.999. Por ejemplo, el 30 de diciembre de 1973 se guardaría como 1973-12-30.

  • FECHA Y HORA – Combinación de fecha y hora en el formato AAAA-MM-DD HH: MM: SS, entre 1000-01-01 00:00:00 y 9999-12-31 23:59:59. Por ejemplo, las 3:30 pm del 30 de diciembre de 1973 se guardarían como 1973-12-30 15:30:00.

  • TIMESTAMP – Marca de tiempo entre la medianoche del 1 de enero de 1970 y aproximadamente el 2037. Es similar al formato DATETIME anterior, solo que sin guiones entre los números; 3:30 pm del 30 de diciembre de 1973 se guardará como 19731230153000 (AAAAMMDDHHMMSS).

  • HORA – Almacena la hora en formato HH: MM: SS.

  • AÑO (M) – Almacena el año en formato de 2 o 4 dígitos. Si la longitud se especifica como 2 (por ejemplo, AÑO (2)), AÑO puede ser 1970 a 2069 (70 a 69). Si la longitud se especifica como 4, entonces YEAR puede ser de 1901 a 2155. La longitud predeterminada es 4.

Tipos de cadenas

Si bien los tipos numéricos y de fecha son divertidos, la mayoría de los datos que almacenará estarán en formato de cadena. Esta lista describe los tipos de datos de cadena comunes en MySQL.

  • SÍMBOLO (M) – Una cadena de longitud fija de 1 a 255 caracteres (por ejemplo, CHAR (5)), rellenada a la derecha con espacios hasta la longitud especificada cuando se almacena. No se requiere determinación de longitud, pero el valor predeterminado es 1.

  • Varchar (M) – Cadena de longitud variable de 1 a 255 caracteres. Por ejemplo, VARCHAR (25). Debe definir la longitud al crear el campo VARCHAR.

  • BLOB o TEXTO – Campo con una longitud máxima de 65535 caracteres. Los blobs son «blobs» y se utilizan para almacenar grandes cantidades de datos binarios, como imágenes u otros tipos de archivos. Los campos definidos como TEXTO también contienen grandes cantidades de datos. La diferencia entre los dos es que ordenar y comparar los datos almacenados distingue mayúsculas y minúsculas en manchas y son insensible a mayúsculas y minúsculas en cuadros de texto. No está especificando la longitud usando BLOB o TEXT.

  • TINYBLOB o TINYTEXT – Una columna BLOB o TEXTO con una longitud máxima de 255 caracteres. No especificas la longitud con TINYBLOB o TINYTEXT.

  • MEDIUMBLOB o MEDIUMTEXT – Una columna BLOB o TEXTO con una longitud máxima de 16.777.215 caracteres. No especificas la longitud con MEDIUMBLOB o MEDIUMTEXT.

  • LONGBLOB o LONGTEXT – Una columna BLOB o TEXT con una longitud máxima de 4294967295 caracteres. No especificas la longitud con LONGBLOB o LONGTEXT.

  • ENUM – Enumeración, un término elegante para una lista. Al definir ENUM, crea una lista de elementos de los que se debe seleccionar un valor (o podría ser NULL). Por ejemplo, si desea que su campo contenga «A», «B» o «C», debe definir ENUM como ENUM (‘A’, ‘B’, ‘C’) y solo estos valores (o NULL ) puede completar este campo.

En el próximo capítulo, discutiremos cómo crear tablas en MySQL.

🚫