ΑΠΟΘΗΚΕΥΜΕΝΕΣ ΔΙΑΔΙΚΑΣΙΕΣ

Σχετικά έγγραφα
ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ

Postgress ΣΤΟΧΟΣ ΣΧΕΤΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ ΥΛΙΚΟ. ΠΕΡΙΒΑΛΛΟΝ ΓΙΑ ΕΞΑΣΚΗΣΗ pgadmin ΥΠΟΒΑΘΡΟ. Συναρτήσεις στην PostgreSQL. 1. Γενικά

ΕΝΑΥΣΜΑΤΑ ΣΤΗΝ POSTGRES

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ

( Boats)) ( Tempsids, bid. sname. Boats. Boats. Boats. (Reserves)/ > Reserves. Interlake' Sailors) ...

Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions)

H SQL είναι η γλώσσα για όλα τα εμπορικά σχεσιακά συστήματα διαχείρισης βάσεων δεδομένων

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι Ενότητα 3:

Οι εντολές CREATE TABLE, ALTER TABLE, CREATE KEY, ALTER KEY.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

Ενεργές ΒΔ. Παύλος Εφραιμίδης pefraimi <at> ee.duth.gr. Βάσεις Δεδομένων Ενεργές ΒΔ 1

Οι εντολές CREATE TABLE, ALTER TABLE, CREATE KEY, ALTER KEY.

Βάσεις Δεδομένων (Databases)

Βάσεις Δεδομένων Ι SQL Μέρος 3 ο. (Constraints & Joins) Φώτης Κόκκορας (MSc/PhD) Τμήμα Μηχανικών Πληροφορικής ΤΕ

Ηλεκτρονικοί Υπολογιστές II

PL/SQL. Κώστας Στεφανίδης

ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ. Ακαδημαϊκό Έτος , Εαρινό Εξάμηνο Διδάσκων Καθ.: Νίκος Τσαπατσούλης

Πανεπιστήµιο Ιωαννίνων Τµήµα Μαθηµατικών Μάθηµα: Βάσεις εδοµένων (741) Εργαστηριακό Τεστ Οµάδα: Α 18/11/2004

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. 4ο Μάθημα: SQL - Παράδειγμα. Δρ. Κωνσταντίνος Χ.

ΕΠΛ 342 Βάσεις εδοµένων

Βάσεις Δεδομένων ΗγλώσσαSQL (Structured Query Language)

Ακεραιότητα και Ασφάλεια Μέρος 1 Σχεδιασμός Βάσεων Δεδομένων

Τμήμα Διοίκησης Επιχειρήσεων

Βάσεις Δεδομένων Η γλώσσα SQL (Structured Query Language) Εισαγωγή στην SQL (2) Ιστορικά Στοιχεία. SQL - Structured Query Language (1)

Σχεδιασμός Πληροφοριακών Συστημάτων. Σημειώσεις

SQL: Αιτήματα. Κεφάλαιο 5. Database Management Systems, R. Ramakrishnan and J. Gehrke

(Μέρος 3:Γλώσσα Ορισµού, Γλώσσα Τροποποίησης, Ενσωµατωµένη SQL) Βάσεις εδοµένων Ευαγγελία Πιτουρά 2

Εργαστήριο Βάσεων Δεδομένων. Triggers

Ορισμοί Σχεσιακού Μοντέλου και (απλές)τροποποιήσεις Σχέσεων στην SQL. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Το σχεσιακό μοντέλο βάσεων δεδομένων

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε.

Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ. Ε. Χρήσιμοι Σύνδεσμοι

Παράδειγμα Insert Update Delete Alter.. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγή στη MySQL (2)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

Η SQL αποτελείται από δύο υποσύνολα, τη DDL και τη DML.

Βάσεις Δεδομένων 5η εργαστηριακή άσκηση

ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL

ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL

Σχεδιασμός Βάσεων Δεδομένων

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 9β: SQL (Διαχείριση εγγραφών, Όψεις, Περιορισμοί, Εναύσματα) Ευαγγελίδης Γεώργιος. Τμήμα Εφαρμοσμένης Πληροφορικής

Βάσεις δεδομένων. (10 ο μάθημα) Ηρακλής Βαρλάμης

