Imagina que estás guardando información sobre tus cursos, tus estudiantes o tus ventas. Сada dato tiene una forma distinta: un nombre, un número, una fecha, un “sí” o “no”. En SQL, para que todo funcione bien, tenemos que decirle a la base de datos qué tipo de dato va en cada columna.
¿Qué son los tipos de datos?
Los tipos de datos son como etiquetas que indican qué puede ir en cada columna. Por ejemplo:
- En una columna de edad, solo puedes poner números.
- En una columna de nombre, solo texto.
- En una columna de fecha, solo fechas.
Así la base de datos sabe cómo guardar, comparar y buscar la información sin confundirse.
Ejemplo
Creamos una tabla para guardar cursos:
CREATE TABLE courses (
id integer,
name varchar(255),
slug varchar(255),
lessons_count integer,
body text
);
Y agregamos algunos cursos:
INSERT INTO courses (id, name, slug, lessons_count, body) VALUES
(1, 'Fundamentos de PHP', 'php-basics', 30, 'Curso sobre los fundamentos de PHP'),
(2, 'POO en Python', 'python-oop', 15, 'Curso sobre POO en Python');
✅ Todo bien: los números van en columnas numéricas y los textos en columnas de texto.
🔵 Abrir en DB Fiddle
Texto (cadenas)
🔤 Se usa para palabras, frases, nombres, títulos o descripciones.
💡 Usa comillas simples 'así' para escribir texto.
CREATE TABLE topics (
title varchar(255),
body text
);
INSERT INTO topics (title, body)
VALUES ('Bienvenida', 'Este curso te ayudará a entender las bases de SQL');
👉 Piensa en varchar como una caja con tamaño fijo y en text como una caja sin tapa.
Números
🔢 Para edades, precios, puntuaciones, cantidad de clases...\
CREATE TABLE users (
id bigint,
age integer,
weight real
);
INSERT INTO users (id, age, weight)
VALUES (1, 35, 68.5);
🔵 Abrir en DB Fiddle
Fechas y horas
📅 Para guardar momentos en el tiempo: creación, cumpleaños, actualizaciones, etc.
CREATE TABLE users (
id bigint,
username varchar(50),
birthday date,
created_at timestamp
);
INSERT INTO users (id, username, birthday, created_at) VALUES
(1, 'Ana', '1995-02-15', '2025-10-07 14:30:00');
🔵 Abrir en DB Fiddle
💡 Es buena práctica agregar created_at y updated_at para saber cuándo se creó o modificó algo.
Lógicos
Para valores “sí” o “no”, “verdadero” o “falso”.
| Tipo | Qué guarda | Ejemplo |
|---|---|---|
boolean |
Verdadero o falso | TRUE, FALSE |
CREATE TABLE users (
id bigint,
username varchar(50),
email_confirmed boolean
);
INSERT INTO users VALUES (1, 'Carlos', TRUE);
INSERT INTO users VALUES (2, 'Lucía', FALSE);
🔵 Abrir en DB Fiddle
💡 Se usa mucho para columnas tipo “activo”, “pagado”, “verificado”.
Valores vacíos (NULL)
A veces no tenemos un dato todavía. Por ejemplo, un estudiante que aún no escribió su comentario. En ese caso usamos NULL (significa “sin valor”).
CREATE TABLE topics (
user_id integer,
body text
);
INSERT INTO topics (user_id, body)
VALUES
(1, '¡Gran curso!'),
(2, NULL);
🔵 Abrir en DB Fiddle
💡 NULL no es lo mismo que 0 o ''. Es literalmente “nada aquí”.
Resumen
- Cada columna en una tabla tiene un tipo de dato.
- Los tipos de datos evitan errores y hacen que la base funcione rápido.
- Texto →
varcharotext. - Números →
integer,bigint,real. - Fechas →
date,timestamp,time. - Lógicos →
boolean(TRUE o FALSE). - Sin valor →
NULL.
Trabajo independiente
Practiquemos un poco creando una tabla.
Estructura students:
id- identificador del estudiante, número entero.first_name- nombre del estudiante, cadena de caracteres.last_name- apellido del estudiante, cadena de caracteres.email- correo electrónico, cadena de caracteres.bio- texto sobre el estudiante. Puede contener mucho texto.is_studing- estado actual del estudiante, si está estudiando o no.updated_at- fecha de actualización del registro.created_at- fecha de creación del registro.
Hemos preparado parte de la consulta en DBFiddle. Entre los comentarios BEGIN y END, escribe la consulta para crear la tabla y presiona Run para verificar el resultado.
Presiona para ver la respuesta
CREATE TABLE students (
id int,
first_name varchar(255),
last_name varchar(255),
email varchar(255),
bio text,
is_studing boolean,
updated_at date,
created_at date
);
Materiales adicionales
Para acceder completo a curso necesitas un plan básico
El plan básico te dará acceso completo a todos los cursos, ejercicios y lecciones de Códica, proyectos y acceso de por vida a la teoría de las lecciones completadas. La suscripción se puede cancelar en cualquier momento.