viernes, 3 de julio de 2026

🐘 Creación de Tablas en PostgreSQL


Una vez que hemos creado una base de datos y comprendido los tipos de datos disponibles, el siguiente paso es crear tablas.

Las tablas son el componente principal de una base de datos relacional, ya que almacenan la información en filas y columnas.


🧠 ¿Qué es una tabla?

Una tabla es una estructura que permite almacenar información relacionada sobre una entidad específica.

Por ejemplo:

  • Una tabla clientes almacena información de clientes.
  • Una tabla productos almacena productos.
  • Una tabla facturas almacena facturas.

Cada tabla está formada por:

  • Columnas: Definen qué información se almacenará.
  • Filas: Contienen los datos reales.

Visualmente:

clientes

+----+------------+-------------------+
| id | nombre     | email             |
+----+------------+-------------------+
| 1  | Juan Pérez | juan@email.com    |
| 2  | Ana López  | ana@email.com     |
+----+------------+-------------------+


📐 Sintaxis básica

La instrucción para crear una tabla es CREATE TABLE.

Sintaxis general:

CREATE TABLE nombre_tabla (
    columna1 tipo_dato,
    columna2 tipo_dato,
    columna3 tipo_dato
);
``

Ejemplo:

CREATE TABLE clientes (
    id INTEGER,
    nombre VARCHAR(100),
    email VARCHAR(200)
);

En este ejemplo:

  • clientes es el nombre de la tabla.
  • id, nombre y email son las columnas.
  • Cada columna tiene asociado un tipo de dato.

📦 Crear una tabla dentro de un esquema

Si deseas crear una tabla en un esquema específico, debes anteponer el nombre del esquema.

Sintaxis:

CREATE TABLE esquema.nombre_tabla (
    ...
);

Ejemplo:

CREATE TABLE ventas.clientes (
    id INTEGER,
    nombre VARCHAR(100),
    email VARCHAR(200)
);

La tabla quedará almacenada dentro del esquema ventas.


🔍 Referenciar una tabla de un esquema

Una vez creada, puedes acceder a ella utilizando la notación:

esquema.tabla

Por ejemplo:

SELECT *
FROM ventas.clientes;


📝 Reglas para nombrar tablas

PostgreSQL es bastante flexible, pero existen ciertas reglas y recomendaciones.

Caracteres permitidos

Es recomendable utilizar:

  • Letras (a-z)
  • Números (0-9)
  • Guion bajo (_)

Ejemplos válidos:

clientes
productos
detalle_pedido
ventas2026


Evitar espacios

Aunque PostgreSQL permite nombres con espacios usando comillas dobles, no es recomendable.

Ejemplo:

CREATE TABLE "Mis Clientes" (
    nombre TEXT
);

Cada vez que quieras utilizarla deberás escribir:

SELECT *
FROM "Mis Clientes";

Esto suele complicar el mantenimiento del código.


Evitar caracteres especiales

No es recomendable usar:

-
@
#
$
%
&
/

Ejemplos poco recomendados:

clientes-web
clientes@app
ventas-2026


Longitud máxima

Los identificadores en PostgreSQL tienen un límite de 63 caracteres.

Por ejemplo:

nombre_de_tabla_muy_largo_con_muchos_detalles_y_descripciones

Si se supera el límite, PostgreSQL truncará automáticamente el nombre.

Por ello es recomendable utilizar nombres claros y relativamente cortos.


🔤 Uso de mayúsculas y minúsculas

Este es uno de los temas que más confusión genera cuando alguien comienza a trabajar con PostgreSQL.

Sin comillas dobles

PostgreSQL convierte automáticamente los nombres a minúsculas.

Ejemplo:

CREATE TABLE Clientes (
    Nombre TEXT
);

Internamente PostgreSQL lo almacenará como:

clientes
nombre

Por lo tanto:

SELECT nombre
FROM clientes;

funcionará correctamente.


Con comillas dobles

Si utilizas comillas dobles, PostgreSQL conservará exactamente el nombre indicado.

Ejemplo:

