
Resumen: en este tutorial, aprenderás sobre los tipos de datos enteros y cómo usarlos de manera efectiva para almacenar valores enteros en la base de datos.
Introducción a los tipos enteros de SQL Server
SQL Server admite tipos enteros de SQL estándar, incluidos BIGINT, INT, SMALLINT y TINYINT
. La siguiente tabla ilustra el rango y el almacenamiento de cada tipo de entero:
- BIGINT. Rango: -263 (-9,223,372,036,854,775,808) to 263-1 (9,223,372,036,854,775,807); Almacenamiento: 8 Bytes.
- INT. Rango: -231 (-2,147,483,648) to 231-1 (2,147,483,647); Almacenamiento: 4 Bytes.
- SMALLINT. Rango: -215 (-32,768) to 215-1 (32,767); Almacenamiento: 2 Bytes.
- TINYINT. Rango: 0 a 255; Almacenamiento: 1 Byte.
Es una buena práctica usar el tipo de datos entero más pequeño que pueda contener de manera confiable todos los valores posibles. Por ejemplo, para almacenar el número de hijos de una familia, TINYINT
es suficiente porque hoy en día nadie puede tener más de 255 hijos. Sin embargo, TINYINT
no sería suficiente para almacenar los departamentos u oficinas de un edificio porque un edificio puede tener más de 255 departamentos u oficinas.
Ejemplo de enteros en SQL Server
La siguiente declaración crea una nueva tabla que consta de cuatro columnas de enteros:
CREATE TABLE test.sql_server_integers (
bigint_col bigint,
int_col INT,
smallint_col SMALLINT,
tinyint_col tinyint
);
La siguiente declaración INSERT agrega los enteros máximos de BIGINT, INT, SMALLINT y TINYINT
a las columnas correspondientes de la tabla:
INSERT INTO test.sql_server_integers (
bigint_col,
int_col,
smallint_col,
tinyint_col
)
VALUES
(
9223372036854775807,
2147483647,
32767,
255
);
Para mostrar los valores almacenados en la tabla test.sql_server_integers
, ejecuta la siguiente instrucción SELECT
:
SELECT
bigint_col,
int_col,
smallint_col,
tinyint_col
FROM
test.sql_server_integers;
Convertir datos enteros
SQL Server convierte la constante entera mayor que 2,147,483,647 al tipo de datos DECIMAL
, no al tipo de datos BIGINT
, como se muestra en el siguiente ejemplo:
SELECT 2147483647 / 3 AS r1,
2147483649 / 3 AS r2;
El ejemplo de consulta mostró que cuando se excedía el valor del umbral, el tipo de datos del resultado cambiaba de INT
a DECIMAL
.
En este tutorial, aprendiste varios tipos de datos enteros de SQL Server
y cómo usarlos para almacenar enteros en la base de datos.