Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
-
SQL e PL/SQL
Sommario
Introduzione al Manuale..........................................................................................................................................4
Cap. 1 - Introduzione........................................................................................................................................5
1.1 – Introduzione ad Oracle...................................................................................................................................5
1.2 – SQL*Plus.......................................................................................................................................................5
1.3 – Introduzione all’SQL e al PL/SQL................................................................................................................7
Cap. 2 - Le basi dell’SQL in Oracle................................................................................................................8
2.1 – Elementi base dell’Oracle SQL.....................................................................................................................8
2.2 – Le tabelle EMP e DEPT.................................................................................................................................9
2.3 – Query e Subquery........................................................................................................................................12
2.4 – Le Pseudocolumns.......................................................................................................................................13
Cap. 3 - Comandi SQL Avanzati...................................................................................................................15
3.1 – Clausola WITH............................................................................................................................................15
3.2 – ISO/ANSI standard SQL: il CASE..............................................................................................................15
3.3 – ISO/ANSI standard SQL: Introduzione alla Inner Join...............................................................................17
3.4 – ISO/ANSI standard SQL: Tipi di Inner Join................................................................................................17
3.5 – ISO/ANSI standard SQL: Cross Join e Outer Join......................................................................................19
3.6 – MERGE SQL statement...............................................................................................................................20
3.7 – Altri SQL Statement....................................................................................................................................24
Cap. 4 - Introduzione ai PL/SQL Programs................................................................................................27
4.1 – Il PL/SQL Program Construct e i suoi Componenti....................................................................................27
4.2 – Variabili PL/SQL e non PL/SQL (bind variables).......................................................................................28
4.3 – I Subprograms..............................................................................................................................................29
4.4 – Come invocare una Procedura o Funzione..................................................................................................30
Cap. 5 - Le Procedure.....................................................................................................................................31
5.1 – Cosa è una stored procedure.......................................................................................................................31
5.2 – Creare e droppare una procedura.................................................................................................................31
5.3 – Formal and Actual Parameters.....................................................................................................................32
5.4 – Procedure con Parametri e i tipi di parameter modes..................................................................................34
5.5 – Invocare una procedura con parametri.........................................................................................................35
5.6 – Il subprogram nella declarative section di una Procedura...........................................................................36
5.7 – Come vengono propagate le Exception.......................................................................................................36
Cap. 6 - Le Funzioni........................................................................................................................................38
6.1 – Cosa è una stored function...........................................................................................................................38
6.2 – Creare, Invocare e rimuovere una Funzione................................................................................................38
6.3 – Vantaggi e restrizioni delle chiamate dagli SQL statement.........................................................................40
6.4 – Dove chiamare le Funzioni negli SQL statement........................................................................................41
6.5 – Differenze fra procedure e funzioni.............................................................................................................41
Cap. 7 - I Subprograms..................................................................................................................................42
7.1 – System Privileges, Object Privileges e Grant Privileges.............................................................................42
7.2 – Differenze fra Invokers Rights e Definers Rights........................................................................................43
7.3 – Le viste di dizionario per gestire gli stored objects.....................................................................................44
7.4 – Gestione della Fine Grained Dependency....................................................................................................45
Cap. 8 - I Package...........................................................................................................................................46
8.1 – Creare e Droppare Packages........................................................................................................................46
8.2 – Identificare un Package specification e un Package body...........................................................................47
8.3 – Usare la DESCRIBE per descrivere i package e i suoi componenti............................................................47
8.4 – Disegnare un Package Construct come Public o Private.............................................................................49
8.5 – Invocare un package construct.....................................................................................................................49
8.6 – Usare un bodiless package...........................................................................................................................50
8.7 – I benefit nell’uso dei Package......................................................................................................................50
8.8 – Package che usano l’overloading.................................................................................................................50
8.9 – Usare la Forward Referencing.....................................................................................................................51
8.10 – Inizializzare variabili con una one-time-only procedure............................................................................52
8.11 – Usare le PL/SQL tables e i records nei Package........................................................................................53
Cap. 9 - I Trigger.............................................................................................................................................55
9.1 – Definizione di trigger e Tipi di trigger.........................................................................................................55
9.2 – Progettare i Trigger e per cosa implementarli..............................................................................................55
9.3 – Creare un DML trigger................................................................................................................................56
2 www.manualioracle.it
Oracle 11g – SQL e PL/SQL
www.manualioracle.it 3
Oracle 11g – SQL e PL/SQL
Introduzione al Manuale
Contenuto
In relazione al database Oracle 11.2, il presente manuale tratta:
- le basi dell’SQL
- le basi del linguaggio di programmazione PL/SQL
Audience
Il presente manuale è rivolto a chiunque voglia imparare le basi dell’SQL e del linguaggio PL/SQL.
Particolarità
Il presente manuale è in italiano ma molti termini tecnici in esso contenuti sono in lingua inglese.
Abbiamo fatto tale scelta perché spesso a lavoro tali termini vengono detti in inglese e perché riteniamo più utile che
i lettori del manuale conoscano tali termini nella lingua usata nella documentazione ufficiale Oracle.
Molti argomenti sono schematizzati al fine di fornire una comprensione ed una memorizzazione superiore.
A volte quando nel manuale si parla di una feature particolare, citiamo anche la versione Oracle in cui tale feature è
stata creata.
Principali Versioni
- 17.10.2012 : version 1.0 titolo “Oracle 11g PL/SQL”
- 18.10.2012 : version 1.1 varie modifiche e rilascio al pubblico
- 18.06.2013 : version 2.0 principale modifica: ora viene trattato anche l’SQL avanzato
- 03.01.2014 : version 2.5 varie modifiche e ora si chiama “Oracle 11g SQL Avanzato e PL/SQL”
- 02.11.2015 : version 4.1 varie modifiche sia nella parte SQL che nella parte PL/SQL
- 19.08.2017 : version 5.1 tolto l’SQL avanzato ed inserito l’SQL base
Disclaimer
Non si fornisce alcuna garanzia relativamente al fatto che il presente documento sia privo di errori. Non si assume
nessuna responsabilità sugli eventuali errori o danni derivanti dall’uso delle informazioni qui contenute.
4 www.manualioracle.it
Oracle 11g – SQL e PL/SQL
Cap. 1 - Introduzione
Oracle Server
E’ costituito da 2 principali componenti:
- Il database:
…………..
…………..
…………..
www.manualioracle.it 5
Oracle 11g – SQL e PL/SQL
- Concatenation Operator:
Tramite il “doppio pipe” ( || ) puoi concatenere dati di tipo stringa e CLOB.
Es.:
SELECT 'Name is ' || last_name
FROM emp
ORDER BY last_name;
…………..
…………..
…………..
6 www.manualioracle.it
Oracle 11g – SQL e PL/SQL
www.manualioracle.it 7
Oracle 11g – SQL e PL/SQL
DECLARE -- facoltativo
-- dichiarazioni delle variabili
…
BEGIN -- obbligatorio
…………..
…………..
…………..
8 www.manualioracle.it