Cristian Caceres Jolianis
Israel es uno de los mejores profesores de Platzi, de verdad disfruto cada curso dictado por el.
Julián Cárdenas
Muy bueno y cordial él!
Cristian Caceres Jolianis
Israel es uno de los mejores profesores de Platzi, de verdad disfruto cada curso dictado por el.
Julián Cárdenas
Muy bueno y cordial él!
Kenny Emmanuel Lajara Aquino
Y así es como pasas de no estar interesado en un curso y hacerlo solo porque está en tu ruta de aprendizaje, a estar emocionado y por realizarlo completo y crear algún proyecto con esta nueva herramienta!
Vladimir Gutierrez
Yo vengo del mundo de Oracle y Plpgsql (postgresql) es casi igual a plsql (oracle). Seguiremos viendo este curso.
Sergio Armando Serrano Becerra
hola vladimir, ya que has utilizado oracle, sabes como tratar los json en oracle en la versión 11, te agradezco.
Vladimir Gutierrez
Sergio, quizas me expresé mal, cuando me referí a que son casi igual, me referia al lenguaje. Con respecto al si oracle trabaja con JSON, he visto que lo trabaja de la siguiente manera : https://docs.oracle.com/en/database/oracle/oracle-database/12.2/adjsn/generation.html#GUID-6C3441E8-4F02-4E95-969C-BBCA6BDBBD9A
Jhon Freddy Tavera Blandon
Procedimientos Almacenados:
PL/pgSQL permite definir procedimientos almacenados, que son bloques de código que se pueden reutilizar para realizar tareas específicas en el lado del servidor de la base de datos.
Control de Flujo: Ofrece estructuras de control de flujo familiares, como bucles, condicionales y manejo de excepciones, lo que facilita la escritura de lógica compleja en la base de datos.
Variables y Tipos de Datos: Soporta variables y tipos de datos, permitiendo almacenar y manipular datos dentro de los procedimientos almacenados.
Triggers: PL/pgSQL se utiliza comúnmente para escribir triggers (disparadores) que responden a eventos en las tablas, ejecutando lógica personalizada antes o después de ciertas operaciones.
Funciones: Permite la creación de funciones que pueden aceptar parámetros y devolver resultados, facilitando la modularidad y reutilización del código.
Manipulación de Datos: Ofrece capacidades completas para manipular datos en la base de datos, incluyendo inserción, actualización y eliminación de registros.
Conexión con SQL: PL/pgSQL está integrado con SQL, lo que permite combinar fácilmente el código procedural con consultas SQL para realizar operaciones complejas y personalizadas.
Optimización de Rendimiento: Al ejecutarse en el servidor de la base de datos, los procedimientos almacenados escritos en PL/pgSQL pueden ser altamente eficientes y contribuir a la optimización del rendimiento.
Seguridad: Puede ayudar a mejorar la seguridad al permitir el encapsulamiento de la lógica de negocio en el servidor de la base de datos, reduciendo la exposición de la lógica a través de la capa de aplicación.
Integración con Transacciones: PL/pgSQL es compatible con transacciones, lo que significa que puedes realizar operaciones atómicas y consistentes a nivel de base de datos.
José Alberto Ortiz Vargas
He trabajado con MySQL, Oracle y SQL Server. PLPGSql suena muy bien, veamos hasta donde podemos alcanzar el potencial de este lenguaje.
Ricardo Andrés Posada Castaño
Imposible dejar de trasnochar con tanta cosa por aprender.....
Camila Mayo Osorio
Clase 12: fundamentos de la programacion en Python y, me hablan de PLPGSQL, no entendi.
Ioannes Schroeder
Les comparto un enlace rápido a la Documentación de PostgreSQL Tiene algo mas de 3 mil páginas si lo descargan en PDF pero depende la versión que descarguen.
Table of Contents
Preface
1. What Is PostgreSQL?
2. A Brief History of PostgreSQL
3. Conventions
4. Further Information
5. Bug Reporting Guidelines
I. Tutorial
1. Getting Started
2. The SQL Language
3. Advanced Features
II. The SQL Language
4. SQL Syntax
5. Data Definition
6. Data Manipulation
7. Queries
8. Data Types
9. Functions and Operators
10. Type Conversion
11. Indexes
12. Full Text Search
13. Concurrency Control
14. Performance Tips
15. Parallel Query
III. Server Administration
16. Installation from Binaries
17. Installation from Source Code
18. Installation from Source Code on Windows
19. Server Setup and Operation
20. Server Configuration
21. Client Authentication
22. Database Roles
23. Managing Databases
24. Localization
25. Routine Database Maintenance Tasks
26. Backup and Restore
27. High Availability, Load Balancing, and Replication
28. Monitoring Database Activity
29. Monitoring Disk Usage
30. Reliability and the Write-Ahead Log
31. Logical Replication
32. Just-in-Time Compilation (JIT)
33. Regression Tests
IV. Client Interfaces
34. libpq — C Library
35. Large Objects
36. ECPG — Embedded SQL in C
37. The Information Schema
V. Server Programming
38. Extending SQL
39. Triggers
40. Event Triggers
41. The Rule System
42. Procedural Languages
43. PL/pgSQL — SQL Procedural Language
44. PL/Tcl — Tcl Procedural Language
45. PL/Perl — Perl Procedural Language
46. PL/Python — Python Procedural Language
47. Server Programming Interface
48. Background Worker Processes
49. Logical Decoding
50. Replication Progress Tracking
51. Archive Modules
VI. Reference
I. SQL Commands
II. PostgreSQL Client Applications
III. PostgreSQL Server Applications
VII. Internals
52. Overview of PostgreSQL Internals
53. System Catalogs
54. System Views
55. Frontend/Backend Protocol
56. PostgreSQL Coding Conventions
57. Native Language Support
58. Writing a Procedural Language Handler
59. Writing a Foreign Data Wrapper
60. Writing a Table Sampling Method
61. Writing a Custom Scan Provider
62. Genetic Query Optimizer
63. Table Access Method Interface Definition
64. Index Access Method Interface Definition
65. Generic WAL Records
66. Custom WAL Resource Managers
67. B-Tree Indexes
68. GiST Indexes
69. SP-GiST Indexes
70. GIN Indexes
71. BRIN Indexes
72. Hash Indexes
73. Database Physical Storage
74. Transaction Processing
75. System Catalog Declarations and Initial Contents
76. How the Planner Uses Statistics
77. Backup Manifest Format
VIII. Appendixes
A. PostgreSQL Error Codes
B. Date/Time Support
C. SQL Key Words
D. SQL Conformance
E. Release Notes
F. Additional Supplied Modules and Extensions
G. Additional Supplied Programs
H. External Projects
I. The Source Code Repository
J. Documentation
K. PostgreSQL Limits
L. Acronyms
M. Glossary
N. Color Support
O. Obsolete or Renamed Features
Bibliography
Index
Hans Arias
Es muy interesante, y bastantes cosas, realmente tiene, me llama mucha la atencion la concurrencia y el performance, pero vaya, hay mucho por aprender solamente con postgres.
Mario Alexander Vargas Celis
PL/pgSQL (Procedural Language/PostgreSQL Structured Query Language) es el lenguaje procedural nativo de PostgreSQL, diseñado para extender la funcionalidad de SQL y permitir la ejecución de lógica más compleja en el servidor de base de datos. Si quieres conocer sus superpoderes, aquí te dejo un resumen de lo que hace especial a PL/pgSQL:
1. Lógica Procedural dentro de la Base de Datos
PL/pgSQL te permite incluir lógica compleja, como condicionales, bucles y manejo de errores, directamente en el servidor de la base de datos. Esto es ideal para casos en los que necesitas que las operaciones sean rápidas y estén cerca de los datos.
Ejemplo:
DO $$ BEGIN FOR i IN 1..10 LOOP INSERT INTO tabla (columna) VALUES (i); END LOOP; END $$;
2. Creación de Funciones y Procedimientos
Con PL/pgSQL, puedes encapsular lógica en funciones o procedimientos, reutilizables y optimizadas.
Ejemplo:
CREATE OR REPLACE FUNCTION suma(a INT, b INT) RETURNS INT AS $$ BEGIN RETURN a + b; END; $$ LANGUAGE plpgsql;
Uso:
SELECT suma(5, 3); -- Devuelve 8
3. Manejo Avanzado de Errores
Puedes capturar, registrar y manejar errores en PL/pgSQL mediante bloques EXCEPTION, lo que proporciona mayor control en escenarios críticos.
Ejemplo:
BEGIN INSERT INTO tabla (id, nombre) VALUES (1, 'Ejemplo'); EXCEPTION WHEN unique_violation THEN RAISE NOTICE 'El registro ya existe.'; END;
4. Estructuras de Control Poderosas
PL/pgSQL ofrece herramientas como:
IF...THEN...ELSE.FOR, WHILE, LOOP.CASE.Ejemplo de condicional:
CREATE OR REPLACE FUNCTION evaluar(valor INT) RETURNS TEXT AS $$ BEGIN IF valor > 0 THEN RETURN 'Positivo'; ELSIF valor < 0 THEN RETURN 'Negativo'; ELSE RETURN 'Cero'; END IF; END; $$ LANGUAGE plpgsql;
5. Disparadores (Triggers)
PL/pgSQL es ideal para escribir triggers (disparadores), que permiten ejecutar lógica automáticamente en respuesta a eventos (INSERT, UPDATE, DELETE).
Ejemplo:
CREATE OR REPLACE FUNCTION actualizar_fecha() RETURNS TRIGGER AS $$ BEGIN NEW.fecha_modificacion := NOW(); RETURN NEW; END; $$ LANGUAGE plpgsql;
CREATE TRIGGER trigger_actualizar_fecha BEFORE UPDATE ON tabla FOR EACH ROW EXECUTE FUNCTION actualizar_fecha();
6. Manipulación de Cursored y Conjuntos de Datos
Puedes trabajar con cursos y procesar resultados fila por fila.
Ejemplo:
DECLARE registro RECORD; BEGIN FOR registro IN SELECT * FROM tabla LOOP RAISE NOTICE 'Procesando: %', registro.columna; END LOOP; END;
7. Optimización de Consultas Repetitivas
Al utilizar PL/pgSQL, las consultas complejas pueden ejecutarse directamente en el servidor, reduciendo la latencia entre la aplicación y la base de datos.
8. Extensibilidad
Puedes combinar PL/pgSQL con otros lenguajes soportados por PostgreSQL, como PL/Python, PL/Perl o PL/Java, para crear soluciones aún más avanzadas.
9. Manipulación Avanzada de JSON/JSONB
PL/pgSQL ofrece soporte nativo para manejar y manipular datos JSON/JSONB, lo que facilita trabajar con datos semi-estructurados.
Ejemplo:
DO $$ DECLARE datos JSONB := '{"nombre": "Mario", "edad": 30}'; BEGIN RAISE NOTICE 'Nombre: %', datos->>'nombre'; END $$;
10. Compatible con Extensiones y Funciones Personalizadas
Gracias a PL/pgSQL, puedes crear extensiones y funciones específicas para tus necesidades, aumentando las capacidades del sistema.
¿Por qué PL/pgSQL es un superpoder?
En resumen, PL/pgSQL transforma a PostgreSQL en algo más que un manejador de bases de datos, convirtiéndolo en una plataforma poderosa para desarrollar aplicaciones complejas directamente dentro del servidor.
Francisco Garcia [C6]
Mi experiencia es con SQL Server, tengo muchas expectativas con PostgreSQL
Ricardo Gomez
Aporte, faltan mencionar las replicas, el acceso remoto y la manera de hacer mantenimiento
JAVIER SANTIAGO SALGADO
Gran infografía!!!
Carlos G
La programación estructurada es un paradigma de desarrollo de software que busca mejorar la claridad, calidad y tiempo de desarrollo de un programa mediante el uso de estructuras de control como la secuencia, selección (if/else) e iteración (bucles), evitando el uso innecesario de la instrucción goto. Este enfoque promueve la creación de código modular, más fácil de entender, mantener y depurar.
Heber Adolfo Buezo Salmeron
¿Solo es esta imagen?
Christian Rangel
PostgreSQL se puede usar para BigData?
Pablo Alejandro Figueroa
PLPGSQL solo lo tiene POSTGRE: VERDADERO LENGUAJE PROCEDURAL solo lo tiene POSTGRE: FALSO
Pablo Alejandro Figueroa
Jhins Ledys Cárdenas Pardo
Que un lenguaje de consultas de bases de datos, entendido com un gestor de bvases de datos, ofrezca la opcion de crear funciones con codigo como en un lenguaje de programación es una herramienta poderosisima. . PostgreSQL sin duda esta muy bien pensado.
Mateo Posada
muy bien