Regístrate para acceder a más de 15 cursos gratuitos de programación con un simulador

Tablas Fundamentos de SQL

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.

💡 Si intentas poner algo del tipo equivocado, SQL te avisará y no lo guardará. Por ejemplo, si escribes “hola” en una columna que espera un número, mostrará un error.

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.

Tipo Qué guarda Ejemplo
varchar(n) Texto corto, hasta n caracteres 'Ana', 'Frontend avanzado'
text Texto largo sin límite 'Descripción completa del curso...'

💡 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...\

Tipo Qué guarda Ejemplo
integer Números enteros normales 25, 2025, -3
bigint Números muy grandes 9000000000
real Números con decimales 67.5, 120.4
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.

Tipo Qué guarda Ejemplo
date Solo la fecha '2025-10-07'
timestamp Fecha + hora '2025-10-07 14:30:00'
time Solo la hora '14:30:00'
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 → varchar o text.
  • 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

  1. Editor SQL en línea
  2. Tipos de datos / PostgreSQL (en inglés)
  3. CREATE TABLE / PostgreSQL (en inglés)

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.

Obtener acceso
130
cursos
1000
ejercicios
2000+
horas de teoría
3200
test

Obtén acceso

Cursos de programación para principiantes y desarrolladores experimentados. Comienza tu aprendizaje de forma gratuita

  • 130 cursos, 2000+ horas de teoría
  • 1000 ejercicios prácticos en el navegador
  • 360 000 estudiantes
Al enviar el formulario, aceptas el «Política de privacidad» y los términos de la «Oferta», y también aceptas los «Términos y condiciones de uso»

Nuestros graduados trabajan en empresas como:

Bookmate
Health Samurai
Dualboot
ABBYY