2 ο Σύνολο Ασκήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Βάσεις Δεδομένων (4 ο εξάμηνο) Εργαστήριο MySQL #3

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. 3ο Μάθημα: Εισαγωγή στην SQL. Δρ. Κωνσταντίνος Χ.

Εργαστήριο Βάσεων Δεδομένων

Φυσική Σχεδίαση Υλοποίηση βάσης

Σχεδίαση και λειτουργία βάσης δεδομένων Το παράδειγμα της μαιευτικής κλινικής Ευάγγελος Καρβούνης

Βάσεις Περιβαλλοντικών Δεδομένων


9η Εργαστηριακή Άσκηση: Stored Procedures - Triggers. Αποθηκευμένες Διαδικασίες (Stored Procedures):

Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

Σχεδίαση και Χρήση Βάσεων Δεδομένων. Χρήση του DBDesigner. Γιώργος Πυρουνάκης - forky@di.uoa.gr

Εισαγωγή στην πληροφορική

ΕΠΛ 342 Βάσεις εδοµένων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 3) Ουρανία Σμυρνάκη

Βάσεις Δεδομένων. Εισαγωγή για το Εργαστήριο. Δρ. Τιάκας Ελευθέριος. Τμήμα Πληροφορικής ΑΠΘ

Ανάκτηση Δεδομένων (Information Retrieval)

Διαχείριση Πολιτισμικών Δεδομένων

ΘΕΜΑΤΑ. Ερώτηση 1 Κατά τη Φυσική Αποθήκευση (Physical storage) μιας ΒΔ αποθηκεύονται στον δίσκο τα:

Διάλεξη 07: Σχεσιακό Μοντέλο II (Relational Data Model) Διδάσκων: Παναγιώτης Ανδρέου

Το Σχεσιακό μοντέλο και η γλώσσα SQL

Έχουµε την βάση της σχολής που αποτελείται από τους παρακάτω πίνακες.

Ηλεκτρονικοί Υπολογιστές II

S Q Q L L -- SQL (Structured Query Language) select insert update delete 2.47

Εργαστήριο βάσεων δεδομένων. MySQL Stored Procedures

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ

Τμήμα Πληροφορικής ΑΠΘ

Διάλεξη 16: SQL DML IV, SQL DCL, SQL TCL. Διδάσκων: Παναγιώτης Ανδρέου

ΗΓλώσσαSQL. Εισαγωγή Βασικές Έννοιες Τύποι Δεδομένων Ορισμός Δεδομένων Χειρισμός Δεδομένων

10 η Διάλεξη Python Βάσεις δεδομένων στη python

Αρχεία και Βάσεις Δεδομένων

BΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΕΞΕΤΑΣΗ ΦΕΒΡΟΥΑΡΙΟΥ 2013


SQL: Συναρτήσεις Συνάθροισης

Βάσεις Δεδομένων Ι [Σημειώσεις Εργαστηρίου]

SQL Τύποι Δεδομένων Δημιουργία Πίνακα Παράδειγμα.. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγή στη MySQL (1)

Εξεταστική Περίοδος Ιουνίου 2004

Εργαστήριο βάσεων δεδομένων. Εισαγωγή στη MySQL (2)

ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΓΡΕΒΕΝΑ)

Βάσεις Δεδομένων Ι [Σημειώσεις Εργαστηρίου]

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Μανουσόπουλος Χρήστος

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - SQL

Query-by-Example (QBE)

Εργαστήριο βάσεων δεδομένων. Εισαγωγή στη MySQL (2)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

ΚΕΦΑΛΑΙΟ ΤΡΙΤΟ ΕΝΤΟΛΕΣ SQL

ΤΑΞΙΝΟΜΗΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΕΡΩΤΗΜΑΤΟΣ

Διάλεξη 17: Προγραμματισμός Βάσης Δεδομένων Ι. Διδάσκων: Παναγιώτης Ανδρέου

. Εργαστήριο Βάσεων Δεδομένων. Stored Procedures

Βάςεισ Δεδομζνων Ι. Ενότητα 7: Ειςαγωγή ςτην γλώςςα_sql. Δρ. Σςιμπίρθσ Αλκιβιάδθσ Σμιμα Μθχανικϊν Πλθροφορικισ ΣΕ

Παράδειγμα Select Introduction Group By Join Aliases.. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγή στη MySQL (3)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI

Transcript:

