Introducción a los tipos de datos SQL

Los tipos de datos en SQL, al igual que cualquier otro lenguaje de programación, definen qué tipo de datos puede contener la columna o la variable. El tipo de datos puede ser cualquier cosa, desde un carácter, pasando por una serie de caracteres, pasando por números, hasta la fecha y la hora. Un tipo de datos es un concepto crucial de programación estrechamente acoplada. Ayuda a resolver la mayoría de los errores de compatibilidad de tipos durante la compilación del programa.

Estaríamos categorizando ampliamente los tipos de datos SQL y luego explorando varios tipos y ejemplos en esas categorías.

Nota : no todos los sistemas de administración de bases de datos admiten todos los tipos de datos. Por ejemplo, Oracle no es compatible con DateTime. Estos detalles se dan junto con la descripción del tipo de datos en el artículo. Se recomienda tener esto en cuenta al diseñar la base de datos. Del mismo modo, hay muchos otros tipos de datos que son específicos de cualquier sistema de gestión de bases de datos en particular. Por ejemplo, MS SQL tiene un tipo de datos de dinero. Tales tipos no son genéricos y están más allá del alcance de este artículo.

Tipos de datos SQL

1. binario

El tipo de datos binarios contiene una secuencia de cadenas de bytes binarios. A diferencia de las cadenas de caracteres habituales, las cadenas binarias se utilizan para almacenar datos no convencionales, como imágenes.

Binario (tamaño): almacena cadenas de bytes binarios de longitud de columna especificada por el parámetro de tamaño. El tamaño de la columna es fijo. Si el tamaño se define como 10 bytes y los datos almacenados son 5 bytes, los 5 bytes restantes aún están ocupados en la memoria por la columna. La mayoría de los analizadores SQL rellenan los bytes restantes a la derecha. El tamaño máximo posible es de 8000 bytes.

Varbinary (tamaño): almacena cadenas de bytes binarios de longitud de columna especificada por el parámetro de tamaño. El tamaño de la columna no es fijo. Si el tamaño se define como 10 bytes y los datos almacenados son 5 bytes, la columna ocupa solo 5 bytes en la memoria. El tamaño máximo posible es de 8000 bytes.

Varbinary (max): la especificación de la palabra clave max en el parámetro size aumenta el tamaño máximo posible a 2 GB y asigna un tamaño variable a las columnas en función de los datos almacenados. Este tipo de datos no es compatible con MySQL.

Ejemplo:

create table BinaryDataTypes (col_binary BINARY(5), col_varbinary VARBINARY(5));
insert into BinaryDataTypes values (101, 121);
select * from BinaryDataTypes;

insert into BinaryDataTypes values (12345, 123456);
insert into BinaryDataTypes values (123456, 123456);

El error ocurre porque habíamos definido el tamaño de las columnas como 5 bytes solamente.

2. Carácter / Cadena

Estos tipos de datos almacenan un solo carácter o una serie de caracteres que forman una cadena. Estos incluyen caracteres, números y caracteres especiales. Sin embargo, la naturaleza de los caracteres se limita solo a caracteres no Unicode.

Char (tamaño): almacena cadenas de caracteres de longitud fija de la longitud especificada por el parámetro de tamaño. El tamaño de la columna funciona de manera similar al tipo de datos BINARY. El tamaño predeterminado es de 1 carácter. El máximo es 255 en la mayoría de los sistemas de gestión de bases de datos.

Varchar (tamaño): almacena cadenas de caracteres de longitud variable. Sin embargo, la longitud especificada por el parámetro de tamaño define la longitud máxima de la columna. La longitud máxima posible es de 65535 caracteres.

Varchar (max): la especificación de la palabra clave max en el parámetro size aumenta el tamaño máximo posible a 2 GB y asigna un tamaño variable a las columnas en función de los datos almacenados. Este tipo de datos no es compatible con MySQL.

Texto: MySQL admite el tipo de datos de texto en lugar de varchar (max). El texto también aumenta el tamaño máximo posible a 2 GB.

Ejemplo:

create table CharacterDataTypes (col_char CHAR(300));

create table CharacterDataTypes (col_char CHAR(20), col_varchar VARCHAR(20), col_text TEXT);
insert into CharacterDataTypes values ('Hello World', 'How you doing?', 'This is an incredibly longer text to demonstrate the data type text in MySQL. The data type text makes it possible to store 2GB of data in a column. That\'s equal to 2*1024*1024*1024 = over 2.14 billion characters. Whoa!');

3. Carácter / cadena Unicode

Estos tipos de datos almacenan una sola o una cadena de caracteres Unicode.

Nchar (tamaño): es similar al tipo de datos char y también admite caracteres Unicode. Sin embargo, el límite máximo se reduce a 4000 bytes.

Nvarchar (tamaño): es similar al tipo de datos nvarchar y también admite caracteres Unicode. Sin embargo, el límite máximo se reduce a 4000 bytes.

Nvarchar (max): la especificación de la palabra clave max en el parámetro de tamaño aumenta el tamaño máximo posible a 1 GB y asigna un tamaño variable a las columnas en función de los datos almacenados. Este tipo de datos no es compatible con MySQL.

Ntext: MySQL admite el tipo de datos ntext en lugar de nvarchar (max). Ntext también aumenta el tamaño máximo posible a 1 GB.

Ejemplo:

