Sei sulla pagina 1di 432

Introduzione a Oracle9i : SQL

Guida per lo studente • Volume 1

40049IT11

Versione 1.1

Gennaio 2002

D34260

Introduzione a Oracle9 i : SQL Guida per lo studente • Volume 1 40049IT11 Versione 1.1

Autori

Nancy Greenberg

Priya Nathan

Contributi tecnici e revisioni

Josephine Turner

Martin Alvarez

Anna Atkinson

Don Bates

Marco Berbeek

Andrew Brannigan

Laszlo Czinkoczki

Michael Gerlach Sharon Gray Rosita Hanoman Mozhe Jalali Sarah Jones Charbel Khouri Christopher Lawless Diana Lorentz Nina Minchen Cuong Nguyen Daphne Nougier Patrick Odell Laura Pezzini Stacey Procter Maribel Renau Bryan Roberts Helen Robertson Sunshine Salmon Casa Sharif Bernard Soleillant Craig Spoonemore Ruediger Steffan Karla Villasenor Andree Wheeley Lachlan Williams

Editore

Nita Brozowski

Copyright © Oracle Corporation, 2000, 2001. Tutti i diritti riservati.

Questa documentazione contiene informazioni di proprietà della Oracle Corporation e viene distribuita sulla base di condizioni di licenza che prevedono restrizioni relative all'uso e alla divulgazione ed è protetta altresì dalle leggi vigenti sul copyright. La decodificazione del software è vietata salvo i casi espressamente previsti dalla legge. Limitazioni dei diritti per il Governo degli Stati Uniti

Restricted Rights Legend

Use, duplication or disclosure by the Government is subject to restrictions for commercial computer software and shall be deemed to be Restricted Rights software under Federal law, as set forth in subparagraph (c)(1)(ii) of DFARS 252.227-7013, Rights in Technical Data and Computer Software (October 1988).

If this documentation is delivered to a U.S. Government Agency not within the Department of Defense, then it is delivered with "Restricted Rights," as defined in FAR 52.227-14, Rights in Data-General, including Alternate III (June 1987).

Nessuna parte di questo materiale può essere copiata in alcuna forma e con alcun mezzo senza previa autorizzazione della Oracle Corporation. L'esecuzione di copie è una violazione della legge sul copyright e può essere perseguita civilmente e/o penalmente.

Le informazioni contenute in questo documento sono soggette a modifiche senza preavviso. Qualora riscontrasse dei problemi nella documentazione, l'utente è pregato di segnalarli per iscritto a Oracle Education Products, Oracle Corporation, 500 Oracle Parkway, Box SB-6, Redwood Shores, CA 94065. La Oracle Corporation non garantisce che il presente documento sia privo di errori.

Tutti i riferimenti alla Oracle e ai prodotti Oracle sono marchi o marchi registrati della Oracle Corporation.

Tutti gli altri nomi di prodotti e di società citati sono utilizzati unicamente a fini identificativi e possono essere marchi dei rispettivi proprietari.

Sommario

Prefazione

Percorsi formativi consigliati

Introduzione Obiettivi I-2 Oracle9 i I-3 Oracle9 i Application Server I-5 Oracle9 i Database I-6 RDBMS e ORDBMS I-7 Piattaforma Internet Oracle I-8 Passi di sviluppo di un sistema I-9 Memorizzazione di dati su supporti diversi I-11 Concetto di database relazionale I-12 Definizione di database relazionale I-13 Modelli di dati I-14 Modello entity relationship I-15 Convenzioni per i modelli entity relationship I-16 Correlazione di più tabelle I-18 Terminologia dei database relazionali I-19 Proprietà dei database relazionali I-20 Comunicazione con un sistema RDBMS tramite SQL I-21 RDBMS I-22 Istruzioni SQL I-23 Tabelle utilizzate nel corso I-24

1 Scrittura di istruzioni sql SELECT di base Obiettivi 1-2

Caratteristiche delle istruzioni SELECT SQL

Istruzione SELECT di base Selezione di tutte le colonne

Selezione di colonne specifiche

Scrittura di istruzioni SQL

Impostazioni predefinite delle intestazioni di colonna

Espressioni aritmetiche

Uso degli operatori aritmetici Precedenza degli operatori

Uso delle parentesi

Definizione di un valore nullo

1-3

1-4

1-5

1-7

1-6

1-10

1-11

1-14

1-9

1-13

1-8

Espressioni aritmetiche con valori nulli

1-15

Definizione degli alias di colonna

1-16

Uso degli alias di colonna

1-17

Operatore di concatenazione

1-18

Uso degli operatori di concatenazione

1-19

Stringhe di caratteri

Uso delle stringhe di caratteri

Righe duplicate

Eliminazione delle righe duplicate

1-20

1-21

1-22

1-23

iii

Interazione tra SQL e i SQL*Plus

1-24

Confronto tra istruzioni SQL e comandi i SQL*Plus

Panoramica di i SQL*Plus

Esecuzione del log in a iSQL*Plus

Ambiente i SQL*Plus

Visualizzazione della struttura di tabella 1-29

Interazione con gli script

Riepilogo 1-34 Panoramica dell'esercitazione

1-26

1-27

1-28

1-31

1-35

2 Limitazione e ordinamento di dati Obiettivi 2-2 Limitazione di righe mediante una selezione

Limitazione delle righe selezionate

2-5

Stringhe di caratteri e date

Condizioni di confronto

Uso delle condizioni di confronto

Altre condizioni di confronto

Uso della condizione BETWEEN

Uso della condizione IN

Uso della clausola WHERE

2-4

2-6

2-9

2-7

2-8

2-10

2-11

Uso della condizione LIKE

Uso della condizione NULL

Condizioni logiche

2-15

2-12

2-14

2-3

Uso dell'operatore AND

2-16

Uso dell'operatore OR

2-17

Uso dell'operatore NOT

2-18

Regole di precedenza

2-19

Clausola ORDER BY

2-22

Ordinamento in ordine decrescente

Ordinamento in base ad alias di colonna

Ordinamento in base a più colonne Riepilogo 2-26 Panoramica dell'esercitazione 2

2-23

2-25

2-27

2-24

1-25

3 Funzioni che agiscono su una sola riga Obiettivi 3-2

Funzioni SQL

Due tipi di funzioni SQL

3-3

3-4

Funzioni che agiscono su una sola riga

3-5

Funzioni che agiscono su una sola riga

3-6

Funzioni di stringa

3-7

Funzioni di stringa

3-8

Funzioni di conversione dei caratteri in maiuscolo e minuscolo

Uso delle funzioni di conversione dei caratteri in maiuscolo e minuscolo

3-9

iv

3-10

Funzioni di manipolazione delle stringhe

Uso delle funzioni di manipolazione delle stringhe

Funzioni numeriche

Uso della funzione ROUND

Uso della funzione TRUNC

Uso della funzione MOD

Uso delle date

Operazioni aritmetiche con le date

Uso degli operatori aritmetici con le date

Funzioni di data

Uso delle funzioni di data

Panoramica dell'esercitazione 3: prima parte

Funzioni di conversione

3-11

3-13

3-14

3-15

3-16

3-17

3-21

3-19

3-20

3-22

3-25

3-24

3-12

Conversione implicita tra tipi di dati

3-26

Conversione esplicita tra tipi di dati

3-28

Uso della funzione TO_CHAR con le date

Elementi del modello del formato data

Uso della funzione TO_CHAR con le date Uso della funzione TO_CHAR con i numeri

Uso delle funzioni TO_NUMBER e TO_DATE

Formato data RR

Esempio di formato data RR

Nidificazione delle funzioni

Funzioni generali

Funzione NVL

3-31

3-32

3-36

3-37

3-39

3-41

3-45

3-42

3-43

3-46

Uso della funzione NVL

3-47

Uso della funzione NVL2

3-48

Uso della funzione NULLIF

Uso della funzione COALESCE

Espressioni condizionali

Espressione CASE

Uso dell'espressione CASE

3-55

Uso della funzione DECODE

Riepilogo 3-58 Panoramica dell'esercitazione 3, seconda parte

Funzione DECODE

3-49

3-50

3-52

3-53

3-54

3-56

3-59

4 Visualizzazione di dati da più tabelle Obiettivi 4-2

Recupero di dati da più tabelle

Prodotti cartesiani

Generazione di un prodotto cartesiano

Tipi di join

Unione tramite join di tabelle mediante la sintassi Oracle

Definizione di equijoin

4-3

4-4

4-5

4-6

4-8

v

4-7

Recupero di record tramite equijoin

Condizioni di ricerca aggiuntive tramite l'operatore AND

Qualificazione di nomi di colonne ambigui 4-11 Uso degli alias di tabella 4-12 Unione tramite join di più di due tabelle 4-13 Non-equijoin 4-14 Recupero di record tramite non-equijoin 4-15 Outer join 4-16 Sintassi di outer join 4-17 Uso degli outer join 4-18 Self join 4-19 Unione tramite join di una tabella a se stessa 4-20

Panoramica dell'esercitazione 4, prima parte 4-21 Unione tramite join di tabelle mediante la sintassi SQL: 1999 4-22 Creazione di cross join 4-23 Creazione di natural join 4-24

Recupero di record tramite natural join Creazione di join con la clausola USING

Recupero di record con la clausola USING 4-27 Creazione di join con la clausola ON 4-28 Recupero di record con la clausola ON 4-29 Creazione di join a tre livelli con la clausola ON 4-30 Confronto tra INNER JOIN e OUTER JOIN 4-31 LEFT OUTER JOIN 4-32 RIGHT OUTER JOIN 4-33 FULL OUTER JOIN 4-34

Condizioni aggiuntive

Riepilogo 4-36 Panoramica dell'esercitazione 4, seconda parte

4-9

4-10

4-25

4-26

4-35

4-37

5 Aggregazione di dati mediante le funzioni di gruppo Obiettivi 5-2

Definizione di funzione di gruppo

5-3

Tipi di funzioni di gruppo

5-4

Sintassi delle funzioni di gruppo

5-5

5-6