ΑΠΟΘΗΚΕΥΜΕΝΕΣΔΙΑΔΙΚΑΣΙΕΣ ΓΕΝΙΚΑ Οι αποθηκευμένες διαδικασίες είναι τμήματα προγράμματος Βάσης Δεδομένων (διαδικασίες\procedures ή συναρτήσεις\functions) που αποθηκεύονται μόνιμα και εκτελούνταιστονδιακομιστήτηςβάσηςδεδομένων. Έχουνταπαρακάτωχαρακτηριστικά: ΑποθηκεύονταικαιτρέχουνστονδιακομιστήτηςΒάσης. ΚαλούνταιμετοόνοματουςαπόοποιαδήποτεεφαρμογήσυνδεθείμετηΒάση. Ηεφαρμογήμπορείναχωριστείσεδύομέρη: Ηεφαρμογήτρέχειστονπελάτη Ηαποθηκευμένηδιαδικασίαστονδιακομιστή. Περιέχει προγραμματιστικές εντολές (if, loops) αλλά ταυτόχρονα μπορεί να χειριστείsqlκώδικα. Επίσης,μπορούνναχρησιμοποιηθούνγιαένααπότουςπαρακάτωλόγους: Γιαέλεγχοπολύπλοκωνπεριορισμών. Γιααπόκρυψητουκώδικατηςδιαδικασίας. Γιαδημιουργίαβιβλιοθήκηςέτοιμωνσυναρτήσεωνστονδιακομιστή. ΓιαδημιουργίαDataWebServicesμεβάσητιςαποθηκευμένεςδιαδικασίες. Τασημαντικότεραπλεονεκτήματάτους,είναι: 1. ΒελτιώνουντηνασφάλειατουDBMS.Υποστηρίζουντο«κρύψιμο»(encapsulation) του κώδικα τους, και με σωστό σχεδιασμό και τη συστηματική χρήση τους είναι δυνατόνναεξαφανιστείηδομήτηςβάσηςαπότουςχρήστες. 2. ΒελτιώνειτηνταχύτητααπόκρισηςτουεξυπηρετητήτηςΒάσης.Αυτόοφείλεταιστο ότιείναιπρομεταγλωττισμένες(precompiled)καιέτσιεκτελούνταιγρηγορότερα. 3. Τέλος, αντικαθιστώντας ένα σύνολο SQL εντολών με την κλήση μιας συνάρτησης που περιέχει όλες αυτές τις SQL εντολές, «ελαφρύνει» την κίνηση στο δίκτυο μεταξύ πελάτη και διακομιστή. Για παράδειγμα, αν η συνάρτηση περιέχει 10 SQL εντολέςτότεανεκτελέσουμεξεχωριστάκάθεsqlεντολήστονπελάτηθαέχουμε10 κλήσειςτηςβάσηςστονεξυπηρετητήενώανόλεςοιsqlεντολέςέχουνοργανωθεί

σε μία καταχωρημένη διεργασία τότε θα απαιτείται μία κλήση της βάσης στον εξυπηρετητή,γιανακληθείμόνοηδιαδικασία. ΤΡΟΠΟΣΥΛΟΠΟΙΗΣΗΣ ΟτρόποςυλοποίησηςμιαςαποθηκευμένηςδιαδικασίαςδιαφέρειαπόΣΔΒΔσεΣΔΒΔ.Δύο είναιοιπιθανοίτρόποιυλοποίησης: 1. εσωτερικάστοσδβδμεχρήσηsqlεντολώνκαιονομάζεταιsqlstoredprocedure 2. εξωτερικάσεμίαγλώσσαπρογραμματισμού. Εδώθαπαρουσιάσουμεμόνοτηνπρώτηπερίπτωση,ηοποίαχωρίζεταισεδύοκατηγορίες. ΣτιςδιαδικασίεςπουχρησιμοποιούνμόνοSQLεντολέςκαισεαυτέςπουχρησιμοποιούνκαι προγραμματιστικέςεντολέςόπωςif THEN ELSE,LOOPsκτλ. ΗσύνταξημίαςσυνάρτησηςστηνPOSTGRESείναι: CREATE FUNCTION όνοµα_συνάρτησης(τύπος_παρ 1,τύπος_παρ 2,,τύπος_παρ n ) RETURNS τύπος AS $$ Λίσταεντολών $$ LANGUAGE SQL ή plpgsql; SQLδιαδικασίες ΤαβασικάχαρακτηριστικάτωνδιαδικασιώνπουχρησιμοποιούνμόνοSQLεντολέςείναιτα παρακάτω: ΟιSQLσυναρτήσειςεκτελούνμίαλίστααπόSQLεντολές. Στην απλή περίπτωση επιστρέφουν την πρώτη γραμμή(εγγραφή) του αποτελέσματος τηςτελευταίαςεντολής. Υπάρχει η δυνατότητα να επιστρέψουν και μία συλλογή από γραμμές του αποτελέσματος. Ανητελευταίαεντολήδενεπιστρέφεικαθόλουεγγραφέςεπιστρέφεταιητιμήvoid. ΤοσώμαμιαςSQLσυνάρτησηςπρέπειναείναιμιαλίσταμιαςήπερισσότερωνεντολών SQL,χωρισμένωνμεερωτηματικό(;).