CREATE TABLE "Clientes" (
    "Nombre" TEXT
);

Ahora deberás escribir siempre:

SELECT "Nombre"
FROM "Clientes";
``

Esto generará error:

SELECT nombre
FROM clientes;

Porque PostgreSQL distingue entre:

Clientes
clientes
CLIENTES

cuando se utilizan comillas dobles.


✅ Recomendación sobre nombres

La práctica más común en PostgreSQL es:

  • Utilizar nombres en minúsculas.
  • Separar palabras mediante _.

Ejemplos:

clientes
detalle_pedido
historial_pagos

Evita:

Clientes
DetallePedido
HISTORIALPAGOS

Esto simplifica las consultas y evita errores relacionados con las comillas dobles.


🏗️ Ejemplo con los principales tipos de datos

La siguiente tabla muestra una gran variedad de tipos de datos comunes en PostgreSQL.

CREATE TABLE usuarios (
    id INTEGER,
    nombre VARCHAR(100),
    biografia TEXT,
    edad SMALLINT,
    salario NUMERIC(10,2),
    altura REAL,
    activo BOOLEAN,
    fecha_nacimiento DATE,
    hora_registro TIME,
    fecha_creacion TIMESTAMP,
    identificador UUID,
    configuracion JSONB,
    etiquetas TEXT[]
);

Columnas utilizadas:

id                 -> INTEGER
nombre             -> VARCHAR
biografia          -> TEXT
edad               -> SMALLINT
salario            -> NUMERIC
altura             -> REAL
activo             -> BOOLEAN
fecha_nacimiento   -> DATE
hora_registro      -> TIME
fecha_creacion     -> TIMESTAMP
identificador      -> UUID
configuracion      -> JSONB
etiquetas          -> ARRAY de TEXT


📋 Crear una tabla para un blog

Ejemplo más realista:

CREATE TABLE blog.articulos (
    id INTEGER,
    titulo VARCHAR(200),
    contenido TEXT,
    autor VARCHAR(100),
    fecha_publicacion TIMESTAMP,
    etiquetas TEXT[],
    metadatos JSONB
);

En este caso:

  • titulo almacena el título del artículo.
  • contenido almacena el cuerpo completo.
  • autor almacena el nombre del autor.
  • etiquetas almacena una lista de etiquetas.
  • metadatos almacena información adicional en formato JSON.

🔍 Ver las tablas existentes

Desde psql:

\dt

Ver tablas de un esquema específico:

\dt ventas.*


🗑️ Eliminar una tabla

Si una tabla ya no es necesaria, puede eliminarse mediante:

DROP TABLE clientes;

También se puede indicar el esquema:

DROP TABLE ventas.clientes;


💡 Buenas prácticas

Utiliza nombres descriptivos

✅ Correcto

clientes
productos
facturas
detalle_pedido

❌ Poco descriptivo

tabla1
datos
info


Utiliza minúsculas

✅ Recomendado

clientes
detalle_pedido

❌ Evitar

Clientes
DetallePedido


Mantén consistencia

Si comienzas utilizando nombres en español:

clientes
productos
facturas

evita mezclar con:

customers
products
invoices

La consistencia facilita enormemente el mantenimiento de la base de datos.


✅ Conclusión

Crear tablas en PostgreSQL es un proceso sencillo: basta con definir un nombre y las columnas que almacenarán la información. Sin embargo, elegir correctamente los nombres de tablas y columnas desde el principio ayuda a evitar problemas futuros.

Como regla general:

  • Utiliza nombres descriptivos.
  • Prefiere minúsculas y guiones bajos (_).
  • Evita espacios y caracteres especiales.
  • Crea tablas dentro de esquemas cuando necesites organizar mejor tu base de datos.
  • Selecciona cuidadosamente los tipos de datos para cada columna.

En el siguiente capítulo ya podremos profundizar en las restricciones (constraints), como NOT NULL, PRIMARY KEY, UNIQUE, CHECK y otros mecanismos que permiten garantizar la integridad de los datos.

No hay comentarios:

Publicar un comentario