Uso delle funzioni AVG e SUM Uso delle funzioni MIN e MAX

5-7

Uso della funzione COUNT

Uso della parola chiave DISTINCT

Funzioni di gruppo e valori nulli

Uso della funzione NVL con le funzioni di gruppo

Creazione di gruppi di dati

Creazione di gruppi di dati: sintassi della clausola GROUP BY

Uso della clausola GROUP BY

Raggruppamento in base a più colonne

5-8

5-10

5-11

5-12

5-13

5-15

5-17

vi

5-14

Uso della clausola GROUP BY su più colonne

5-18

Query non valide con le funzioni di gruppo

5-19

Esclusione dei risultati di raggruppamento

5-21

Esclusione dei risultati di raggruppamento: clausola HAVING

Uso della clausola HAVING Funzioni di gruppo nidificate

Uso della clausola HAVING Funzioni di gruppo nidificate

5-23

5-25

Riepilogo 5-26 Panoramica dell'esercitazione 5

5-27

6 Subquery Obiettivi 6-2 Uso di una subquery per la soluzione di un problema

6-3

Sintassi delle subquery

Uso di una subquery

Regole per l'uso delle subquery

Tipi di subquery

Subquery che restituiscono una sola riga

Esecuzione di subquery che restituiscono una sola riga

6-4

6-5

6-6

6-7

6-8

6-9

5-22

Uso delle funzioni di gruppo in una subquery

6-10

Uso della clausola HAVING con le subquery

6-11

Istruzione contenente errori

Istruzione che non restituisce righe

Subquery che restituiscono più righe

6-12

6-13

6-14

Uso dell'operatore ANY nelle subquery che restituiscono più righe

6-15

Uso dell'operatore ALL nelle subquery che restituiscono più righe

6-16

Valori nulli in una subquery

6-17

Riepilogo 6-18 Panoramica dell'esercitazione 6

6-19

7 Generazione di output leggibile con i SQL*Plus Obiettivi 7-2

 

Variabili di sostituzione

7-3

Uso della variabile di sostituzione

7-5

Uso dei valori di tipo carattere e data con le variabili di sostituzione

7-7

Specifica di nomi di colonna, espressioni e testo

Definizione delle variabili di sostituzione

Comandi DEFINE e UNDEFINE

Uso del comando DEFINE con la variabile di sostituzione

Uso della variabile di sostituzione doppia

Uso del comando VERIFY

Personalizzazione dell'ambiente i SQL*Plus

Variabili del comando SET

Comandi di formattazione iSQL*Plus

Comando COLUMN

Uso del comando COLUMN

7-8

7-10

7-13

7-11

7-14

7-16

7-19

7-15

7-17

7-18

vii

7-12

Modelli di formato COLUMN

Uso del comando BREAK

Uso dei comandi TTITLE e BTITLE

Creazione di uno script per l'esecuzione di un report

Report di esempio

Riepilogo 7-28 Panoramica dell'esercitazione 7

7-20

7-21

7-22

7-26

7-29

8 Manipolazione dei dati Obiettivi 8-2

Linguaggio DML (Data Manipulation Language)

8-3

7-24

Aggiunta di una nuova riga a una tabella

8-4

Sintassi dell'Istruzione INSERT

8-5

Inserimento di nuove righe

8-6

Inserimento di righe con valori nulli

8-7

Inserimento di valori speciali

8-8

Inserimento di valori di tipo data specifici

8-9

8-10

Copia di righe da un'altra tabella Modifica dei dati in una tabella Sintassi dell'istruzione UPDATE

Aggiornamento di righe in una tabella

Aggiornamento di due colonne mediante una subquery

Aggiornamento delle righe in base a un'altra tabella

Errore del vincolo di integrità durante l'aggiornamento delle righe

Rimozione di una riga da una tabella

Creazione di uno script

8-11

8-12

8-13

8-14

8-15

8-16

8-18

8-17

Istruzione DELETE

Eliminazione di righe da una tabella

Eliminazione di righe in base a un'altra tabella

Errore del vincolo di integrità durante l'eliminazione delle righe

Uso di una subquery in un'istruzione INSERT

Uso della parola chiave WITH CHECK OPTION su istruzioni DML

Panoramica della funzione predefinita esplicita

Uso dei valori predefiniti espliciti

Istruzione MERGE

Sintassi dell'istruzione MERGE

Unione di righe

Transazioni di database

Vantaggi delle istruzioni COMMIT e ROLLBACK

Controllo delle transazioni

Esecuzione del rollback delle modifiche su un savepoint

Elaborazione di transazioni implicite

Stato dei dati prima dell'esecuzione dell'istruzione COMMIT o ROLLBACK

Stato dei dati dopo l'esecuzione dell'istruzione COMMIT

Esecuzione del commit dei dati

8-19

8-20

8-21

8-23

8-26

8-22

8-25

8-27

8-29

8-28

8-30

8-32

8-35

8-34

8-36

8-39

8-37

8-40

viii

8-38

Stato dei dati dopo l'esecuzione dell'istruzione ROLLBACK

Rollback a livello di istruzione

Coerenza in lettura

Implementazione della coerenza in lettura

Esecuzione del lock

Lock implicito

Riepilogo 8-47 Panoramica dell'esercitazione 8 Esempio di coerenza in lettura

8-42

8-43

8-45

8-44

8-46

8-48

8-52

9 Creazione e gestione di tabelle Obiettivi 9-2

Oggetti di database

Regole di denominazione Istruzione CREATE TABLE

Riferimenti a tabelle di altri utenti

9-5

9-3

9-4

9-6

Opzione DEFAULT

9-7

Creazione di tabelle

9-8

Tabelle nel database Oracle

Esecuzione di query sul dizionario dati

Tipi di dati

Tipi di dati di data e ora

Tipo di dati TIMESTAMP WITH TIME ZONE

Tipo di dati TIMESTAMP WITH LOCAL TIME

9-9

9-10

9-11

9-13

9-15

9-16

8-41

tipo di dati INTERVAL YEAR TO MONTH Tipo di dati INTERVAL DAY TO SECOND

tipo di dati INTERVAL YEAR TO MONTH Tipo di dati INTERVAL DAY TO SECOND

9-17

9-18

Creazione di una tabella mediante la sintassi di una subquery

Creazione di una tabella mediante una subquery

9-21

Istruzione ALTER TABLE

9-22

Aggiunta di una colonna

9-24

Modifica di una colonna

9-26

Eliminazione di una colonna

Opzione SET UNUSED

Eliminazione di una tabella

Modifica del nome di un oggetto

Troncamento di una tabella

Aggiunta di commenti a una tabella Riepilogo 9-33

Panoramica dell'esercitazione 9

9-27

9-29

9-31

9-28

9-30

9-32

9-34

ix

9-20

10 Inclusione di vincoli Obiettivi 10-2 Definizione dei vincoli

10-3

Regole per l'uso dei vincoli

Definizione di vincoli Vincolo NOT NULL

10-5

10-7

10-4

Vincolo UNIQUE

10-9

Vincolo PRIMARY KEY

10-11

Vincolo FOREIGN KEY

10-13

Parole chiave del vincolo FOREIGN KEY

Vincolo CHECK

Sintassi per l'aggiunta di un vincolo

Aggiunta di un vincolo

Eliminazione di un vincolo

Disabilitazione di un vincolo

Abilitazione di un vincolo

10-16

10-17

10-18

10-19

10-20

10-21

10-15

Vincoli con clausola CASCADE CONSTRAINTS

10-22

Visualizzazione dei vincoli

10-24

Visualizzazione delle colonne associate a vincoli Riepilogo 10-26

10-25

Panoramica dell'esercitazione 10

10-27

11 Creazione di viste Obiettivi 11-2 Oggetti di database Definizione di vista Finalità delle viste

11-3

11-4

11-5

Viste semplici e viste complesse

Creazione di una vista

Recupero di dati da una vista

11-6

11-7

11-10

Esecuzione di query su una vista

11-11

Modifica di una vista

11-12

Creazione di una vista complessa

11-13

Regole per l'esecuzione di operazioni DML su una vista

Uso della clausola WITH CHECK OPTION

Disabilitazione delle operazioni DML

Rimozione di una vista

Viste inline

Analisi Top-N

Esecuzione dell'analisi Top-N

11-24

Riepilogo 11-25 Panoramica dell'esercitazione 11

Esempio di analisi Top-N

11-20

11-17

11-18

11-21

11-22

11-23

11-26

x

11-14

12 Altri oggetti di database Obiettivi 12-2

Oggetti di database

Definizione di sequenza

Sintassi dell'istruzione CREATE SEQUENCE

Creazione di una sequenza

Conferma di sequenze

12-3

12-4

12-7

12-6

12-5

Pseudo-colonne NEXTVAL e CURRVAL

12-8

Uso di una sequenza

12-10

Modifica di una sequenza

12-12

Regole per la modifica di una sequenza

12-13

Rimozione di una sequenza

Definizione di indice

Modalità di creazione degli indici

Creazione di un indice

Situazioni che richiedono la creazione di un indice

Situazioni che non richiedono la creazione di un indice

12-17

12-14

12-15

12-16

12-18

12-19

Conferma degli indici

Indici basati sulle funzioni

Rimozione di un indice

12-20

12-21

12-23

Sinonimi 12-24 Creazione e rimozione di sinonimi Riepilogo 12-26 Panoramica dell'esercitazione 12

Sinonimi 12-24 Creazione e rimozione di sinonimi Riepilogo 12-26 Panoramica dell'esercitazione 12

12-25

12-27

13 Controllo dell'accesso degli utenti Obiettivi 13-2 Controllo dell'accesso degli utenti Privilegi 13-4

13-3

Privilegi di sistema

13-5

Creazione di utenti

13-6

Privilegi di sistema degli utenti

Concessione dei privilegi di sistema

Definizione di ruolo

Creazione di un ruolo e concessione dei privilegi

Modifica della password

Privilegi sugli oggetti

Concessione di privilegi sugli oggetti

Uso delle parole chiave WITH GRANT OPTION e PUBLIC

Conferma dei privilegi concessi

13-7

13-8