Παράδειγμαvoidσυνάρτησης create function createdb() returns void AS $$ create table Sailors (sid integer not null, sname varchar(15), rating integer, age real, primary key(sid)); create table Boats (bid integer not null, bname char(20), color char(20), primary key(bid), constraint b_color check (color in ('red', 'green', 'blue', 'yellow')) ); create table Reserves (sid integer not null, bid integer not null, day1 date not null, primary key (sid, bid, day1), constraint r_sid foreign key(sid) references Sailors on delete cascade on update cascade, constraint r_bid foreign key(bid) references Boats on delete cascade on update cascade); ΗκλήσημίαςσυνάρτησηςγίνεταιωςSELECTαίτημαμεκλήσητηςσυνάρτησης. SELECT CREATEDB(); Παράδειγμασυνάρτησηςπουεπιστρέφειέναναπλόβασικότύπο CREATE FUNCTION add_em(integer, integer) RETURNS integer AS $$ SELECT $1 + $2; SELECT add_em(1, 2) AS answer; Ηστήλητουαποτελέσματοςθαέχειόνομαanswer.Ανπαραληφθείτο«ASanswer»τότετο όνοματουαποτελέσματοςθαείναιτοόνοματηςσυνάρτησης. ΣεμίασυνάρτησηείναιδυνατόνναομαδοποιηθούνένασύνολοδιαφορετικώντύπωνSQL εντολών. Εκτός από SELECT εντολές μπορούν να συμπεριληφθούν και οι INSERT, UPDATE και DELETE. Η τελευταία εντολή, όμως, θα πρέπει να είναι μία SELECT της οποίας το αποτέλεσμάτηςθαείναικαιηεπιστρεφόμενητιμήτηςσυνάρτηση.ανπάλι,δεθέλουμενα

μας επιστραφεί καμία τιμή τότε θα βάλουμε σαν επιστρεφόμενο τύπο της συνάρτηση το void.σεαυτήτηνπερίπτωσηητελευταίαεντολήδεθαπρέπειναείναιselect. Παράδειγμασυνάρτησηςπουεπιστρέφειένανσύνθετοτύπο Ότανορίζουμεσυναρτήσειςμεπαραμέτρουςσύνθετωντύπων,πρέπειναπροσδιορίσουμε όχιμόνοποιαπαράμετροθέλουμε(όπωςκάναμεμετα$1και$2)αλλάκαιταπεδίααυτής της παραμέτρου. Στο ακόλουθο παράδειγμα ο emp είναι ένας πίνακας υπαλλήλων. Ως εκ τούτου, είναι και το όνομα του σύνθετου τύπου κάθε γραμμής του πίνακα. Η συνάρτηση double_salaryυπολογίζειτοδιπλάσιοτουμισθούκάποιουυπαλλήλου: CREATE TABLE emp ( name varchar(20) primary key, salary integer, age integer ); CREATE FUNCTION double_salary(emp) RETURNS integer AS $$ SELECT $1.salary * 2 AS salary; Κλήση SELECT name, double_salary(emp) AS dream FROM emp WHERE emp.name = 'Maria'; ή SELECT name, double_salary(emp.*) AS dream FROM emp WHERE emp.name = 'Maria'; ΌλεςοιSQLσυναρτήσειςμπορούνναχρησιμοποιηθούνστοτμήμαFROMενόςquery.Αυτό είναι ιδιαίτερα χρήσιμο για συναρτήσεις που επιστρέφουν σύνθετους τύπους. Εάν η συνάρτησηέχειοριστείναεπιστρέφειέναβασικότύπο,τότεηχρήσητηςστηθέσηπίνακα παράγειέναμονόστηλοπίνακα.εάνησυνάρτησηέχειοριστείναεπιστρέφειένασύνθετο τύπο, τότε η χρήση της στη θέση πίνακα παράγει μια στήλη για κάθε χαρακτηριστικό του σύνθετουτύπου. Στοακόλουθοπαράδειγμαδημιουργούμετονπίνακαfooκαιεισάγουμετρειςεγγραφές: CREATE TABLE Atable (id int, subid int, name varchar(10));

