1.
Tipos de Datos Enteros
• TINYINT:
o MySQL:
▪ Sin signo (UNSIGNED): Rango de 0 a 255.
▪ Con signo (SIGNED): Rango de -128 a 127.
o SQL Server: No soporta TINYINT con signo.
▪ Sin signo: Rango de 0 a 255.
o PostgreSQL y Oracle: No soportan TINYINT. El tipo más pequeño es
SMALLINT.
• SMALLINT:
o MySQL, PostgreSQL, SQL Server, Oracle:
▪ Sin signo (UNSIGNED): Rango de 0 a 65,535.
▪ Con signo (SIGNED): Rango de -32,768 a 32,767.
• MEDIUMINT (solo en MySQL):
o MySQL:
▪ Sin signo (UNSIGNED): Rango de 0 a 16,777,215.
▪ Con signo (SIGNED): Rango de -8,388,608 a 8,388,607.
• INT o INTEGER:
o MySQL, PostgreSQL, SQL Server, Oracle:
▪ Sin signo (UNSIGNED): Rango de 0 a 4,294,967,295.
▪ Con signo (SIGNED): Rango de -2,147,483,648 a 2,147,483,647.
• BIGINT:
o MySQL, PostgreSQL, SQL Server, Oracle:
▪ Sin signo (UNSIGNED): Rango de 0 a 18,446,744,073,709,551,615.
▪ Con signo (SIGNED): Rango de -9,223,372,036,854,775,808 a
9,223,372,036,854,775,807.
2. Tipos de Datos Decimales y de Coma Flotante
• DECIMAL(p, s) o NUMERIC(p, s):
o Estos tipos permiten definir un número decimal exacto con precisión p (número
total de dígitos) y escala s (número de dígitos a la derecha del punto decimal).
o El rango de valores depende de los parámetros p y s. Por ejemplo, DECIMAL(5,
2) puede almacenar números de -999.99 a 999.99.
• FLOAT y REAL:
o MySQL:
▪ FLOAT (precisión simple): Aproximadamente -3.402823466E+38 a
3.402823466E+38.
▪ DOUBLE o REAL (doble precisión): Aproximadamente -
1.7976931348623157E+308 a 1.7976931348623157E+308.
o PostgreSQL, SQL Server, Oracle:
▪ FLOAT/REAL: Similar a MySQL para los rangos de precisión simple.
▪ DOUBLE PRECISION: Similar a MySQL para los rangos de doble
precisión.
3. Tipos de Datos de Fecha y Hora
Los tipos de datos de fecha y hora no tienen rangos de valores numéricos en el mismo sentido
que los tipos de datos numéricos, pero es útil conocer sus límites:
• DATE:
o MySQL: Rango de '1000-01-01' a '9999-12-31'.
o PostgreSQL, SQL Server, Oracle: Rango de '0001-01-01' a '9999-12-31'.
• TIME:
oMySQL: Rango de '-838:59:59' a '838:59:59'.
oPostgreSQL: Rango de '-24:00:00' a '24:00:00'.
oSQL Server: Rango de '00:00:00.0000000' a '23:59:59.9999999'.
oOracle: Rango similar al de PostgreSQL y SQL Server dependiendo de la
precisión especificada.
• DATETIME y TIMESTAMP:
o MySQL:
▪ DATETIME: Rango de '1000-01-01 00:00:00' a '9999-12-31 23:59:59'.
▪ TIMESTAMP: Rango de '1970-01-01 00:00:01' UTC a '2038-01-19
03:14:07' UTC.
o PostgreSQL:
▪ TIMESTAMP: Rango de '4713 BC a '294276 AD.
o SQL Server:
▪ DATETIME: Rango de '1753-01-01 00:00:00' a '9999-12-31
23:59:59.997'.
o Oracle:
▪ TIMESTAMP: Similar a PostgreSQL para rangos más amplios
dependiendo de la configuración de precisión y zona horaria.
4. Tipos de Datos Booleanos
• BOOLEAN:
o Generalmente representa TRUE o FALSE, que internamente pueden ser
almacenados como 0 y 1 en muchos sistemas de bases de datos, especialmente
en aquellos como MySQL que no tienen un tipo de dato booleano real,
mapeándolo a TINYINT(1).
Notas Adicionales
• ENUM y SET: Los valores posibles son definidos por el usuario y no tienen un "rango"
en el sentido numérico.
• Tipos de datos personalizados: Algunos DBMS permiten definir tipos de datos
personalizados, lo que puede afectar los rangos y los límites posibles.
Los rangos y límites exactos pueden variar según la versión y la configuración específica del
sistema de base de datos que estés utilizando. Siempre es recomendable consultar la
documentación oficial del DBMS para obtener información precisa y actualizada.