13-9

13-10

13-11

13-12

13-14

13-16

13-15

Revoca dei privilegi sugli oggetti

13-17

Revoca dei privilegi sugli oggetti

13-18

Database link

13-19

Riepilogo 13-21 Panoramica dell'esercitazione 13

13-22

xi

14 Sessione pratica di SQL Panoramica della sessione pratica

14-2

15 Uso degli operatori SET Obiettivi 15-2

Operatori SET

15-3

Tabelle utilizzate in questa lezione

15-4

Operatore UNION

Uso dell'operatore UNION

Operatore UNION ALL

15-7

15-8

15-10

Uso dell'operatore UNION ALL

15-11

Operatore INTERSECT

15-12

Uso dell'operatore INTERSECT

15-13

Operatore MINUS

Regole dell'operatore SET

Oracle Server e gli operatori SET

Corrispondenza delle istruzioni SELECT

Controllo dell'ordine delle righe Riepilogo 15-21 Panoramica dell'esercitazione 15

15-14

15-16

15-17

15-20

15-22

15-18

16 Funzioni di data e ora di Oracle9i Obiettivi 16-2

FUSI ORARI

Supporto per data e ora in Oracle9i TZ_OFFSET 16-6 CURRENT_DATE 16-8 CURRENT_TIMESTAMP 16-9 LOCALTIMESTAMP 16-10 DBTIMEZONE e SESSIONTIMEZONE EXTRACT 16-12

Conversione TIMESTAMP con FROM_TZ

Conversione da STRING To TIMESTAMP mediante TO_TIMESTAMP e

TO_TIMESTAMP_TZ 16-14 Conversione dell'intervallo di tempo con TO_YMINTERVAL Riepilogo 16-16

Panoramica dell'esercitazione 16

16-3

16-4

16-11

16-13

16-15

16-17

17 Funzioni avanzate della clausola GROUP BY Obiettivi 17-2

Ripasso delle funzioni di gruppo Ripasso della clausola GROUP BY

Ripasso della clausola HAVING

GROUP BY con gli operatori ROLLUP e CUBE

Operatore ROLLUP

Esempio di operatore ROLLUP

17-3

17-4

17-5

17-8

17-7

xii

17-6

Operatore CUBE

Esempio di operatore CUBE

Funzione GROUPING

Esempio di funzione GROUPING

GROUPING SETS

Esempio di GROUPING SETS

Colonne composte

Esempio di colonne composte Raggruppamenti concatenati

17-9

17-10

17-11

17-12

17-13

17-17

17-15

17-19

17-21

Esempio di raggruppamenti concatenati Riepilogo 17-23

17-22

Panoramica dell'esercitazione 17

17-24

18 Subquery avanzate Obiettivi 18-2 Definizione di subquery

18-3

Subquery 18-4 Uso di una subquery

18-5

Subquery che restituiscono più colonne

18-6

Confronto tra colonne

18-7

Subquery basate su confronti a coppie

18-8

Subquery basate su confronti incrociati

18-9

Uso di una subquery nella clausola FROM

18-10

Espressioni di subquery scalari

18-11

Esempi di subquery scalari

18-12

 

Subquery correlate

18-14

Uso di subquery correlate

18-16

 

Uso dell'operatore EXISTS

18-18

 

Uso dell'operatore NOT EXISTS 18-20

Subquery UPDATE correlata

18-21

Subquery DELETE correlata

18-24

Clausola WITH

18-26

 

Esempio di clausola WITH

18-27

Riepilogo 18-29 Panoramica dell'esercitazione 18

18-31

19 Query gerarchiche Obiettivi 19-2

Dati di esempio della tabella EMPLOYEES

19-3

Struttura ad albero naturale

19-4

 

Query gerarchiche

19-5

Esame della struttura ad albero

19-6

Esame della struttura ad albero: bottom-up

19-8

Esame della struttura ad albero: top-down

19-9

Classificazione di righe con la pseudo-colonna LEVEL

xiii

19-10

Formattazione di report gerarchici con LEVEL e LPAD

Cancellazione di diramazioni

Riepilogo 19-14 Panoramica dell'esercitazione 19

19-13

19-15

19-11

20 Estensioni alle istruzioni DML e DDL in Oracle9i Obiettivi 20-2

Ripasso dell'istruzione INSERT Ripasso dell'istruzione UPDATE

Ripasso dell' i struzione INSERT Ripasso dell ' i struzione UPDATE

20-3

20-4

Panoramica delle istruzioni INSERT su più tabelle

20-5

Panoramica delle istruzioni INSERT su più tabelle

20-6

Tipi di istruzioni INSERT su più tabelle

Istruzioni INSERT su più tabelle INSERT ALL non condizionale

20-8

20-10

20-7

INSERT ALL condizionale

INSERT FIRST condizionale

20-11

20-13

INSERT pivot

20-15

Tabelle esterne

20-18

Creazione di una tabella esterna

Esempio di creazione di una tabella esterna

Esecuzione di query sulle tabelle esterne

Clausola CREATE INDEX nell'istruzione CREATE TABLE Riepilogo 20-25

Panoramica dell'esercitazione 20

20-19

20-20

20-23

20-26

A Soluzioni delle esercitazioni

B Descrizione e dati delle tabelle

C Uso di SQL* Plus

D Scrittura di script avanzati

20-24

E Componenti architetturali di Oracle

Indice

Esercitazioni aggiuntive

Soluzioni delle esercitazioni aggiuntive

Tabelle e descrizioni delle esercitazioni aggiuntive

xiv

Prefazione

Profilo

Requisiti

Prima di iniziare il corso è necessario saper utilizzare un'interfaccia GUI. I requisiti necessari sono una buona conoscenza dei concetti e delle tecniche di elaborazione dei dati.

Struttura del corso

Introduzione a Oracle9i: SQL è un corso con istruttore e si articola in parti teoriche ed esercitazioni pratiche. Le dimostrazioni in linea e le sessioni di esercitazioni consentono di mettere in pratica le nozioni e i concetti illustrati nel corso.

Preface-3

Pubblicazioni correlate Pubblicazioni Oracle Titolo

Codice identificativo

Oracle9i Reference, Release 1 (9.0.1)

A90190-02

Oracle9i SQL Reference, Release 1 (9.0.1)

A90125-01

Oracle9i Concepts, Release 1 (9.0.0)

A88856-02

Oracle9i Server Application Developer’s Guide Fundamentals

Release 1 (9.0.1)

A88876-02

iSQL*Plus User’s Guide and Reference, Release 9.0.0

A88826-01

SQL*Plus User’s Guide and Reference, Release 9.0.1

A88827-02

Altre pubblicazioni

• System Release Bulletin

• Guide all'installazione e guide per l'utente

• File read.me