INSERT INTO Atable VALUES (1, 1, 'Joe'); INSERT INTO Atable VALUES (1, 2, 'Ed'); INSERT INTO Atable VALUES (2, 1, 'Mary'); Δημιουργούμετηνσυνάρτηση: CREATE FUNCTION geta(int) RETURNS Atable AS $$ SELECT * FROM Atable WHERE id = $1; καιτηνκαλούμεμεπαράμετροτηντιμή1: SELECT * FROM geta(1) AS t1; Ανκαιτοαποτέλεσματηςθαέπρεπεναείναιδύογραμμέςμαςεπιστρέφειμόνομία.Γιανα μπορέσουμε να πάρουμε όλα τα αποτελέσματα θα πρέπει να χρησιμοποιήσουμε τον τελεστήsetofστοreturnsτμήματηςδήλωσηςτηςσυνάρτησης.ότανμιαsqlσυνάρτηση έχειδηλωθείναεπιστρέφειsetofκάποιουτύπου,ητελικήεντολήselectτηςσυνάρτησης εκτελείται μέχρι τέλους, και κάθε γραμμή που παράγει επιστρέφεται ως ένα στοιχείο του συνόλου αποτελεσμάτων. Αυτό το χαρακτηριστικό χρησιμοποιείται κανονικά όταν η συνάρτησηκαλείταικαιστοτμήμαfrom. Τροποποίησητουπροηγούμενουπαραδείγματοςγιαναπάρουμεόλατααποτελέσματα. CREATE FUNCTION getb(int) RETURNS SETOF Atable AS $$ SELECT * FROM Atable WHERE id = $1; SELECT * FROM getb(1) AS t1; plpgsqlδιαδικασίες Μεχρήσητηςγλώσσαςplpgsqlέχουμεστηδιάθεσημαςόλαταπρογραμματιστικάεργαλεία πουέχουμεσεμίαγλώσσαπρογραμματισμού. Δήλωσημεταβλητών: ΓιαναδηλώσουμεμίαμεταβλητήχρησιμοποιούμετηνεντολήDECLARE. DECLARE metablitia integer; DECLARE metablitib integer := 1;

IF THEN ELSE: Για να χρησιμοποιήσουμε την εντολή IF THEN ELSE στην plpgsql θα πρέπει να ακολουθήσουμετηνπαρακάτωσύνταξη: IF boolean-expression THEN ELSIF boolean-expression THEN ELSIF boolean-expression THEN... ELSE END IF; CASE: ΓιαναχρησιμοποιήσουμετηνεντολήCASEστηνplpgsqlθαπρέπειναακολουθήσουμετην παρακάτωσύνταξη: CASE search-expression WHEN expression [, expression [... ]] THEN [ WHEN expression [, expression [... ]] THEN... ] [ ELSE ] END CASE; FOR LOOP: Για να χρησιμοποιήσουμε την εντολή FOR στην plpgsql θα πρέπει να ακολουθήσουμε την παρακάτωσύνταξη: [ <<label>> ] FOR name IN [ REVERSE ] expression.. expression [ BY expression ] LOOP END LOOP [ label ]; WHILE LOOP: ΓιαναχρησιμοποιήσουμετηνεντολήWHILEστηνplpgsqlθαπρέπειναακολουθήσουμετην παρακάτωσύνταξη:

[ <<label>> ] WHILE boolean-expression LOOP END LOOP [ label ]; Περισσότεραμπορείτεναβρείτεστο http://www.postgresql.org/docs/9.1/static/plpgsql.html