MySQLi - Tipos de datos
Definir correctamente los campos en una tabla es importante para la optimización general de su base de datos. Debe usar solo el tipo y tamaño de campo que realmente necesita usar; no defina un campo con 10 caracteres de ancho si sabe que solo va a utilizar 2 caracteres. Estos tipos de campos (o columnas) también se denominan tipos de datos, después de latype of data almacenará en esos campos.
MySQLi utiliza muchos tipos de datos diferentes divididos en tres categorías: numéricos, de fecha y hora y tipos de cadenas.
Tipos de datos numéricos
MySQLi utiliza todos los tipos de datos numéricos ANSI SQL estándar, por lo que si llega a MySQLi 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:
INT- Un número entero de tamaño normal que puede estar con o sin signo. Si está firmado, el rango permitido es de -2147483648 a 2147483647. Si no está firmado, el rango permitido es de 0 a 4294967295. Puede especificar un ancho de hasta 11 dígitos.
TINYINT- Un número entero muy pequeño que puede estar con o sin signo. Si está firmado, el rango permitido es de -128 a 127. Si no está firmado, el rango permitido es de 0 a 255. Puede especificar un ancho de hasta 4 dígitos.
SMALLINT- Un pequeño entero que puede estar firmado o no firmado. Si está firmado, el rango permitido es de -32768 a 32767. Si no está firmado, el rango permitido es de 0 a 65535. Puede especificar un ancho de hasta 5 dígitos.
MEDIUMINT- Un entero de tamaño mediano que puede estar firmado o no firmado. Si está firmado, el rango permitido es de -8388608 a 8388607. Si no está firmado, el rango permitido es de 0 a 16777215. Puede especificar un ancho de hasta 9 dígitos.
BIGINT- Un entero grande que puede estar firmado o no firmado. Si está firmado, el rango permitido es de -9223372036854775808 a 9223372036854775807. Si no está firmado, el rango permitido es de 0 a 18446744073709551615. Puede especificar un ancho de hasta 20 dígitos.
FLOAT(M,D)- Un número de punto 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 decimales y 10 es el número total de dígitos (incluidos los decimales). La precisión decimal puede llegar a 24 lugares para un FLOAT.
DOUBLE(M,D)- Un número de punto 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 no es obligatorio y el valor predeterminado será 16,4, donde 4 es el número de decimales. La precisión decimal puede llegar a 53 lugares para un DOBLE. REAL es sinónimo de DOBLE.
DECIMAL(M,D) - Un número de punto flotante descomprimido que no se puede quitar. En decimales desempaquetados, cada decimal corresponde a un byte. Es necesario definir la longitud de la pantalla (M) y el número de decimales (D). NUMERIC es sinónimo de DECIMAL.
Tipos de fecha y hora
Los tipos de datos de fecha y hora de MySQL son:
DATE- Una fecha en formato AAAA-MM-DD, entre 1000-01-01 y 9999-12-31. Por ejemplo, el 30 de diciembre de 1973 se almacenaría como 1973-12-30.
DATETIME- Una combinación de fecha y hora en 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 de la tarde del 30 de diciembre de 1973 se almacenarían como 1973-12-30 15:30:00.
TIMESTAMP - Una marca de tiempo entre la medianoche, el 1 de enero de 1970 y en algún momento de 2037. Se parece al formato DATETIME anterior, solo que sin los guiones entre los números; 3:30 de la tarde del 30 de diciembre de 1973 se almacenaría como 19731230153000 (AAAAMMDDHHMMSS).
TIME - Almacena la hora en formato HH: MM: SS.
YEAR(M)- Almacena un año en formato de 2 o 4 dígitos. Si la longitud se especifica como 2 (por ejemplo, YEAR (2)), YEAR puede ser 1970 a 2069 (70 a 69). Si la longitud se especifica como 4, YEAR puede ser de 1901 a 2155. La longitud predeterminada es 4.
Tipos de cadenas
Aunque 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 cadenas comunes en MySQLi.
CHAR(M)- Una cadena de longitud fija entre 1 y 255 caracteres de longitud (por ejemplo, CHAR (5)), rellenada a la derecha con espacios hasta la longitud especificada cuando se almacena. No es necesario definir una longitud, pero el valor predeterminado es 1.
VARCHAR(M)- Una cadena de longitud variable entre 1 y 255 caracteres de longitud; por ejemplo VARCHAR (25). Debe definir una longitud al crear un campo VARCHAR.
BLOB or TEXT- Un campo con una longitud máxima de 65535 caracteres. Los BLOB son "objetos grandes binarios" 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 los ordenamientos y las comparaciones de los datos almacenados distinguen entre mayúsculas y minúsculas en los BLOB y no distinguen entre mayúsculas y minúsculas en los campos TEXT. No especifica una longitud con BLOB o TEXT.
TINYBLOB or TINYTEXT- Una columna BLOB o TEXTO con una longitud máxima de 255 caracteres. No especifica una longitud con TINYBLOB o TINYTEXT.
MEDIUMBLOB or MEDIUMTEXT- Una columna BLOB o TEXTO con una longitud máxima de 16777215 caracteres. No especifica una longitud con MEDIUMBLOB o MEDIUMTEXT.
LONGBLOB or LONGTEXT- Una columna BLOB o TEXT con una longitud máxima de 4294967295 caracteres. No especifica una longitud con LONGBLOB o LONGTEXT.
ENUM - Una enumeración, que es un término elegante para la lista. Al definir un ENUM, está creando una lista de elementos de los que se debe seleccionar el valor (o puede ser NULO). Por ejemplo, si desea que su campo contenga "A" o "B" o "C", debería definir su ENUM como ENUM ('A', 'B', 'C') y solo esos valores (o NULL) podría poblar ese campo.