CodeGym /Cursos /SQL SELF /Fundamentos de la creación de tablas: CREATE TABLE...

Fundamentos de la creación de tablas: CREATE TABLE

SQL SELF
Nivel 17 , Lección 0
Disponible

En las primeras lecciones sentamos las bases sobre bases de datos relacionales y PostgreSQL, aprendimos a trabajar con psql y pgAdmin, y también a crear y gestionar bases de datos. Ahora es el momento de pasar a crear el "material de construcción" principal de las bases de datos relacionales: las tablas. Justo en las tablas se guarda toda la info que luego podremos filtrar, ordenar o unir.

Para crear tablas en PostgreSQL usamos el comando CREATE TABLE. Este comando describe la estructura de la tabla: su nombre, las columnas y sus tipos de datos.

Estructura general del comando

Así se ve la sintaxis básica:

CREATE TABLE tabla (
    columna1 tipo_de_dato restricciones,
    columna2 tipo_de_dato restricciones,
    ...
);

Vamos por partes:

  • tabla – nombre de la tabla (por ejemplo, students).
  • columna1 – nombre de la columna (por ejemplo, id, name).
  • tipo_de_dato – tipo de dato de la columna (por ejemplo, INTEGER, VARCHAR).
  • restricciones – restricciones para los datos (por ejemplo, NOT NULL, PRIMARY KEY).

Ahora vamos a crear nuestra primera tabla.

Ejemplo de creación de una tabla

Escenario: en una base de datos de aprendizaje necesitamos guardar datos sobre estudiantes. Para eso creamos la tabla students con los campos:

  • id: identificador único del estudiante (se incrementa automáticamente);
  • name: nombre del estudiante (cadena de hasta 100 caracteres);
  • age: edad del estudiante (número entero positivo).
CREATE TABLE students (
    id SERIAL PRIMARY KEY,  -- id único del estudiante
    name VARCHAR(100),      -- nombre
    age INTEGER             -- edad
);

¿Qué pasa aquí?

  1. id SERIAL PRIMARY KEY: se crea la columna id, que genera automáticamente números únicos (1, 2, 3...) para cada fila. Además, es la clave primaria de la tabla.
  2. name VARCHAR(100): se crea una columna de texto, donde VARCHAR(100) significa que la cadena puede tener hasta 100 caracteres.
  3. age INTEGER: se crea una columna numérica para guardar la edad.

Ahora, si ejecutamos esta consulta en psql o pgAdmin, la tabla students se creará.

Tipos de datos para columnas

Al crear una tabla es importante elegir el tipo de dato correcto para cada columna. PostgreSQL ofrece muchos tipos, pero vamos a empezar con los más populares.

Tipo de dato Descripción Ejemplo de valores
INTEGER Números enteros. Perfecto para edad, cantidades, identificadores. 1, 42, 100
VARCHAR(n) Cadena de hasta n caracteres. Ideal para textos con longitud limitada. 'Alice', 'Bob'
TEXT Cadenas sin límite. Se usa para textos largos (por ejemplo, descripción de un producto). 'Texto muy largo...'
DATE Fecha sin hora. Se usa para guardar fechas de nacimiento, eventos. 2023-10-12
BOOLEAN Tipo lógico: TRUE o FALSE. Se usa para flags (por ejemplo, hecho/no hecho). TRUE, FALSE

Cómo elegir el tipo de dato adecuado

  • Si vas a guardar números – usa INTEGER.
  • Para cadenas con límite conocido de longitud – mejor VARCHAR(n).
  • Para texto sin límites – usa TEXT.
  • Fechas y horas guárdalas en DATE o TIMESTAMP.

Ejemplo: creamos la tabla courses

Supón que en nuestra base de datos también necesitamos guardar info sobre cursos. Cada curso tiene:

  • id: identificador único;
  • name: nombre del curso (cadena de hasta 100 caracteres);
  • description: descripción del curso (texto largo);
  • start_date: fecha de inicio del curso.

Código SQL:

CREATE TABLE courses (
    id SERIAL PRIMARY KEY,      -- id único del curso
    name VARCHAR(100),          -- nombre del curso
    description TEXT,           -- descripción
    start_date DATE             -- fecha de inicio
);

Ejercicio práctico

¡Ahora te toca a ti crear una tabla! Aquí va el ejercicio:

  1. Crea la tabla teachers con los campos:
    • id: identificador único.
    • name: nombre del profe (cadena de hasta 50 caracteres).
    • subject: asignatura que da (cadena de hasta 50 caracteres).
    • hire_date: fecha de contratación.

Ejemplo de código para ejecutar:

CREATE TABLE teachers (
    id SERIAL PRIMARY KEY,
    name VARCHAR(50),
    subject VARCHAR(50),
    hire_date DATE
);

Después de ejecutarlo, usa el comando \d teachers en psql para asegurarte de que la tabla se creó.

Errores típicos al crear tablas

Cuando empiezas a trabajar con tablas, pueden aparecer errores. Aquí tienes algunas situaciones comunes:

Error en el nombre de la tabla o columna. En PostgreSQL los nombres no distinguen mayúsculas/minúsculas, pero si usas comillas " alrededor de los nombres, tienes que tener cuidado. Por ejemplo, CREATE TABLE "MyTable" crea la tabla "MyTable", pero mytable no se reconoce como su nombre.

Tipo de dato incorrecto. Si pones un tipo de dato que no existe, la consulta fallará.

CREATE TABLE example (
    column1 TIPO_RARO
);

Esta consulta no se ejecutará porque TIPO_RARO no existe.

Olvidar el PRIMARY KEY. Si te olvidas de poner la clave primaria, la tabla se creará, pero identificar las filas será más complicado.

Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION