Hecho por: Md. Nazmus Sakib Profesión: Desarrollador Full Stack
Tabla de contenidos
PostgreSQL Inicio · Introducción · Instalación · Primeros pasos · pgAdmin 4 · DBeaver · Operaciones con bases de datos · Base de datos de ejemplo · Sintaxis y operadores · SELECT y cláusulas · Joins · Otras cláusulas clave · Integración con Prisma · Recursos
PostgreSQL Inicio
PostgreSQL es un sistema de base de datos relacional de código abierto, potente y extensible, reconocido por su robustez, escalabilidad y fiabilidad. Es utilizado por empresas como Apple, Instagram y Reddit para almacenar millones de registros y ejecutar lógica de negocio compleja.
Sobre Q2BSTUDIO
En Q2BSTUDIO diseñamos y construimos aplicaciones a medida y software a medida con foco en rendimiento, seguridad y experiencia de usuario. Somos especialistas en inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio con power bi, automatización de procesos, agentes IA e ia para empresas. Si necesitas crear una plataforma sólida sobre PostgreSQL, nuestro equipo puede ayudarte de principio a fin en arquitectura, desarrollo y despliegue. Conoce más sobre nuestro servicio de desarrollo de aplicaciones y software multiplataforma o sobre nuestros servicios cloud en Azure y AWS para alojar y escalar tu base de datos.
PostgreSQL Introducción
Base de datos relacional: almacena datos en tablas con filas y columnas. Código abierto: libre, impulsado por la comunidad y altamente extensible mediante extensiones y tipos avanzados como JSONB. Ejemplo real: Instagram utiliza PostgreSQL para usuarios, fotos, likes, comentarios y relaciones.
Instalación de PostgreSQL
Ubuntu: sudo apt update; sudo apt install postgresql postgresql-contrib
macOS Homebrew: brew install postgresql
Windows: Descarga el instalador desde PostgreSQL Official Site
Primeros pasos con PostgreSQL
Arrancar el servicio: sudo service postgresql start
Acceder a la consola psql: sudo -u postgres psql
Crear base de datos: CREATE DATABASE shop;
Crear usuario y permisos: CREATE USER shopuser WITH PASSWORD $$strongpassword$$; GRANT ALL PRIVILEGES ON DATABASE shop TO shopuser;
pgAdmin 4
pgAdmin 4 es la interfaz gráfica oficial para PostgreSQL. Permite administrar bases de datos, ejecutar consultas, visualizar estadísticas y gestionar objetos desde el navegador.
DBeaver cliente universal
DBeaver es una herramienta de administración y análisis que soporta PostgreSQL y muchos motores más. Úsala para modelado visual, diagramas ER, consultas y análisis de datos. En escenarios reales, equipos de datos exploran historiales de compra y tendencias de ventas de PostgreSQL para impulsar decisiones de negocio.
Operaciones de Base de Datos
CREATE TABLE
CREATE TABLE customers ( id SERIAL PRIMARY KEY, name VARCHAR(100), email VARCHAR(100), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
Caso real: Una tienda online almacena información de clientes.
INSERT INTO
INSERT INTO customers (name, email) VALUES ($$Sakib$$, $$sakib@gmail.com$$);
Caso real: Registro de nuevos usuarios.
SELECT
SELECT * FROM customers;
Caso real: El panel de administración lista todos los clientes.
Añadir columna
ALTER TABLE customers ADD COLUMN phone VARCHAR(20);
Caso real: Agregar soporte para números de móvil.
UPDATE
UPDATE customers SET email = $$sakib@outlook.com$$ WHERE id = 1;
Caso real: Un usuario actualiza su correo.
Modificar tipo de columna
ALTER TABLE customers ALTER COLUMN phone TYPE VARCHAR(30);
Caso real: Aceptar números más largos.
Eliminar columna
ALTER TABLE customers DROP COLUMN phone;
Caso real: Retirar campos innecesarios.
DELETE
DELETE FROM customers WHERE id = 1;
Caso real: Cumplir solicitudes de borrado por GDPR.
DROP TABLE
DROP TABLE customers;
Caso real: Eliminar tablas heredadas tras una migración.
Crear base de datos de ejemplo
CREATE DATABASE demo; \c demo; CREATE TABLE products ( id SERIAL PRIMARY KEY, title VARCHAR(100), price NUMERIC ); INSERT INTO products (title, price) VALUES ($$Laptop$$, 1200), ($$Mouse$$, 25);
Caso real: Gestión de inventario para una tienda de electrónica.
Sintaxis y operadores
Sintaxis básica: SELECT column1, column2 FROM table_name WHERE condition;
Operadores: =, <>, <, >, <=, >=, AND, OR, NOT, IN, BETWEEN, LIKE
Ejemplo: SELECT * FROM products WHERE price > 100 AND title LIKE $$%top%$$;
SELECT y cláusulas
SELECT SELECT * FROM products;
SELECT DISTINCT SELECT DISTINCT title FROM products;
WHERE SELECT * FROM products WHERE price > 500;
ORDER BY SELECT * FROM products ORDER BY price DESC;
LIMIT SELECT * FROM products LIMIT 5;
MIN y MAX SELECT MIN(price), MAX(price) FROM products;
COUNT SELECT COUNT(*) FROM products WHERE price > 500;
SUM SELECT SUM(price) FROM products;
AVG SELECT AVG(price) FROM products;
LIKE SELECT * FROM products WHERE title LIKE $$Lap%$$;
IN SELECT * FROM products WHERE price IN (25, 1200);
BETWEEN SELECT * FROM products WHERE price BETWEEN 100 AND 1300;
AS alias SELECT title AS nombre_producto, price AS coste FROM products;
Joins en PostgreSQL
INNER JOIN SELECT orders.id, customers.name FROM orders INNER JOIN customers ON orders.customer_id = customers.id;
LEFT JOIN SELECT orders.id, customers.name FROM orders LEFT JOIN customers ON orders.customer_id = customers.id;
RIGHT JOIN SELECT orders.id, customers.name FROM orders RIGHT JOIN customers ON orders.customer_id = customers.id;
FULL JOIN SELECT orders.id, customers.name FROM orders FULL JOIN customers ON orders.customer_id = customers.id;
CROSS JOIN SELECT customers.name, products.title FROM customers CROSS JOIN products;
UNION SELECT name FROM customers UNION SELECT title FROM products;
GROUP BY SELECT customer_id, COUNT(*) AS order_count FROM orders GROUP BY customer_id;
HAVING SELECT customer_id, COUNT(*) AS order_count FROM orders GROUP BY customer_id HAVING COUNT(*) > 5;
EXISTS SELECT name FROM customers WHERE EXISTS ( SELECT 1 FROM orders WHERE orders.customer_id = customers.id );
ANY SELECT * FROM products WHERE price = ANY ( SELECT price FROM products WHERE price < 100 );
ALL SELECT * FROM products WHERE price > ALL ( SELECT price FROM products WHERE price < 1000 );
CASE SELECT title, price, CASE WHEN price > 1000 THEN $$Caro$$ ELSE $$Asequible$$ END AS categoria FROM products;
Integración de Prisma con PostgreSQL
Prisma es un ORM de nueva generación para Node.js y TypeScript que ofrece acceso a base de datos seguro, rápido y con tipos. Define tu esquema en schema.prisma, genera un cliente tipado y consulta tu base de datos con facilidad.
Instalación y configuración
npm install @prisma/client; npx prisma init
Configura tu conexión en .env: DATABASE_URL=postgresql://shopuser:strongpassword@localhost:5432/shop
Ejemplo de esquema Prisma
model Customer { id Int @id @default(autoincrement()) name String email String @unique orders Order[] }
model Order { id Int @id @default(autoincrement()) product String customerId Int customer Customer @relation(fields: [customerId], references: [id]) }
Migraciones
npx prisma migrate dev --name init
Consultas típicas
Crear cliente, listar clientes y crear pedidos relacionados con seguridad tipada usando el cliente Prisma. Filtra, pagina y realiza joins implícitos mediante relaciones definidas en el esquema.
Casos de uso reales
Ecommerce: Clientes, Pedidos, Productos con integridad referencial, índices y auditoría.
Blog y CMS: Usuarios, Posts, Comentarios con búsquedas y filtros.
Analytics: Eventos en JSONB, agregaciones SQL y visualización con power bi dentro de servicios inteligencia de negocio.
Sanidad: Pacientes, Doctores, Citas y cumplimiento normativo.
Educación: Alumnos, Cursos, Matriculaciones y progreso.
Seguridad y despliegue
Implemente cifrado en tránsito con TLS, políticas de acceso por roles y copias de seguridad automatizadas. Combine PostgreSQL con servicios cloud aws y azure para alta disponibilidad, escalado y observabilidad. La ciberseguridad y el pentesting continuo son claves para proteger datos sensibles.
Recursos
Documentación oficial de PostgreSQL · Descargar pgAdmin · Descargar DBeaver · Documentación de Prisma · Awesome PostgreSQL · Tutorial de SQL
Conclusión
PostgreSQL y Prisma juntos permiten construir aplicaciones escalables, de alto rendimiento y seguras para cualquier necesidad real. Si buscas acelerar tu proyecto con aplicaciones a medida, ia para empresas, agentes IA, ciberseguridad y despliegues en la nube, en Q2BSTUDIO estamos listos para ayudarte de principio a fin.