ArticleslgStudy

science

PL/pgSQL

PL/pgSQL is a science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand PL/pgSQL rather than just read about it. In short: PL/pgSQL (Procedural Language/PostgreSQL) is a procedural programming language supported by the PostgreSQL ORDBMS. It closely resembles Oracle's PL/SQL language.

PL/pgSQL — main illustration
PL/pgSQL — illustration

Key takeaways

  • PL/pgSQL belongs to science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect PL/pgSQL to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of PL/pgSQL from memory before moving on to harder problems.

Reference excerpt

PL/pgSQL (Procedural Language/PostgreSQL) is a procedural programming language supported by the PostgreSQL ORDBMS. It closely resembles Oracle's PL/SQL language. Implemented by Jan Wieck, PL/pgSQL first appeared with PostgreSQL 6.4, released on October 30, 1998. Version 9 also implements some ISO SQL/PSM features, like overloading of SQL-invoked functions and procedures. PL/pgSQL, as a fully featured programming language, allows much more procedural control than SQL, including the ability to use loops and other control structures. SQL statements and triggers can call functions created in the PL/pgSQL language. The design of PL/pgSQL aimed to allow PostgreSQL users to perform more complex operations and computations than SQL, while providing ease of use. The language is able to be defined as trusted by the server. PL/pgSQL is one of the programming languages included in the standard PostgreSQL distribution, the others being PL/Tcl, PL/Perl and PL/Python. In addition, many others are available from third parties, including PL/Java, PL/pgPSM, PL/php, PL/R, PL/Ruby, PL/sh, PL/Lua, Postmodern (based on Common Lisp) and PL/v8. PostgreSQL uses Bison as its parser, making it easy to port many open-source languages, as well as to reuse code.

Comparing with PSM The SQL/PSM language is specified by an ISO standard, but is also inspired by Oracle's PL/SQL and PL/pgPL/SQL, so there are few differences. The PL/pgPSM contributed module implements the standard. The main features of PSM that differ from PL/pgSQL:

Exception handlers are subroutines (continue handlers); Warnings can be handled as an exception; Declaration of variables should be based on SQL query results. All three languages (Oracle PL/SQL, PostgreSQL PL/pgSQL and ISO SQL/PSM) were heavily influenced by the Ada programming language.

Example The following example is a function that computes the sales tax of a given subtotal:

References

External links Official PL/pgSQL documentation

Illustrations

PL/pgSQL illustration

Worked examples

Example 1 — a first encounter with PL/pgSQL

Start with the simplest possible case. Write down what PL/pgSQL claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to PL/pgSQL before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about PL/pgSQL ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of PL/pgSQL

In research
PL/pgSQL appears in science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses PL/pgSQL in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
PL/pgSQL is common in secondary-school and first-year university syllabi. It links to neighbouring topics Data-centric programming languages, PostgreSQL, Programming language topic stubs, so understanding it makes those chapters shorter.
In everyday life
Look for PL/pgSQL outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study PL/pgSQL in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what PL/pgSQL means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain PL/pgSQL out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is PL/pgSQL in simple terms?

PL/pgSQL (Procedural Language/PostgreSQL) is a procedural programming language supported by the PostgreSQL ORDBMS. It closely resembles Oracle's PL/SQL language.

Why does PL/pgSQL matter?

Because it connects several science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study PL/pgSQL?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on PL/pgSQL.

Tags

  • Data-centric programming languages
  • PostgreSQL
  • Programming language topic stubs
  • SQL

Keep exploring