En este tema, aprenderás cómo crear bases de datos y tablas en PostgreSQL. Estos son los bloques de construcción fundamentales para cualquier aplicación que utilice una base de datos. A lo largo de esta sección, cubriremos los siguientes puntos:
- Creación de una Base de Datos
- Creación de Tablas
- Tipos de Datos en PostgreSQL
- Restricciones de Tablas
- Ejemplos Prácticos
- Ejercicios Prácticos
- Creación de una Base de Datos
Para crear una base de datos en PostgreSQL, utilizamos el comando CREATE DATABASE
. Aquí tienes un ejemplo básico:
Explicación:
CREATE DATABASE
es el comando utilizado para crear una nueva base de datos.mi_base_de_datos
es el nombre de la base de datos que estamos creando.
Conectándose a la Base de Datos
Una vez creada la base de datos, puedes conectarte a ella utilizando el comando \c
en el cliente psql:
- Creación de Tablas
Las tablas son donde realmente almacenamos los datos. Para crear una tabla, utilizamos el comando CREATE TABLE
. Aquí tienes un ejemplo básico:
CREATE TABLE empleados ( id SERIAL PRIMARY KEY, nombre VARCHAR(100), puesto VARCHAR(50), salario NUMERIC(10, 2) );
Explicación:
CREATE TABLE empleados
es el comando para crear una nueva tabla llamadaempleados
.id SERIAL PRIMARY KEY
define una columnaid
que es un entero autoincremental y la clave primaria de la tabla.nombre VARCHAR(100)
define una columnanombre
que puede contener hasta 100 caracteres.puesto VARCHAR(50)
define una columnapuesto
que puede contener hasta 50 caracteres.salario NUMERIC(10, 2)
define una columnasalario
que puede contener números con hasta 10 dígitos en total y 2 decimales.
- Tipos de Datos en PostgreSQL
PostgreSQL soporta una amplia variedad de tipos de datos. Aquí hay una tabla con algunos de los tipos de datos más comunes:
Tipo de Dato | Descripción |
---|---|
INTEGER |
Números enteros |
SERIAL |
Entero autoincremental |
VARCHAR(n) |
Cadena de texto de longitud variable, hasta n caracteres |
TEXT |
Cadena de texto de longitud ilimitada |
NUMERIC(p, s) |
Número con precisión p y escala s |
BOOLEAN |
Valores booleanos (TRUE o FALSE ) |
DATE |
Fecha (año, mes, día) |
TIMESTAMP |
Fecha y hora |
- Restricciones de Tablas
Las restricciones son reglas que se aplican a las columnas de una tabla para asegurar la integridad de los datos. Algunas de las restricciones más comunes son:
- PRIMARY KEY: Identifica de manera única cada fila en una tabla.
- FOREIGN KEY: Asegura la integridad referencial entre dos tablas.
- UNIQUE: Asegura que todos los valores en una columna sean únicos.
- NOT NULL: Asegura que una columna no contenga valores nulos.
- CHECK: Asegura que los valores en una columna cumplan una condición específica.
Ejemplo con Restricciones:
CREATE TABLE departamentos ( id SERIAL PRIMARY KEY, nombre VARCHAR(100) NOT NULL UNIQUE, presupuesto NUMERIC(12, 2) CHECK (presupuesto > 0) );
Explicación:
nombre VARCHAR(100) NOT NULL UNIQUE
asegura que la columnanombre
no puede ser nula y debe ser única.presupuesto NUMERIC(12, 2) CHECK (presupuesto > 0)
asegura que elpresupuesto
debe ser mayor que 0.
- Ejemplos Prácticos
Ejemplo 1: Crear una Base de Datos y una Tabla
-- Crear una nueva base de datos CREATE DATABASE empresa; -- Conectarse a la base de datos \c empresa -- Crear una tabla de empleados CREATE TABLE empleados ( id SERIAL PRIMARY KEY, nombre VARCHAR(100), puesto VARCHAR(50), salario NUMERIC(10, 2) );
Ejemplo 2: Crear una Tabla con Restricciones
-- Crear una tabla de departamentos CREATE TABLE departamentos ( id SERIAL PRIMARY KEY, nombre VARCHAR(100) NOT NULL UNIQUE, presupuesto NUMERIC(12, 2) CHECK (presupuesto > 0) );
- Ejercicios Prácticos
Ejercicio 1: Crear una Base de Datos y una Tabla
- Crea una base de datos llamada
biblioteca
. - Conéctate a la base de datos
biblioteca
. - Crea una tabla llamada
libros
con las siguientes columnas:id
(entero autoincremental, clave primaria)titulo
(cadena de texto, máximo 200 caracteres)autor
(cadena de texto, máximo 100 caracteres)anio_publicacion
(entero)precio
(número con 2 decimales)
Solución:
-- Crear la base de datos CREATE DATABASE biblioteca; -- Conectarse a la base de datos \c biblioteca -- Crear la tabla de libros CREATE TABLE libros ( id SERIAL PRIMARY KEY, titulo VARCHAR(200), autor VARCHAR(100), anio_publicacion INTEGER, precio NUMERIC(10, 2) );
Ejercicio 2: Crear una Tabla con Restricciones
- Crea una tabla llamada
clientes
con las siguientes columnas:id
(entero autoincremental, clave primaria)nombre
(cadena de texto, máximo 100 caracteres, no nulo)email
(cadena de texto, máximo 100 caracteres, único)fecha_registro
(fecha, no nulo)
Solución:
-- Crear la tabla de clientes CREATE TABLE clientes ( id SERIAL PRIMARY KEY, nombre VARCHAR(100) NOT NULL, email VARCHAR(100) UNIQUE, fecha_registro DATE NOT NULL );
Conclusión
En esta sección, hemos aprendido cómo crear bases de datos y tablas en PostgreSQL, así como los diferentes tipos de datos y restricciones que podemos aplicar a nuestras tablas. Estos son los fundamentos esenciales para trabajar con bases de datos en PostgreSQL. En el próximo tema, exploraremos cómo insertar datos en nuestras tablas recién creadas.
Curso de PostgreSQL
Módulo 1: Introducción a PostgreSQL
Módulo 2: Operaciones Básicas de SQL
- Creando Bases de Datos y Tablas
- Insertando Datos
- Consultando Datos
- Actualizando Datos
- Eliminando Datos
Módulo 3: Consultas Avanzadas de SQL
Módulo 4: Diseño de Bases de Datos y Normalización
Módulo 5: Características Avanzadas de PostgreSQL
Módulo 6: Ajuste de Rendimiento y Optimización
- Optimización de Consultas
- Estrategias de Indexación
- Análisis del Rendimiento de Consultas
- Vacuuming y Mantenimiento
Módulo 7: Seguridad y Gestión de Usuarios
Módulo 8: Trabajando con JSON y Características NoSQL
Módulo 9: Extensiones y Herramientas Avanzadas
- PostGIS para Datos Geoespaciales
- Búsqueda de Texto Completo
- Wrappers de Datos Externos
- PL/pgSQL y Otros Lenguajes Procedurales