PostgreSQL, znany jest z zaawansowanych funkcji i elastyczności. Oferuje język programowania PL/pgSQL, który integruje SQL z elementami proceduralnymi. Dzięki integracji SQL w języku PL/pgSQL, programiści mają dostęp do narzędzi do tworzenia funkcji składowanych, procedur oraz wyzwalaczy, co zwiększa możliwości zarządzania danymi w bazie PostgreSQL.
Podstawy SQL w PL/pgSQL
Zapytania SELECT
Podstawowym elementem SQL w PL/pgSQL jest możliwość wykonywania zapytań SELECT, umożliwiających pobieranie danych z bazy. Przykładowe zapytanie SELECT:
DECLARE
imie VARCHAR(50);
BEGIN
SELECT first_name INTO imie FROM employees WHERE employee_id = 1;
-- Teraz zmienna 'imie' zawiera imię pracownika o ID 1
END;
Dodawanie i aktualizacja danych
Instrukcje SQL do dodawania i aktualizacji danych są kluczowe w każdym języku programowania bazodanowego. W PL/pgSQL można używać poniższych konstrukcji:
Dodawanie nowego rekordu:
DECLARE
nowy_pracownik employees%ROWTYPE;
BEGIN
nowy_pracownik.first_name := 'Jan';
nowy_pracownik.last_name := 'Nowak';
INSERT INTO employees VALUES nowy_pracownik;
END;
Aktualizacja danych:
DECLARE
nowe_imie VARCHAR(50);
BEGIN
nowe_imie := 'NoweImie';
UPDATE employees SET first_name = nowe_imie WHERE employee_id = 1;
END;
Usuwanie danych
Usuwanie danych również jest często wykorzystywane w aplikacjach bazodanowych. W PL/pgSQL można używać poniższego kodu:
DECLARE
id_do_usuniecia INT;
BEGIN
id_do_usuniecia := 1;
DELETE FROM employees WHERE employee_id = id_do_usuniecia;
END;
Procedury składowane a SQL
Jednym z najważniejszych zastosowań SQL w PL/pgSQL jest tworzenie procedur składowanych. Procedury te zawierają zarówno standardowe zapytania SQL, jak i bardziej zaawansowane operacje proceduralne. Poniżej znajduje się przykład prostego proceduralnego zastosowania SQL w PL/pgSQL:
CREATE OR REPLACE FUNCTION zwieksz_pensje(employee_id INT, podwyzka DECIMAL) RETURNS VOID AS $$
BEGIN
UPDATE employees SET salary = salary + podwyzka WHERE employee_id = employee_id;
END;
$$ LANGUAGE plpgsql;
W powyższym przykładzie procedura składowana zwieksz_pensje przyjmuje dwie wartości: employee_id i podwyzka. Następnie, za pomocą zapytania UPDATE, aktualizuje pensję pracownika o określonym ID.
Podumowanie
SQL w języku PL/pgSQL wzbogaca możliwości programistyczne PostgreSQL, umożliwiając bardziej zaawansowane operacje bazodanowe. Opanowanie tych technik pozwala na tworzenie bardziej elastycznych i efektywnych funkcji składowanych oraz procedur, co jest kluczowe w większych projektach bazodanowych. Zintegrowanie SQL z elementami proceduralnymi PL/pgSQL stanowi elastyczne narzędzie dla programistów i administratorów baz danych.
Po więcej informacji zapraszamy na szkolenia.