Tipos de datos en SQL
Los tipos de datos en SQL son fundamentales para almacenar y manipular información en bases de datos. Conocerlos es esencial para un desarrollo eficiente.
Cristian Escalante
Última actualización: 29 de abril de 2025
Descripción de los tipos de datos en SQL
Para almacenar y manipular datos en SQL, es fundamental comprender los tipos de datos disponibles. Estos tipos determinan cómo se almacenan y procesan los datos en una base de datos.
¿Qué son los Tipos de Datos en PL/SQL?
Los tipos de datos definen qué clase de información puede almacenar una variable o columna. PL/SQL (el lenguaje procedural de Oracle) tiene varios tipos, cada uno con un propósito específico.
Saber que tipo de dato usar es importante porque permite: evitar errores, optimizar espacio, mejora la claridad de los datos.
Tipos de Datos Numéricos
Estos almacenan números, ya sean enteros o decimales. Los tipos más comunes son INTEGER, FLOAT y DECIMAL. Cada uno tiene su propio rango y precisión.
Tipo de dato | Descripción | Datatype | Ejemplo |
---|---|---|---|
INTEGER | Almacena números enteros. | INTEGER, INTEGER(n) | 42 |
FLOAT | Almacena números de punto flotante. | FLOAT, REAL | 3.14 |
DECIMAL | Almacena números decimales con precisión fija. | DECIMAL(p,s) | 123.45 |
NUMBER | Almacena números con precisión variable. | NUMBER(p,s) | 1234567890.12 |
PLS_INTEGER | Almacena números enteros con un rango más amplio. | PLS_INTEGER | 1000000 |
BINARY_FLOAT | Almacena números de punto flotante en formato binario. | BINARY_FLOAT | 3.14 |
BINARY_DOUBLE | Almacena números de punto flotante en formato binario. | BINARY_DOUBLE | 3.14 |
NUMERIC | Almacena números con precisión variable. | NUMERIC(p,s) | 123.45 |
INT | Sinónimo de INTEGER. | INT | 42 |
SMALLINT | Almacena números enteros pequeños. | SMALLINT | 32 |
TINYINT | Almacena números enteros muy pequeños. | TINYINT | 8 |
BIGINT | Almacena números enteros grandes. | BIGINT | 9223372036854775807 |
Ejemplo DDL en SQL:
CREATE TABLE productos (
id_producto INT PRIMARY KEY,
precio DECIMAL(10, 2) -- Precio con 10 dígitos, 2 decimales
);
Ejemplo en PL/SQL:
DECLARE
precio NUMBER(6,2) := 99.99; -- 6 dígitos, 2 decimales
edad PLS_INTEGER := 25;
BEGIN
DBMS_OUTPUT.PUT_LINE('Precio: ' || precio);
DBMS_OUTPUT.PUT_LINE('Edad: ' || edad);
END;
Tipos de Datos de Texto (Caracteres)
Los tipos de datos de texto permiten almacenar cadenas de caracteres. En SQL, los tipos más comunes son CHAR, VARCHAR y TEXT. Cada uno tiene sus propias características y limitaciones.
Tipo de dato | Descripción | Datatype | Ejemplo |
---|---|---|---|
CHAR | Almacena cadenas de longitud fija. | CHAR(n) | 'Hola' |
VARCHAR | Almacena cadenas de longitud variable. | VARCHAR(n) | 'Hola Mundo' |
TEXT | Almacena cadenas de longitud variable (sin límite). | TEXT | 'Texto largo' |
NCHAR | Almacena cadenas de longitud fija (Unicode). | NCHAR(n) | 'Hola' |
NVARCHAR | Almacena cadenas de longitud variable (Unicode). | NVARCHAR(n) | 'Hola Mundo' |
CLOB | Almacena grandes cantidades de texto. | CLOB | 'Texto largo' |
BLOB | Almacena datos binarios grandes. | BLOB | 'Datos binarios' |
VARCHAR2 | Almacena cadenas de longitud variable (Oracle). | VARCHAR2(n) | 'Hola Mundo' |
LONG | Almacena grandes cantidades de texto (sin límite). | LONG | 'Texto largo' |
Ejemplo DDL en SQL:
CREATE TABLE usuarios (
id_usuario INT PRIMARY KEY,
nombre VARCHAR(100),
apellido VARCHAR(100),
email VARCHAR(255) UNIQUE
);
Ejemplo en PL/SQL:
DECLARE
nombre VARCHAR2(50) := 'Cristian';
apellido VARCHAR2(50) := 'Escalante';
email VARCHAR2(100) := 'ejemplo@correo.com'; -- Asignar un valor al email
BEGIN
DBMS_OUTPUT.PUT_LINE('Nombre: ' || nombre);
DBMS_OUTPUT.PUT_LINE('Apellido: ' || apellido);
DBMS_OUTPUT.PUT_LINE('Email: ' || email); -- Mostrar el email
END;
Tipos de Datos de Fecha y Hora
Permiten almacenar fechas, horas o marcas temporales. En SQL, los tipos más comunes son DATE, TIME y TIMESTAMP. Cada uno tiene su propio formato y precisión.
Tipo de dato | Descripción | Datatype | Ejemplo |
---|---|---|---|
DATE | Almacena fechas (año, mes, día). | DATE | '2023-04-29' |
TIME | Almacena horas (hora, minuto, segundo). | TIME | '14:30:00' |
TIMESTAMP | Almacena fecha y hora (año, mes, día, hora, minuto, segundo). | TIMESTAMP | '2023-04-29 14:30:00' |
Ejemplo DDL en SQL:
CREATE TABLE eventos (
id_evento INT PRIMARY KEY,
fecha_evento DATE,
hora_evento TIME,
timestamp_evento TIMESTAMP
);
Ejemplo en PL/SQL:
DECLARE
fecha DATE := TO_DATE('2023-04-29', 'YYYY-MM-DD');
hora TIME := TO_TIMESTAMP('14:30:00', 'HH24:MI:SS');
timestamp TIMESTAMP := TO_TIMESTAMP('2023-04-29 14:30:00', 'YYYY-MM-DD HH24:MI:SS');
BEGIN
DBMS_OUTPUT.PUT_LINE('Fecha: ' || fecha);
DBMS_OUTPUT.PUT_LINE('Hora: ' || hora);
DBMS_OUTPUT.PUT_LINE('Timestamp: ' || timestamp);
END;
Tipos de Datos Booleanos y Especiales
Los tipos de datos booleanos permiten almacenar valores de verdadero o falso. En SQL, el tipo de dato BOOLEAN es utilizado para este propósito.
Tipo de dato | Descripción | Datatype | Ejemplo |
---|---|---|---|
BOOLEAN | Almacena valores de verdadero o falso. | BOOLEAN | TRUE |
BIT | Almacena un solo bit de información. | BIT | 1 |
JSON | Almacena datos en formato JSON. | JSON | '{"key": "value"}' |
XML | Almacena datos en formato XML. | XML | ' |
Ejemplo DDL en SQL:
CREATE TABLE configuraciones (
id_config INT PRIMARY KEY,
activo BOOLEAN,
configuracion JSON
);
Ejemplo en PL/SQL:
DECLARE
activo BOOLEAN := TRUE;
configuracion JSON := '{"key": "value"}';
BEGIN
DBMS_OUTPUT.PUT_LINE('Activo: ' || activo);
DBMS_OUTPUT.PUT_LINE('Configuración: ' || configuracion);
END;