create table UnicodeCharacterDataTypes (col_unicode_char NCHAR(200));
insert into UnicodeCharacterDataTypes values ('局层局层');
select * from UnicodeCharacterDataTypes;

4. numérico

Los tipos de datos numéricos admiten números enteros y números reales / fraccionarios / decimales.

Bit / Bool / Boolean: estos tipos de datos almacenan solo dos valores: 0 y 1. 0 denota falso mientras que 1 denota verdadero. Un poco es compatible con la mayoría de las bases de datos. Algunas bases de datos avanzadas también admiten bool y boolean.

INT: almacena enteros positivos y negativos de hasta 4 bytes de tamaño. Esto significa que el valor debe estar en el rango (-2147483648, 2147483647). Especificar la palabra clave sin signo restringe la columna para almacenar solo valores positivos en el rango (0, 4294967295).

TINYINT: almacena enteros positivos y negativos de hasta 1 byte de tamaño. Esto significa que el valor debe estar en el rango (-128, 127). Especificar la palabra clave unsigned restringe la columna para almacenar solo valores positivos en el rango (0, 255).

Smallint: almacena enteros positivos y negativos de hasta 2 bytes de tamaño. Esto significa que el valor debe estar en el rango (-32768, 32767). La especificación de la palabra clave sin signo restringe la columna para almacenar solo valores positivos en el rango (0, 65535).

Bigint: almacena enteros positivos y negativos de hasta 8 bytes de tamaño. Esto significa que el valor debe estar en el rango (-2 63, 2 63 -1). La especificación de la palabra clave sin signo restringe la columna para almacenar solo valores positivos en el rango (0, 2 64 -1).

Decimal (tamaño, D): almacena un número de punto fijo. El tamaño del parámetro especifica el número total de dígitos, mientras que d especifica el número de dígitos que siguen al punto decimal. Los valores predeterminados para tamaño yd son 10 y 0 respectivamente.

Flotante (tamaño, D) / Doble (tamaño, D): almacena un número de coma flotante. El flotador se usa para números más pequeños de hasta 4 bytes de tamaño. El doble almacena números más grandes. Sin embargo, el doble no es compatible con todas las bases de datos.

Conocimiento fuera del plan de estudios : la diferencia entre los números de punto fijo y de punto flotante es que el punto decimal se fija en uno y flota en otro. Punto fijo significa que el número de dígitos se fija después y antes del punto decimal. El punto flotante significa que el número de dígitos antes y después del punto decimal puede variar en relación con la importancia de los dígitos en el número.

Ejemplo:

create table NumericDataTypes (col_tinyint_u TINYINT UNSIGNED, col_smallint SMALLINT, col_int INT, col_bigint BIGINT UNSIGNED, col_decimal DECIMAL(5, 2), col_float FLOAT);
insert into NumericDataTypes values (255, -32768, 1234567890, (POWER(2, 63)-1), 987.65, 987.65);

5. Fecha y hora

  1. Fecha: almacena los datos en el formato AAAA-MM-DD, limitado de 1000-01-01 a 9999-12-31.
  2. Hora: almacena la hora en el formato hh: mm: ss.
  3. DateTime: almacena la fecha y la hora.
  4. Marca de tiempo : la marca de tiempo se utiliza para marcar una marca de tiempo cada vez que se ingresa o actualiza una fila en la tabla. Esto generalmente se realiza a través de las palabras clave DEFAULT CURRENT_TIMESTAMP y ON UPDATE CURRENT_TIMESTAMP.

Ejemplo:

create table DateTimeDataTypes (col_date DATE, col_time TIME, col_datetime DATETIME, col_ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
insert into DateTimeDataTypes(col_date, col_time, col_datetime) values (CURDATE(), '08:50:41', NOW());

6. Tipos de datos de SQL varios

  • CLOB: CLOB significa Character Large Objects. Pueden contener datos de caracteres de hasta 2 GB. Sin embargo, no es compatible con MySQL. MySQL usa Texto para lograr lo mismo.
  • BLOB: BLOB significa Binary Large Objects. Se utilizan para almacenar objetos binarios de tamaño de hasta 2 GB. Por lo general, las imágenes se convierten en objetos binarios y se almacenan en columnas BLOB.
  • XML: se utiliza para almacenar datos XML.
  • JSON: se utiliza para almacenar datos JSON. No es compatible con MySQL.

Conclusión - Tipos de datos SQL

Los tipos de datos SQL ayudan mucho a optimizar estratégicamente el espacio de la base de datos. En un mundo digital, donde los datos están en constante crecimiento a un ritmo exponencial, un desarrollador debe elegir sabiamente el tipo de cada bit de datos. Esto ayuda a reducir los costos derivados del almacenamiento masivo de datos.

Artículos recomendados

Esta es una guía para los tipos de datos SQL. Aquí discutimos la Introducción, Tipos de datos SQL, Caracteres / Cadenas, Caracteres / Cadenas Unicode y Numérico. También puede consultar nuestros otros artículos sugeridos para obtener más información:

  1. Tipos de datos PostgreSQL
  2. Tipos de OLAP
  3. Tipos de malware
  4. Cláusula WHERE WHERE
  5. Palabras clave PHP
  6. Palabras clave de C ++
  7. Los 3 principales tipos de datos de PHP con ejemplos
  8. Ejemplos para implementar la declaración INSERT