• Pubblicazioni del gruppo IOUG (International Oracle User's Group)

Oracle Magazine

Preface-4

Convenzioni tipografiche

Di seguito vengono elencate le convenzioni tipografiche utilizzate in modo specifico nel testo o nel codice.

Convenzioni tipografiche nel testo

Convenzione

Oggetto o termine

schemi,

Esempio

Maiuscolo

Comandi,

Utilizzare il comando SELECT per

funzioni, nomi di colonna, nomi di tabella, oggetti PL/SQL,

visualizzare informazioni memorizzate nella colonna LAST_NAME colonna della tabella EMPLOYEES.

Minuscolo

Nomi di file,

dove:

ruolo

è il nome del ruolo

corsivo

variabili di sintassi, nomi utente,

 

da creare.

password

 

Iniziale

Nomi di trigger e

Assegnare un trigger When-Validate-Item

maiuscola

pulsanti

al blocco ORD.

 

Scegliere Annulla.

 

Corsivo

Pubblicazioni, nomi

Per ulteriori informazioni, consultare

di

corsi e

Oracle Server SQL Language Reference

manuali e parole o frasi

Manual.

a

cui si desidera

Non salvare le modifiche al database.

conferire particolare

Enfasi

Virgolette

Titoli delle lezioni

L'argomento è trattato nella Lezione 3

a cui si fa riferimento "Utilizzo degli oggetti".

in un corso

Preface-5

Convenzioni tipografiche (continuazione)

Convenzioni tipografiche nel codice

Convenzione

Oggetto o termine

Esempio

Maiuscolo

Comandi,

funzioni

SELECT employee_id

FROM employees;

Minuscolo,

Variabili della sintassi CREATE ROLE ruolo;

corsivo

Iniziale

Trigger di Forms

Nomi di colonna,

Form module: ORD

.

.

.

.

.

SELECT last_name

maiuscola

Trigger level: S_ITEM.QUANTITY

Minuscolo

item Trigger name: When-Validate-Item .

nomi di tabella, nomi di file,

OG_ACTIVATE_LAYER (OG_GET_LAYER ('prod_pie_layer'))

oggetti PL/SQL

FROM employees;

Grassetto

Testo

immesso

CREATE USER scott

IDENTIFIED BY tiger;

dall'utente

Preface-6

Percorsi formativi consigliati

Percorso formativo per linguaggi per Oracle9 i

Introduction to Oracle9 i : SQL or Introduction to Oracle9 i : Oracle9 i :
Introduction to
Oracle9 i : SQL
or
Introduction
to Oracle9 i :
Oracle9 i :
Introduction to Oracle9 i
for
Experienced SQL Users
Advanced
SQL Basics
SQL
inClass
inClass
Oracle9 i : Program with PL/SQL
Oracle9 i : PL/SQL
Fundamentals
Oracle9 i : Develop PL/SQL
Program Units
inClass
Oracle9 i : Advanced PL/SQL
inClass

Oracle9 i : SQL for End Users inClass

PL/SQL inClass Oracle9 i : SQL for End Users inClass Copyright © Oracle Corporation, 2001. Tutti

Copyright © Oracle Corporation, 2001. Tutti i diritti riservati.

Percorso formativo integrativo per linguaggi Introduction to Oracle9i: SQL è composto da due moduli, Introduction to Oracle9i: SQL Basics e Oracle9i: Advanced SQL. In Introduction to Oracle9i: SQL Basics viene descritto come creare strutture di database e memorizzare, recuperare e manipolare i dati in un database relazionale. In Oracle9i: Advanced SQL vengono descritte le istruzioni SELECT avanzate, Oracle SQL e la creazione di report iSQL*Plus. Per gli utenti che hanno già lavorato con altri database relazionali e conoscono il linguaggio SQL è disponibile un altro corso denominato Introduction to Oracle9i for Experienced SQL Users. In questo corso vengono descritte le istruzioni SQL che non fanno parte di ANSI SQL, ma sono specifiche di Oracle. Oracle9i: Program with PL/SQL è composto da due moduli, Oracle9i: PL/SQL Fundamentals e Oracle9i: Develop PL/SQL Program Units. In Oracle9i: PL/SQL Fundamentals vengono descritte le nozioni fondamentali di PL/SQL, inclusa la struttura del linguaggio PL/SQL, il flusso di esecuzione e l'interfaccia con SQL. In Oracle9i: Develop PL/SQL Program Units viene descritto come creare stored procedure, function, package e trigger nonché come gestire ed eseguire il debug del codice di programma PL/SQL. Oracle9i: SQL for End Users è destinato agli utenti che hanno poca esperienza in materia di programmazione e tratta le istruzioni SQL di base. Questo corso è rivolto agli utenti finali che desiderano acquisire conoscenze di base sulla programmazione in SQL. Oracle9i: Advanced PL/SQL è rivolto agli utenti che hanno già maturato un'esperienza nel campo della programmazione PL/SQL. In questo corso vengono descritte la scrittura di codice efficace, la programmazione orientata a oggetti, l'uso di codice esterno e le funzioni avanzate disponibili nei package forniti con Oracle.

Introduzione a Oracle9i: SQL Percorsi formativi consigliati- 3

Percorso formativo per linguaggi per Oracle9 i

Introduction to or Oracle9i: SQL Introduction Oracle9i: Introduction to Oracle9 i for Experienced SQL Users
Introduction to
or
Oracle9i: SQL
Introduction
Oracle9i:
Introduction to Oracle9 i
for
Experienced SQL Users
to Oracle9i:
Advanced
SQL Basics
SQL
inClass
inClass
Oracle9i: Program with PL/SQL
Oracle9i: PL/SQL
Fundamentals
Oracle9i: Develop PL/SQL
Program Units
inClass
Oracle9i: Advanced PL/SQL
inClass

Oracle9i: SQL for End Users inClass

PL/SQL inClass Oracle9 i : SQL for End Users inClass Copyright © Oracle Corporation, 2001. Tutti

Copyright © Oracle Corporation, 2001. Tutti i diritti riservati.

Percorso formativo integrativo per linguaggi

Nella diapositiva sono riportati diversi moduli e corsi disponibili nel percorso formativo per linguaggi. Nella tabella seguente sono elencati i moduli e i corsi, nonché i TBT equivalenti.

Corso o modulo

TBT equivalente

Introduction to Oracle9i: SQL Basics

Oracle SQL: Basic SELECT Statements Oracle SQL: Data Retrieval Techniques Oracle SQL: DML and DDL

Oracle9i: Advanced SQL

Oracle SQL and SQL*Plus: Advanced SELECT Statements Oracle SQL and SQL*Plus: SQL*Plus and Reporting

Introduction to Oracle9i for Experienced SQL Users

Oracle SQL Specifics: Retrieving and Formatting Data Oracle SQL Specifics: Creating and Managing Database Objects

Oracle9i: PL/SQL Fundamentals

PL/SQL: Basics

Oracle9i: Develop PL/SQL Program Units

PL/SQL: Procedures, Functions, and Packages PL/SQL: Database Programming

Oracle9i: SQL for End Users

SQL for End Users: Part 1 SQL for End Users: Part 2

Oracle9i: Advanced PL/SQL

Advanced PL/SQL: Implementation and Advanced Features Advanced PL/SQL: Design Considerations and Object Types

Introduzione a Oracle9i: SQL Percorsi formativi consigliati- 4

Introduzione Copyright © Oracle Corporation, 2001. Tutti i diritti riservati.

Introduzione

Introduzione Copyright © Oracle Corporation, 2001. Tutti i diritti riservati.

Copyright © Oracle Corporation, 2001. Tutti i diritti riservati.

Obiettivi

Al termine della lezione, lo studente sarà in grado di:

descrivere le caratteristiche di Oracle9i;

discutere gli aspetti teorici e pratici di un database relazionale;

descrivere l'implementazione Oracle dei sistemi RDBMS e ORDBMS.

l'implementazione Oracle dei sistemi RDBMS e ORDBMS. I - 2 Copyright © Oracle Corporation, 2001. Tutti

I-2

Copyright © Oracle Corporation, 2001. Tutti i diritti riservati.

Obiettivo della lezione

In questa lezione verranno illustrati i sistemi RDBMS (sistema di gestione di database relazionali, Relational Database Management System) e ORDBMS (sistema di gestione di database relazionali a oggetti, Object Relational Database Management System). Verranno inoltre presentati i seguenti argomenti:

• istruzioni SQL specifiche di Oracle;

• iSQL*Plus, utilizzato per l'esecuzione di istruzioni SQL e per la creazione e la formattazione di report.

Introduzione a Oracle9i: SQL I-2

Oracle9i

Scalabilità Affidabilità
Scalabilità
Affidabilità
Oracle9 i Scalabilità Affidabilità Un unico fornitore Un'unica interfaccia di gestione Un solo modello di
Un unico fornitore Un'unica interfaccia di gestione
Un unico
fornitore
Un'unica
interfaccia di
gestione
Un solo modello di sviluppo
Un solo modello
di sviluppo
Set di competenze comuni
Set di
competenze
comuni
Un solo modello di sviluppo Set di competenze comuni I - 3 Copyright © Oracle Corporation,

I-3

Copyright © Oracle Corporation, 2001. Tutti i diritti riservati.

Caratteristiche di Oracle9 i

Oracle fornisce un'infrastruttura completa a prestazioni elevate per l'e-business: Oracle9i include tutti gli strumenti necessari per sviluppare, distribuire e gestire applicazioni Internet.

I vantaggi includono:

• scalabilità dai dipartimenti fino ai siti e-business aziendali;

• architettura robusta, affidabile, disponibile, protetta;

• un solo modello di sviluppo, opzioni per una facile distribuzione;

• possibilità di sfruttare il set di competenze corrente di un'organizzazione in tutta la piattaforma Oracle (compreso SQL, PL/SQL, Java e XML);

• un'unica interfaccia di gestione per tutte le applicazioni;

• tecnologie standard del settore, nessun blocco proprietario.

Introduzione a Oracle9i: SQL I-3

Oracle9i

Oracle9 i I - 4 Copyright © Oracle Corporation, 2001. Tutti i diritti riservati.
Oracle9 i I - 4 Copyright © Oracle Corporation, 2001. Tutti i diritti riservati.
Oracle9 i I - 4 Copyright © Oracle Corporation, 2001. Tutti i diritti riservati.

I-4

Copyright © Oracle Corporation, 2001. Tutti i diritti riservati.

Oracle9i

I due prodotti Oracle9i Application Server e Oracle9i Database forniscono un'infrastruttura completa e semplice per applicazioni Internet.

Introduzione a Oracle9i: SQL I-4

Oracle9i Application Server

 

Portali

  Portali A Applicazioni transazionali P A C BusinessBusiness Intelligenceintelligence H E Integrazione

A

Applicazioni transazionali

P

P

A

C

BusinessBusiness Intelligenceintelligence

H

H

E

Integrazione

  Portali A Applicazioni transazionali P A C BusinessBusiness Intelligenceintelligence H E Integrazione
Intelligenceintelligence H E Integrazione I - 5 Copyright © Oracle Corporation, 2001. Tutti i
Intelligenceintelligence H E Integrazione I - 5 Copyright © Oracle Corporation, 2001. Tutti i

I-5

Copyright © Oracle Corporation, 2001. Tutti i diritti riservati.

Oracle9i Application Server

Oracle9i Application Server (Oracle9i AS) consente di eseguire tutte le applicazioni, mentre Oracle9i Database di memorizzare tutti i dati.

Oracle9i Application Server è l'unico application server che include servizi per le diverse applicazioni server che si desidera eseguire. Su Oracle9i AS è possibile eseguire:

• portali o siti Web;

• applicazioni transazionali Java;

• applicazioni di business intelligence.

• Fornisce inoltre integrazione tra utenti, applicazioni e dati in tutta l'organizzazione.

Introduzione a Oracle9i: SQL I- 5

Oracle9i Database

Oracle9 i Database Dati relazionali a oggetti Documenti XMLXML Dati multimediali Messaggi I - 6 Copyright
Dati relazionali a oggetti Documenti XMLXML Dati multimediali Messaggi
Dati relazionali a oggetti
Documenti
XMLXML
Dati multimediali
Messaggi
a oggetti Documenti XMLXML Dati multimediali Messaggi I - 6 Copyright © Oracle Corporation, 2001. Tutti

I-6

Copyright © Oracle Corporation, 2001. Tutti i diritti riservati.

Oracle9i Database

I ruoli dei due prodotti sono molto chiari. Oracle9i Database gestisce tutti i dati e non solo i dati relazionali a oggetti, in genere gestiti da un database aziendale; possono infatti essere anche dati non strutturati quali:

• fogli di calcolo;

• documenti Word;

• presentazioni PowerPoint;

• XML;

• dati multimediali, quali file MP3, di immagine, video e altro ancora.

Non è neppure necessario che i dati siano inseriti nel database. Oracle9i Database comprende servizi che consentono di memorizzare metadati sulle informazioni memorizzate nei file system. È possibile utilizzare il database server per gestire e recuperare le informazioni indipendentemente dalla posizione.

Introduzione a Oracle9i: SQL I-6

RDBMS e ORDBMS

Modello relazionale e modello relazionale a oggetti

Tipi di dati e oggetti definiti dall'utente

Compatibilità assoluta con i database relazionali

Supporto di oggetti multimediali e LOB (Large Object)

Funzionalità database server di qualità elevata

• Funzionalità database serv er di qualità elevata I - 7 Copyright © Oracle Corporation, 2001.

I-7

Copyright © Oracle Corporation, 2001. Tutti i diritti riservati.

Informazioni su Oracle Server

Oracle9i Server supporta sia il modello relazionale che quello relazionale a oggetti ed

estende la capacità di modellare i dati per supportare un modello di database relazionale a oggetti che consente di sfruttare la programmazione orientata a oggetti, tipi di dati complessi, business object complessi e la completa compatibilità con l'universo relazionale.

Sono diverse le funzioni incluse che garantiscono prestazioni ottimali e una migliore funzionalità delle applicazioni OLTP (Online Transaction Processing), ad esempio una migliore condivisione delle strutture dei dati in fase di esecuzione, buffer cache più estese e vincoli differibili. Le applicazioni di data warehouse trarranno vantaggio da miglioramenti quali l'esecuzione parallela di operazioni di INSERT, UPDATE e DELETE, il partizionamento e l'ottimizzazione di query parallele. Operando nell'ambito dell'architettura NCA (Network Computing Architecture), Oracle9i supporta applicazioni client-server e basate sul Web distribuite e a più livelli.

Oracle9i può essere utilizzato da decine di migliaia di utenti contemporaneamente, supporta fino a 512 petabyte di dati (1 petabyte equivale a 1.000 terabyte) e può gestire qualsiasi tipo di dato, compresi dati di testo, spaziali, di immagini, audio, video e temporali, oltre ai tradizionali dati strutturati.

Per ulteriori informazioni, consultare Oracle9i Concepts .

Introduzione a Oracle9i: SQL I-7

Piattaforma Internet Oracle

Client

Qualsiasi browser

Qualsiasi client

di posta

elettronica

Qualsiasi

client FTP

Qualsiasi client di posta elettronica Qualsiasi client FTP Applicazioni Internet Business logic e dati Logica di
Applicazioni Internet Business logic e dati Logica di presentazione e business logic Application Database server
Applicazioni Internet
Business
logic e dati
Logica di presentazione
e business logic
Application
Database
server
Gestione sistema

Servizi di rete

Database server Gestione sistema Servizi di rete Strumenti di sviluppo SQL PL/SQL Java I - 8
Database server Gestione sistema Servizi di rete Strumenti di sviluppo SQL PL/SQL Java I - 8
Strumenti di sviluppo

Strumenti di sviluppo

Strumenti di sviluppo
SQL PL/SQL Java
SQL
PL/SQL
Java
Servizi di rete Strumenti di sviluppo SQL PL/SQL Java I - 8 Copyright © Oracle Corporation,

I-8

Copyright © Oracle Corporation, 2001. Tutti i diritti riservati.

Piattaforma Internet Oracle

Oracle fornisce una piattaforma Internet completa a prestazioni elevate per il commercio elettronico e il data warehousing. Questa piattaforma integrata include tutti gli strumenti necessari per sviluppare, distribuire e gestire applicazioni Internet. La piattaforma Internet Oracle è costituita dai tre elementi principali seguenti:

• client basati su browser per l'elaborazione della presentazione;

• application server per l'esecuzione della business logic e la fornitura della logica di presentazione ai client basati su browser;

• database per l'esecuzione della business logic con uso intensivo del database e la fornitura dei dati.

Oracle offre un'ampia gamma dei più avanzati strumenti di sviluppo a interfaccia GUI per la realizzazione di business application, oltre a una nutrita serie di applicazioni software per varie aree di attività e settori. Stored procedure, stored function e package possono essere scritti con SQL, PL/SQL o Java.

Introduzione a Oracle9i: SQL I-8

Passi di sviluppo di un sistema Analisi strategica e analisi di dettaglio Progettazione Creazione e
Passi di sviluppo di un sistema
Analisi
strategica e analisi
di dettaglio
Progettazione
Creazione
e documentazione
Transizione
Produzione
Creazione e documentazione Transizione Produzione I - 9 Copyright © Oracle Corporation, 2001. Tutti i

I-9

Copyright © Oracle Corporation, 2001. Tutti i diritti riservati.

Passi di sviluppo di un sistema

Dalla concezione alla produzione, è possibile sviluppare un database utilizzando una serie articolata di passi di sviluppo di un sistema che prende il nome di system development life cycle. Questo approccio sistematico e top-down allo sviluppo dei database trasforma i requisiti di business di accesso alle informazioni in un database operativo.

Analisi strategica e analisi di dettaglio

• Studiare e analizzare i requisiti di business. Intervistare utenti e responsabili per identificare le esigenze di accesso alle informazioni. Tenere conto delle dichiarazioni degli obiettivi aziendali e applicativi e di eventuali specifiche di sistema future.

• Creare modelli del sistema. Trasformare gli elementi acquisiti in una rappresentazione grafica delle esigenze e delle regole aziendali. Confermare e perfezionare il modello con l'ausilio di analisti ed esperti.

Progettazione

Progettare il database in base al modello sviluppato nella fase di analisi strategica e di dettaglio.

Creazione e documentazione

• Creare il sistema prototipo. Scrivere ed eseguire i comandi per creare le tabelle e gli oggetti di supporto per il database.

• Sviluppare la documentazione per l'utente, il testo della Guida in linea e i manuali operativi per supportare l'uso e il funzionamento del sistema.

Introduzione a Oracle9i: SQL I-9

Passi di sviluppo di un sistema Analisi strategica e analisi di dettaglio Progettazione Creazione e
Passi di sviluppo di un sistema
Analisi
strategica e analisi
di dettaglio
Progettazione
Creazione e
documentazione
Transizione
Produzione
Creazione e documentazione Transizione Produzione I - 1 0 Copyright © Oracle Corporation, 2001. Tutti i

I-10

Copyright © Oracle Corporation, 2001. Tutti i diritti riservati.

Passi di sviluppo di un sistema (continuazione)

Transizione

Perfezionare il prototipo. Portare un'applicazione in produzione dopo averne valutato l'accettabilità da parte degli utenti, aver effettuato le conversioni dei dati esistenti, aver testato l'applicazione in situazione di operazioni parallele apportando eventuali modifiche necessarie.

Produzione

Distribuire il sistema agli utenti. Mettere in funzione il sistema di produzione. Monitorarne le prestazioni, migliorarlo e perfezionarlo.

Nota: le diverse fasi del system development life cycle, ovvero dei passi di sviluppo di un sistema, possono essere eseguiti ripetutamente. Il presente corso è incentrato sulla fase di creazione.

Introduzione a Oracle9i: SQL I-10

Memorizzazione di dati su supporti diversi

Memorizzazione di dati su supporti diversi Database Foglio di calcolo elettronico Archivio I - 1 1
Memorizzazione di dati su supporti diversi Database Foglio di calcolo elettronico Archivio I - 1 1
Memorizzazione di dati su supporti diversi Database Foglio di calcolo elettronico Archivio I - 1 1

Database

Foglio di calcolo elettronico

Archivio

diversi Database Foglio di calcolo elettronico Archivio I - 1 1 Copyright © Oracle Corporation, 2001.

I-11

Copyright © Oracle Corporation, 2001. Tutti i diritti riservati.

Memorizzazione delle informazioni

Ogni organizzazione ha esigenze specifiche di accesso alle informazioni. Una biblioteca, ad esempio, deve gestire una lista degli iscritti, dei volumi, delle date di riconsegna degli stessi e delle penali. Una società, invece, ha l'esigenza di memorizzare informazioni anagrafiche sugli impiegati, i dipartimenti di appartenenza e gli stipendi. Queste informazioni vengono definite dati.

Le organizzazioni possono memorizzare i dati su diversi tipi di supporto e in diversi formati, quali documenti cartacei raccolti in appositi archivi o dati memorizzati in fogli di calcolo elettronici o database.

I database sono raccolte organizzate di informazioni.

Per gestire i database occorrono appositi sistemi di gestione, detti DBMS (Database Management System). I DBMS sono programmi che memorizzano, recuperano e modificano su richiesta i dati del database. Esistono quattro tipi principali di database: gerarchico, reticolare, relazionale e, quello introdotto più di recente, relazionale a oggetti.

Introduzione a Oracle9i: SQL I-11

Concetto di database relazionale

Nel 1970 E.F. Codd propose il modello relazionale per sistemi di database.

Tale modello ha costituito la base del sistema di gestione di database relazionali (RDBMS).

Il modello relazionale è costituito dai seguenti elementi:

insieme di oggetti o relazioni;

serie di operatori per agire sulle relazioni;

integrità dei dati per garantire accuratezza e uniformità.

integrità dei dati per garantire accuratezza e uniformità. I - 1 2 Copyright © Oracle Corporation,

I-12

Copyright © Oracle Corporation, 2001. Tutti i diritti riservati.

Modello relazionale

I princìpi del modello relazionale furono indicati per la prima volta da E. F. Codd in una pubblicazione del giugno 1970 dal titolo "A Relational Model of Data for Large Shared Data Banks", nella quale l'autore propose il modello relazionale per sistemi di database.

I modelli più diffusi utilizzati in quell'epoca erano di tipo gerarchico, reticolare oppure semplici file sequenziali (flat file). I sistemi di gestione di database relazionali (RDBMS) divennero ben presto molto diffusi, soprattutto per la facilità d'uso e la flessibilità della struttura. Inoltre, alcuni tra i produttori più innovativi, come la Oracle, integrarono il sistema RDBMS con una serie di potenti strumenti di sviluppo di applicazioni e prodotti per gli utenti finali, fornendo così una soluzione globale.

Componenti del modello relazionale

• Insiemi di oggetti o relazioni in cui vengono memorizzati i dati

• Serie di operatori in grado di agire sulle relazioni in modo da produrne altre

• Integrità dei dati per garantire accuratezza e uniformità

Per ulteriori informazioni, consultare E. F. Codd, The Relational Model for Database Management Version 2 (Reading, Mass.: Addison-Wesley, 1990).

Introduzione a Oracle9i: SQL I-12

Definizione di database relazionale

Un database relazionale è un insieme di relazioni o di tabelle bidimensionali. Oracle server Nome
Un database relazionale è un insieme di relazioni o
di tabelle bidimensionali.
Oracle
server
Nome tabella: EMPLOYEES
Nome tabella: DEPARTMENTS
Nome tabella: EMPLOYEES Nome tabella: DEPARTMENTS … … I - 1 3 Copyright © Oracle Corporation,

I-13

Copyright © Oracle Corporation, 2001. Tutti i diritti riservati.

Definizione di database relazionale

Un database relazionale utilizza relazioni o tabelle bidimensionali per memorizzare le informazioni.

Si potrebbe, ad esempio, voler memorizzare informazioni su tutti gli impiegati di un'azienda. In un database relazionale vengono create diverse tabelle per memorizzare diversi tipi di informazioni sugli impiegati, ad esempio una tabella per gli impiegati, una per i dipartimenti e una per gli stipendi.

Introduzione a Oracle9i: SQL I-13

Modelli di dati

Modelli di dati Modello di sistema secondo il cliente Modello di entità del modello del cliente

Modello di

sistema

secondo il

cliente

Modelli di dati Modello di sistema secondo il cliente Modello di entità del modello del cliente
Modelli di dati Modello di sistema secondo il cliente Modello di entità del modello del cliente
Modelli di dati Modello di sistema secondo il cliente Modello di entità del modello del cliente

Modello di entità del modello del cliente

Modello di tabella del modello di entità

Oracle Server
Oracle
Server

Tabelle su disco

del modello di entità Oracle Server Tabelle su disco I - 1 4 Copyright © Oracle

I-14

Copyright © Oracle Corporation, 2001. Tutti i diritti riservati.

Data Models

I modelli costituiscono gli assi portanti della progettazione. I tecnici realizzano il modello di un'autovettura per studiare a fondo i minimi particolari prima di metterla in produzione. Analogamente, i progettisti di sistema sviluppano modelli per studiare a fondo le idee e migliorare la comprensione della struttura dei database.

Scopo dei modelli

I modelli aiutano a comunicare le idee concepite dalle persone e possono essere utilizzati per:

• comunicare;

• categorizzare;

• descrivere;

• specificare;

• indagare;

• dedurre;

• analizzare;

• imitare.

L'obiettivo è quello di produrre un modello appropriato per i diversi usi, che possa essere compreso da un utente finale e che contenga dettagli sufficienti a consentire agli sviluppatori di realizzare un sistema di database.

Introduzione a Oracle9i: SQL I-14

Modello entity relationship

Creare un diagramma entity relationship in base alle specifiche aziendali o agli elementi acquisiti.

IMPIEGATO assegnato a #* matricola * nome composto da o mansione
IMPIEGATO
assegnato a
#*
matricola
*
nome
composto da
o
mansione

DIPARTIMENTO

#*

numero

*

nome

o

località

Scenario

Assegnare uno o più impiegati a un .”

Ad alcuni dipartimenti non è stato ancora

assegnato alcun

.”

alcuni dipartimenti non è stato ancora assegnato alcun .” I - 1 5 Copyright © Oracle

I-15

Copyright © Oracle Corporation, 2001. Tutti i diritti riservati.

Modelli ER In un sistema efficace i dati sono suddivisi in categorie distinte o entità. Un modello entity relationship (ER) è una rappresentazione delle diverse entità di un'azienda e delle relazioni tra le stesse. I modelli ER derivano dalle specifiche aziendali o dagli elementi acquisiti e vengono realizzati durante la fase analitica nell'ambito del system development life cycle, ovvero dei passi di sviluppo di un sistema. Consentono di separare le informazioni richieste da un'azienda dalle attività eseguite nella stessa. Anche se le aziende possono cambiare attività, il tipo di informazioni tende a rimanere costante. Di conseguenza anche le strutture dei dati tendono a essere costanti. Vantaggi dei modelli ER

• Documentano le informazioni per l'organizzazione in modo chiaro e preciso.

• Forniscono un'immagine chiara dei requisiti di accesso alle informazioni.

• Forniscono una rappresentazione grafica di facile comprensione per la progettazione del database.

• Costituiscono un'efficace struttura per l'integrazione di più applicazioni.

Componenti principali

• Entità: elemento significativo di cui occorre conoscere informazioni, ad esempio dipartimenti, impiegati e ordini.

• Attributo: elemento che descrive o qualifica un'entità. Ad esempio, gli attributi dell'entità impiegato sono matricola, nome, mansione, data di assunzione, numero di dipartimento e così via. I singoli attributi possono essere obbligatori o facoltativi. Questo stato è detto opzionalità.

• Relazione: associazione specificata tra entità, che indica opzionalità e cardinalità, ad esempio impiegati e dipartimenti, ordini e articoli.

Introduzione a Oracle9i: SQL I-15

Convenzioni per i modelli entity relationship

Entità Rettangolo a bordi arrotondati Nome univoco singolare Maiuscolo Sinonimo tra parentesi

Nome univoco singolare Maiuscolo Sinonimo tra parentesi Attributo Nome singolare Minuscolo Obbligatorio

Attributo Nome singolare Minuscolo Obbligatorio contrassegnato con "*" Facoltativo contrassegnato con "o"

DIPARTIMENTO

 

#*

numero

 
 

*

nome

o

località

IMPIEGATO assegnato a #* matricola * nome composto da o mansione
IMPIEGATO
assegnato a
#*
matricola
*
nome
composto da
o
mansione

Identificatore univoco (UID, Unique Identifier) Primario contrassegnato con "#" Secondario contrassegnato con "(#)"

con "#" Secondario contrassegnato con "(#)" I - 1 6 Copyright © Oracle Corporation, 2001. Tutti

I-16

Copyright © Oracle Corporation, 2001. Tutti i diritti riservati.

Modelli ER (continuazione) Entità

Per rappresentare un'entità in un modello utilizzare le seguenti convenzioni:

• rettangolo a bordi arrotondati di qualsiasi dimensione;

• nome entità univoco singolare;

• nome entità in maiuscolo;

• sinonimi facoltativi in maiuscolo tra parentesi ( ).

Attributi Per rappresentare un attributo di un modello, utilizzare le seguenti convenzioni:

• nomi singolari in minuscolo;

• attributi obbligatori, o valori che devono essere conosciuti, contrassegnati con un asterisco *.

• attributi facoltativi, o valori che possono essere conosciuti, contrassegnati con la lettera o Relazioni

Simbolo

Descrizione

Linea tratteggiata

Elemento facoltativo che indica "può essere"

Linea piena

Elemento obbligatorio che indica "deve essere"

Linea a "zampa di gallina"

Elemento di cardinalità che indica "uno o più"

Linea singola

Elemento di cardinalità che indica "uno e uno solo"

Introduzione a Oracle9i: SQL I- 16

Convenzioni utilizzate nei modelli entity relationship

Entità Rettangolo a bordi arrotondati Nome univoco singolare Maiuscolo Sinonimo tra parentesi

Nome univoco singolare Maiuscolo Sinonimo tra parentesi Attributo Nome singolare Minuscolo Obbligatorio

Attributo Nome singolare Minuscolo Obbligatorio contrassegnato con "*" Facoltativo contrassegnato con "o"

DIPARTIMENTO

 

#*

numero

 
 

*

nome

o

località

IMPIEGATO assegnato a #* matricola * nome composto da o mansione
IMPIEGATO
assegnato a
#*
matricola
*
nome
composto da
o
mansione

Identificatore univoco (UID, Unique Identifier) Primario contrassegnato con "#" Secondario contrassegnato con "(#)"

con "#" Secondario contrassegnato con "(#)" I - 1 7 Copyright © Oracle Corporation, 2001. Tutti

I-17

Copyright © Oracle Corporation, 2001. Tutti i diritti riservati.

Modelli ER (continuazione)

Unique Identifiers

Ogni direzione della relazione contiene:

• una label, ad esempio indicato da o assegnato a;

• un'opzionalità, ovvero deve essere o può essere;

• una cardinalità, ovvero uno e uno solo oppure uno o più.

Nota: Il termine cardinalità è sinonimo di grado.

Ogni entità di origine {può essere | deve essere} nome relazionale di {una e una sola | una o più} entità di destinazione.

Nota: è convenzione leggere in senso orario.

Identificatori univoci

Gli identificatori univoci (UID, Unique Identifier) sono combinazioni di attributi o di relazioni o di entrambi gli elementi, il cui scopo è distinguere le occorrenze di un'entità. Ogni occorrenza di un'entità deve essere identificabile in modo univoco.

• Contrassegnare i singoli attributi che fanno parte dell'UID con un simbolo numerico #

• Contrassegnare gli UID secondari con il simbolo di un numero tra parentesi (#)

Introduzione a Oracle9i: SQL I-17

Correlazione di più tabelle

Ogni riga di dati di una tabella è identificata in modo univoco da una chiave primaria (PK).

È possibile correlare logicamente i dati di più tabelle tramite chiavi esterne (FK).

Nome tabella:EMPLOYEES

…

Chiave primaria

Chiave esterna

Nome tabella:DEPARTMENTS

… Chiave primaria Chiave esterna Nome tabella: DEPARTMENTS Chiave primaria I - 1 8 Copyright ©

Chiave primaria

Chiave esterna Nome tabella: DEPARTMENTS Chiave primaria I - 1 8 Copyright © Oracle Corporation, 2001.

I-18

Copyright © Oracle Corporation, 2001. Tutti i diritti riservati.

Correlazione di più tabelle Ogni tabella contiene dati che descrivono esattamente un'entità. La tabella EMPLOYEES contiene ad esempio informazioni relative agli impiegati. Le categorie di dati sono indicate nella parte superiore delle tabelle, mentre i singoli casi sono elencati nella parte inferiore. Utilizzando un formato di tabella è possibile visualizzare, comprendere e utilizzare immediatamente le informazioni. Poiché i dati relativi a entità differenti vengono memorizzati in tabelle diverse può essere necessario combinare due o più tabelle per rispondere a una richiesta specifica. Può essere necessario ad esempio conoscere la località del dipartimento in cui lavora un impiegato. In questo caso occorrono informazioni dalla tabella EMPLOYEES (contenente i dati relativi agli impiegati) e dalla tabella DEPARTMENTS (contenente le informazioni sui dipartimenti). Un sistema RDBMS consente di correlare i dati di una tabella con quelli di un'altra tramite le chiavi esterne. Una chiave esterna è costituita da una o più colonne che fanno riferimento a una chiave primaria nella stessa o in un'altra tabella.

La possibilità di correlare i dati di una tabella con quelli di un'altra consente di organizzare le informazioni in unità gestibili separatamente. I dati degli impiegati possono essere memorizzati in una tabella distinta, in modo da essere logicamente distinti da quelli del dipartimento. Istruzioni per le chiavi primarie e le chiavi esterne

• Nelle chiavi primarie non sono ammessi valori duplicati.

• Le chiavi primarie in genere non possono essere modificate.

• Le chiavi esterne sono basate su valori di dati e sono puntatori puramente logici e non fisici.

• I valori delle chiavi esterne devono corrispondere a quelli di una chiave primaria o di una chiave univoca esistente oppure essere nulli.

• Una chiave esterna deve fare riferimento a una colonna di chiave primaria o di chiave univoca.

Introduzione a Oracle9i: SQL I-18

Terminologia dei database relazionali

3 4 2 6 5 1
3
4
2
6
5
1

I-19

Copyright © Oracle Corporation, 2001. Tutti i diritti riservati.

Terminologia utilizzata nei database relazionali I database relazionali possono contenere una o più tabelle. Le tabelle costituiscono la struttura di memorizzazione di base dei sistemi RDBMS e contengono tutti i dati necessari relativamente a elementi del mondo reale, ad esempio impiegati, fatture o clienti. Nella diapositiva è riportato il contenuto di una tabella o relazione EMPLOYEES. I numeri indicano gli elementi riportati di seguito.

1. Una riga singola o una tabella contenente tutti i dati richiesti per un determinato impiegato. Ogni riga di una tabella deve essere identificata in modo univoco da una chiave primaria che non consente righe duplicate. L'ordine delle righe non è significativo; specificarlo quando si recuperano i dati.

2. Una colonna o attributo contenente la matricola dell'impiegato. La matricola dell'impiegato identifica un impiegato in modo univoco nella tabella EMPLOYEES. Nell'esempio la colonna della matricola è indicata come chiave primaria. Una chiave primaria deve contenere un valore e tale valore deve essere univoco.

3. Una colonna che non costituisce un valore di chiave. Una colonna rappresenta un tipo di dato in una tabella; nell'esempio, lo stipendio di tutti gli impiegati. L'ordine delle colonne non è significativo quando vengono memorizzati i dati; specificarlo quando si recuperano i dati.

4. Una colonna contenente il numero del dipartimento, che funge anche da chiave esterna. Una chiave esterna è una colonna che definisce la relazione tra le tabelle. Una chiave esterna fa riferimento a una chiave primaria o a una chiave univoca della stessa o di un'altra tabella. Nell'esempio, DEPARTMENT_ID identifica in modo univoco un dipartimento nella tabella DEPARTMENTS.

5. Un campo può non contenere valori. In questo caso si parla di valore nullo. Nella tabella EMPLOYEES solo per gli impiegati il cui ruolo è rappresentante commerciale è presente un valore nel campo COMMISSION_PCT (commissione).

6. Un campo si trova all'intersezione tra una riga e una colonna e può contenere soltanto un valore.

Introduzione a Oracle9i: SQL I-19

Proprietà dei database relazionali

Un database relazionale:

è accessibile e modificabile tramite l'esecuzione di istruzioni SQL (Structured Query Language);

contiene un insieme di tabelle senza puntatori fisici;

utilizza una serie di operatori.

puntatori fisici; • utilizza una serie di operatori. I - 2 0 Copyright © Oracle Corporation,

I-20

Copyright © Oracle Corporation, 2001. Tutti i diritti riservati.

Proprietà dei database relazionali

In un database relazionale non viene specificato il percorso di accesso alle tabelle e non è necessario conoscere in che modo i dati sono disposti fisicamente.

Per accedere al database, si esegue un'istruzione SQL (Structured Query Language), il linguaggio standard ANSI (American National Standards Institute) per operare sui database relazionali. Tale linguaggio contiene una vasta gamma di operatori per il partizionamento e la combinazione delle relazioni. Il database può essere modificato tramite le istruzioni SQL.

Introduzione a Oracle9i: SQL I-20

Comunicazione con un sistema RDBMS mediante SQL

L'istruzione SQL viene immessa.

SELECT department_name

FROM

departments;

L'istruzione viene inviata a Oracle Server.

Oracle Server
Oracle
Server
viene inviata a Oracle Server. Oracle Server I - 2 1 Copyright © Oracle Corporation, 2001.
viene inviata a Oracle Server. Oracle Server I - 2 1 Copyright © Oracle Corporation, 2001.
viene inviata a Oracle Server. Oracle Server I - 2 1 Copyright © Oracle Corporation, 2001.

I-21

Copyright © Oracle Corporation, 2001. Tutti i diritti riservati.

Linguaggio SQL (Structured Query Language) SQL consente di comunicare con Oracle Server. SQL presenta i seguenti vantaggi:

• efficienza;

• facilità di apprendimento e utilizzo;

• funzionalità completa, in quanto consente di definire, recuperare e manipolare i dati delle tabelle.

Introduzione a Oracle9i: SQL I-21

RDBMS

Oracle Server Tabelle utente Dizionario dati
Oracle
Server
Tabelle utente
Dizionario dati
RDBMS Oracle Server Tabelle utente Dizionario dati I - 2 2 Copyright © Oracle Corporation, 2001.

I-22

Copyright © Oracle Corporation, 2001. Tutti i diritti riservati.

RDBMS

Oracle fornisce un sistema RDBMS (sistema di gestione di database relazionali, Relational Database Management System) flessibile, denominato Oracle9i. Grazie alle sue funzioni, è possibile memorizzare e gestire i dati con tutti i vantaggi di una struttura relazionale, nonché utilizzare PL/SQL, un motore che consente all'utente di memorizzare ed eseguire program unit. Oracle9i supporta inoltre Java e XML. Oracle Server consente di recuperare i dati in base a tecniche di ottimizzazione. Include funzionalità di protezione che controllano le modalità di accesso e utilizzo dei database. Tra le altre funzionalità figurano l'uniformità e la protezione dei dati tramite meccanismi di lock.

Oracle9i Server fornisce un approccio aperto, completo e integrato alla gestione delle informazioni. Oracle Server comprende un database Oracle e un'istanza di server Oracle. Ogni volta che si avvia un database, viene allocata un'area SGA (System Global Area) e vengono avviati i processi di background di Oracle. L'area di memoria SGA viene utilizzata per le informazioni del database condivise dagli utenti del database. La combinazione tra processi di background e buffer di memoria viene detta istanza Oracle.

Introduzione a Oracle9i: SQL I-22

Istruzioni SQL

SELECT

Recupero dati

INSERT

UPDATE

Comandi DML (Data Manipulation Language)

DELETE

MERGE

CREATE

ALTER

DROP

Comandi DDL (Data Definition Language)

RENAME

TRUNCATE

COMMIT

ROLLBACK

Comandi TCL (Transaction Control Language)

SAVEPOINT

GRANT

REVOKE

Comandi DCL (Data Control Language)

GRANT REVOKE Comandi DCL (Data Control Language) I - 2 3 Copyright © Oracle Corporation, 2001.

I-23

Copyright © Oracle Corporation, 2001. Tutti i diritti riservati.

Istruzioni SQL

Il linguaggio SQL Oracle è conforme agli standard riconosciuti del settore. La Oracle Corporation garantisce la futura compatibilità con i nuovi standard, coinvolgendo attivamente le persone con un ruolo chiave nelle commissioni normative SQL. Le commissioni normative riconosciute nel settore sono l'American National Standards Institute (ANSI) e l'International Standards Organization (ISO). Entrambe hanno accettato SQL come linguaggio standard per i database relazionali.

Istruzione

Descrizione

SELECT

Recupera i dati dal database.

INSERT

Inserisce nuove righe, modifica righe esistenti e rimuove quelle indesiderate dalle tabelle del database Noti collettivamente come comandi DML (Data Manipulation Language)

UPDATE

DELETE

MERGE

 

CREATE

Imposta, modifica e rimuove strutture dei dati dalle tabelle. Noti collettivamente come comandi DDL (Data Definition Language)

ALTER

DROP

RENAME

 

TRUNCATE

COMMIT

Gestisce le modifiche apportate da istruzioni DML. Le modifiche apportate ai dati possono essere raggruppate in transazioni logiche.

ROLLBACK

SAVEPOINT

 

GRANT

Concede o revoca diritti di accesso al database Oracle e alle strutture in esso contenute. {> Noti collettivamente come comandi DCL (Data Control Language)

REVOKE

Introduzione a Oracle9i: SQL I-23

Tabelle utilizzate nel corso

EMPLOYEES

Tabelle utilizza te nel corso EMPLOYEES DEPARTMENTS J O B _ G R A D E

DEPARTMENTS

JOB_GRADES

nel corso EMPLOYEES DEPARTMENTS J O B _ G R A D E S I -

I-24

Copyright © Oracle Corporation, 2001. Tutti i diritti riservati.

Tabelle utilizzate nel corso In questo corso verranno utilizzate le tre tabelle seguenti:

• tabella EMPLOYEES, contenente i dati di tutti gli impiegati;

• tabella DEPARTMENTS, contenente i dati di tutti i dipartimenti;

• tabella JOB_GRADES, contenente i dati degli stipendi per i diversi livelli.

Nota: la struttura e i dati di tutte le tabelle sono riportati nell'Appendice B.

Introduzione a Oracle9i: SQL I-24

Riepilogo

Oracle9 i Server è il database per Internet Computing.

Oracle9 i è basato sul sistema di gestione dei database relazionali a oggetti.

I database relazionali sono costituiti da relazioni, gestiti mediante operazioni relazionali e governati da vincoli di integrità dei dati.

Oracle Server consente di memorizzare e gestire le informazioni tramite il linguaggio SQL e il motore PL/SQL.

informazioni tramite il linguaggio SQL e il motore PL/SQL. I - 2 5 Copyright © Oracle

I-25

Copyright © Oracle Corporation, 2001. Tutti i diritti riservati.

Riepilogo

I sistemi di gestione di database relazionali sono costituiti da oggetti o relazioni, gestiti mediante operazioni e governati da vincoli di integrità dei dati.

La Oracle Corporation fornisce prodotti e servizi volti a soddisfare le diverse esigenze in materia di sistemi di gestione di database relazionali. I principali prodotti sono Oracle9i Database Server, con il quale memorizzare e gestire informazioni mediante SQL, e Oracle9i Application Server con cui eseguire tutte le applicazioni.

SQL

Oracle Server supporta il linguaggio SQL standard ANSI e contiene una serie di estensioni. SQL è il linguaggio utilizzato per comunicare con il server per l'accesso, la manipolazione e il controllo dei dati.

Introduzione a Oracle9i: SQL I-25

Introduzione a Oracle9i: SQL I-26

Scrittura di istruzioni sql SELECT di base Copyright © Oracle Corporation, 2001. Tutti i diritti

Scrittura di istruzioni sql SELECT di base

Scrittura di istruzioni sql SELECT di base Copyright © Oracle Corporation, 2001. Tutti i diritti riservati.

Copyright © Oracle Corporation, 2001. Tutti i diritti riservati.

Obiettivi

Al termine della lezione, lo studente sarà in grado di:

descrivere le caratteristiche delle istruzioni SQL SELECT;

eseguire un'istruzione SELECT di base;

distinguere le istruzioni SQL dai comandi

i SQL*Plus.

• distinguere le istruzioni SQL dai comandi i SQL*Plus. 1 - 2 Copyright © Oracle Corporation,

1-2

Copyright © Oracle Corporation, 2001. Tutti i diritti riservati.

Obiettivo della lezione

Per estrarre dati dal database, è necessario utilizzare l'istruzione SQL (Structured Query Language) SELECT. Potrebbe essere necessario limitare le colonne visualizzate. In questa lezione vengono descritte tutte le istruzioni SQL necessarie per eseguire tali azioni. È possibile creare istruzioni SELECT da utilizzare più volte. In questa lezione viene inoltre descritto l'ambiente iSQL*Plus in cui si eseguono le istruzioni SQL.

Nota: iSQL*Plus è un nuovo strumento di Oracle9i che fornisce un ambiente per browser in cui eseguire i comandi SQL. Nelle precedenti release di Oracle, SQL*Plus costituiva l'ambiente di esecuzione predefinito dei comandi SQL. SQL*Plus Plus è ancora disponibile e viene descritto nell'Appendice C.

Introduzione a Oracle9i: SQL 1-2

Caratteristiche delle istruzioni SQL SELECT

Proiezione

Caratteristiche delle istruzioni SQL SELECT Proiezione S e l e z i o n e Tabella

Selezione

istruzioni SQL SELECT Proiezione S e l e z i o n e Tabella 1 Tabella
Tabella 1 Tabella 1 Join Tabella 1 Tabella 2
Tabella 1
Tabella 1
Join
Tabella 1
Tabella 2
i o n e Tabella 1 Tabella 1 Join Tabella 1 Tabella 2 1 - 3

1-3

Copyright © Oracle Corporation, 2001. Tutti i diritti riservati.

Caratteristiche delle istruzioni SQL SELECT

Un'istruzione SELECT recupera le informazioni dal database. Un'istruzione SELECT consente di effettuare le operazioni riportate di seguito.

• Proiezione: la funzione di proiezione in SQL consente di scegliere le colonne di una tabella che si desidera vengano restituite da una query. È possibile scegliere un numero qualsiasi di colonne.

• Selezione: la funzione di selezione in SQL consente di scegliere le righe di una tabella che si desidera vengano restituite da una query. È possibile utilizzare diversi criteri per limitare le righe visualizzate.

• Join: la funzione di join in SQL consente di unire i dati memorizzati in tabelle diverse mediante la creazione di un collegamento tra di essi. Le operazioni di join verranno descritte in una lezione successiva.

Introduzione a Oracle9i: SQL 1-3

Istruzione SELECT di base

SELECT

*|{[DISTINCT] colonna|espressione [ alias],

}

FROM

tabella;

SELECT identifica le colonne .

FROM identifica la tabella.

le colonne . • FROM identifica la tabella . 1 - 4 Copyright © Oracle Corporation,

1-4

Copyright © Oracle Corporation, 2001. Tutti i diritti riservati.

Istruzione SELECT di base Nella sua forma più semplice, un'istruzione SELECT deve includere i seguenti elementi:

• una clausola SELECT che specifichi le colonne da visualizzare;

• una clausola FROM che specifichi la tabella contenente le colonne elencate nella clausola SELECT.

Nella sintassi:

SELECT

introduce un elenco di una o più colonne;

*

seleziona tutte le colonne;

DISTINCT elimina i duplicati; colonna|espressione seleziona la colonna o l'espressione specificata;

alias assegna alle colonne selezionate intestazioni diverse; FROM tabella specifica la tabella contenente le colonne.

Nota: in questo corso i termini parola chiave, clausola e istruzione assumono il seguente significato:

• con parola chiave si intende un singolo elemento SQL:

ad esempio SELECT e FROM

• con clausola si intende una parte di un'istruzione SQL:

ad esempio SELECT employee_id, last_name,

• con istruzione si intende una combinazione di due o più clausole:

ad esempio SELECT * FROM employees Introduzione a Oracle9i: SQL 1-4

Selezione di tutte le colonne

SELECT

*

FROM

departments;

di tutte le colonne SELECT * FROM departments; 1 - 5 Copyright © Oracle Corporation, 2001.
di tutte le colonne SELECT * FROM departments; 1 - 5 Copyright © Oracle Corporation, 2001.

1-5

Copyright © Oracle Corporation, 2001. Tutti i diritti riservati.

Selezione di tutte le colonne e di tutte le righe

È possibile visualizzare tutte le colonne di dati di una tabella inserendo un asterisco (*) dopo la parola

chiave SELECT. Nell'esempio riportato nella diapositiva la tabella DEPARTMENTS è composta da quattro colonne, DEPARTMENT_ID, DEPARTMENT_NAME, MANAGER_ID e LOCATION_ID, e da

sette righe, una per ciascun dipartimento.

È inoltre possibile visualizzare tutte le colonne della tabella elencandole dopo la parola chiave

SELECT. La seguente istruzione SQL visualizza ad esempio tutte le colonne e tutte le righe della

tabella DEPARTMENTS, ottenendo lo stesso risultato dell'esempio riportato nella diapositiva:

SELECT department_id, department_name, manager_id, location_id

FROM departments;

Introduzione a Oracle9i: SQL 1-5

Selezione di colonne specifiche

SELECT

department_id, location_id

FROM

departments;

department_id, location_id FROM departments; 1 - 6 Copyright © Oracle Corporation, 2001. Tutti i
department_id, location_id FROM departments; 1 - 6 Copyright © Oracle Corporation, 2001. Tutti i

1-6

Copyright © Oracle Corporation, 2001. Tutti i diritti riservati.

Selezione di colonne specifiche e di tutte le righe Per visualizzare colonne specifiche della tabella utilizzando l'istruzione SELECT, è necessario specificare i nomi di colonne, separandoli con una virgola. Nell'esempio riportato nella diapositiva vengono visualizzati tutti i numeri di dipartimento e di località contenuti nella tabella DEPARTMENTS.

Nella clausola SELECT, specificare le colonne che si desidera visualizzare, nell'ordine in cui si desidera che vengano restituite in output. Per visualizzare ad esempio la località prima del numero del dipartimento, da sinistra verso destra, utilizzare la seguente istruzione:

SELECT location_id, department_id FROM departments;

la seguente istruzione: SELECT location_id, department_id FROM departments; … Introduzione a Oracle9 i : SQL 1

la seguente istruzione: SELECT location_id, department_id FROM departments; … Introduzione a Oracle9 i : SQL 1

Introduzione a Oracle9i: SQL 1-6

Scrittura di istruzioni SQL

Le istruzioni SQL non prevedono la distinzione tra maiuscole e minuscole.

Le istruzioni SQL possono essere scritte su una o più righe.

Non è possibile abbreviare le parole chiave o dividerle su più righe.

Le clausole vengono in genere scritte su righe diverse.

Per facilitare la lettura del codice, è possibile utilizzare le indentazioni.

del codice, è possibile utilizzare le indentazioni. 1 - 7 Copyright © Oracle Corporation, 2001. Tutti

1-7

Copyright © Oracle Corporation, 2001. Tutti i diritti riservati.

Scrittura di istruzioni SQL

Le regole descritte di seguito consentono di creare istruzioni valide, che siano allo stesso tempo facili da leggere e da modificare:

le istruzioni SQL non prevedono la distinzione tra maiuscole e minuscole, se non altrimenti specificato.

è

possibile scrivere le istruzioni SQL su una o più righe;

non è possibile dividere le parole chiave su più righe o abbreviarle;

le clausole vengono in genere scritte su righe diverse per facilitarne la lettura e la modifica;

per facilitare la lettura del codice, è possibile utilizzare le indentazioni;

le parole chiave sono in genere scritte in lettere maiuscole; tutte le altre parole, come ad esempio

i nomi delle tabelle e le colonne, sono scritte in lettere minuscole.

Esecuzione di istruzioni SQL Utilizzando iSQL*Plus, fare clic sul pulsante Execute per eseguire il comando o i comandi nella finestra di editing.

Introduzione a Oracle9i: SQL 1-7

Impostazioni predefinite delle intestazioni di colonna

i SQL*Plus:

per impostazione predefinita la giustificazione dell'intestazione è centrata;

per impostazione predefinita l'intestazione viene visualizzata in maiuscolo.