○
○
○
○
○
○
○
○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○
Introduzione
A
l giorno d’oggi, i sistemi per la gestione di database
implementano un linguaggio standard chiamato SQL (Structured Query Language).
Fra le altre cose, il linguaggio SQL consente di prelevare, aggiungere, aggiornare
e cancellare le informazioni contenute in un database. SQL è un linguaggio standard
riconosciuto dall’istituto ANSI (American National Standards Institute) che consente di accedere a database Oracle, SQL Server, DB2 e MySQL. Questo volume
descrive l’utilizzo del linguaggio SQL offrendo una grande quantità di esempi
pratici. Inoltre sono disponibili online tutti gli script e i programmi presentati in
questo volume (per informazioni consultare il paragrafo “Esempi per i capitoli”).
In questo volume verranno trattati i seguenti argomenti.
■
Utilizzo del linguaggio SQL standard e delle estensioni sviluppate da Oracle
Corporation per il proprio database.
■
Esplorazione del linguaggio PL/SQL (Procedural Language/SQL) che consente di scrivere programmi contenenti istruzioni SQL.
■
Uso di SQL*Plus per eseguire istruzioni, script e report SQL; SQL*Plus è lo
strumento che consente di interagire con il database.
■
Esecuzione di query, inserimenti, aggiornamenti e cancellazioni sul database.
■
Creazione di tabelle, sequenze, indici, viste e utenti nel database.
■
Esecuzione di transazioni formate da più istruzioni SQL.
■
Definizione di tipi a oggetti nel database e creazione di tabelle di oggetti per
gestire dati di tipo avanzato.
■
Uso di oggetti di grandi dimensioni, fino a 128 TB di dati a caratteri e binari e
uso dei puntatori a file esterni.
■
Esecuzione di calcoli complessi utilizzando le funzioni analitiche.
■
Uso di tutte le funzionalità più recenti di Oracle10g, compresi i tipi
BINARY_FLOAT, la clausola BINARY_DOUBLE e le estensioni dedicate agli oggetti
di grandi dimensioni e alle collezioni.
XII
INTRODUZIONE
Gestione della sicurezza del database.
■
Implementazione di tecniche di ottimizzazione per migliorare la rapidità di
esecuzione delle istruzioni SQL.
■
Basi dell’esecuzione di codice SQL in Java tramite JDBC.
Il volume è costituito da 16 capitoli e un’Appendice.
■
Capitolo 1 – Introduzione
In questo capitolo vengono trattati i database relazionali, viene introdotto il linguaggio SQL, vengono presentati alcuni esempi di query e si introduce l’utilizzo
di SQL*Plus per eseguire le query; inoltre viene brevemente introdotto il linguaggio PL/SQL.
Capitolo 2 – Prelevamento di informazioni dalle tabelle
di un database
Estrazione di informazioni da una o più tabelle del database utilizzando istruzioni
SELECT; uso delle espressioni aritmetiche per l’esecuzione di calcoli, filtraggio
delle righe utilizzando una clausola WHERE e ordinamento delle righe tratte da
una tabella.
Capitolo 3 – Uso di semplici funzioni
Questo capitolo descrive l’uso delle funzioni interne Oracle. Una funzione accetta zero o più parametri di input e restituisce un parametro di output. Le funzioni
consentono di svolgere operazioni quali il calcolo delle medie e della radice quadrata di un numero.
Capitolo 4 – Memorizzazione ed elaborazione di date e ore
Descrive i metodi impiegati nel database Oracle per elaborare e memorizzare le
date e le ore. Inoltre spiega come memorizzare una data e un’ora in un valore
timestamp e l’uso degli intervalli per la memorizzazione di un periodo temporale.
Capitolo 5 – Uso di SQL*Plus
In questo capitolo si utilizza SQL*Plus per visualizzare la struttura di una tabella,
per modificare un’istruzione SQL, per salvare ed eseguire uno script, per formattare
l’output delle colonne, per definire e utilizzare delle variabili e per creare dei
report.
Capitolo 6 – Le subquery
Spiega come inserire delle istruzioni SELECT all’interno di un’istruzione SQL
esterna. L’istruzione SELECT interna è chiamata subquery. Inoltre vengono trattati vari tipi di subquery e la possibilità di realizzare tramite subquery istruzioni
molto complesse a partire da componenti semplici.
INTRODUZIONE
XIII
Capitolo 7 – Query avanzate
Questo capitolo descrive l’impiego di query contenenti funzioni e operatori avanzati, come gli operatori su insiemi che combinano le righe restituite da più query,
la funzione TRANSLATE() che consente di convertire una stringa, la funzione
DECODE() che consente di ricercare un valore, l’espressione CASE che consente di
svolgere operazioni logiche if-then-else e le clausole ROLLUP e CUBE che restituiscono righe contenenti subtotali. Inoltre si vedrà come utilizzare le funzioni analitiche per svolgere calcoli complessi come la ricerca dei prodotti più venduti in
ciascun mese, dei migliori venditori e così via. Infine descrive l’esecuzione di
query su dati organizzati in una gerarchia e l’impiego della nuova clausola MODEL
introdotta a partire da Oracle10g per eseguire calcoli sulle righe.
Capitolo 8 – Come modificare il contenuto delle tabelle
Insegna ad aggiungere, modificare ed eliminare le righe utilizzando istruzioni
INSERT, UPDATE e DELETE e spiega come rendere permanenti i risultati delle transazioni utilizzando l’istruzione COMMIT oppure annullarli completamente utilizzando l’istruzione ROLLBACK. Inoltre spiega come un database Oracle può elaborare contemporaneamente più transazioni.
Capitolo 9 – La sicurezza del database
Questo capitolo parla degli utenti del database e spiega come i privilegi consentono agli utenti di svolgere compiti specifici all’interno del database.
Capitolo 10 – Creazione di tabelle, sequenze, indici e viste
Descrive la gestione delle tabelle e delle sequenze per generare una serie di numeri; introduce l’uso degli indici che, come l’indice di un libro, consentono di accedere più rapidamente alle righe di una tabella. Inoltre parla delle viste, costituite
da query predefinite operanti su una o più tabelle. Fra gli altri vantaggi, le viste
consentono di nascondere la complessità a un utente e di implementare un ulteriore livello di sicurezza consentendo agli utenti di osservare solo una parte dei dati
effettivamente contenuti nelle tabelle.
Capitolo 11 – Introduzione alla programmazione PL/SQL
Questo capitolo esplora il linguaggio PL/SQL che si basa su SQL e consente di
scrivere programmi contenenti istruzioni SQL. PL/SQL è un linguaggio di terza
generazione che contiene costrutti di programmazione standard.
Capitolo 12 – Gli oggetti del database
Spiega come creare nuovi tipi a oggetti, contenenti attributi e metodi. Descrive
l’utilizzo di vari tipi a oggetti e spiega come definire oggetti colonna e tabelle di
oggetti; infine insegna a manipolare gli oggetti in SQL e PL/SQL.
XIV
INTRODUZIONE
Capitolo 13 – Le collezioni
Questo capitolo spiega come creare collezioni che possono contenere più elementi. I tipi a collezione possono essere impiegati per definire le colonne delle tabelle; infine spiega come manipolare le collezioni in SQL e PL/SQL.
Capitolo 14 – Gli oggetti LOB
Presenta la creazione di oggetti di grandi dimensioni, che possono essere utilizzati per memorizzare fino a 128 TB di caratteri e dati binari e come puntare a un file
esterno. Inoltre descrive l’utilizzo dei vecchi tipi LONG, tutt’ora supportati da
Oracle10g per motivi di compatibilità all’indietro.
Capitolo 15 – Esecuzione di codice SQL in Java
In questo capitolo vengono introdotte le basi dell’esecuzione di istruzioni SQL in
Java tramite JDBC (Java Database Connectivity), un’interfaccia di programmazione che consente a un programma Java di accedere a un database.
Capitolo 16 – Ottimizzazione delle istruzioni SQL
L’ultimo capitolo parla di alcuni suggerimenti per l’ottimizzazione delle istruzioni SQL che consentono di ridurre il tempo necessario per l’esecuzione delle query.
Inoltre descrive il funzionamento dell’ottimizzatore Oracle e dei suggerimenti
per l’ottimizzatore.
Appendice – I tipi di dati Oracle
L’Appendice mostra i tipi di dati disponibili in Oracle SQL e PL/SQL.
A chi è dedicato questo volume
Questo volume può essere utile ai seguenti lettori.
■
Sviluppatori nei linguaggi SQL e PL/SQL.
■
Amministratori di database che richiedono una conoscenza approfondita del
linguaggio SQL.
■
Utenti professionali che devono scrivere query SQL per ottenere informazioni dal database della propria azienda.
■
Responsabili tecnici o consulenti che richiedono un’introduzione ai linguaggi
SQL e PL/SQL.
Per la consultazione di questo volume non è necessaria alcuna conoscenza
preliminare sull’uso del database Oracle, di SQL o di PL/SQL.
INTRODUZIONE
XV
Esempi per i capitoli
Tutti gli script, i programmi e i file SQL utilizzati in questo volume possono
essere prelevati dal sito Web all’indirizzo http://informatica.mcgraw-hill.it nella sezione Minisito. I file sono contenuti in un file Zip. Dopo aver prelevato il file Zip,
tale file può essere aperto con WinZip e i file in esso contenuti possono essere
estratti nella directory sql_book, che conterrà le tre subdirectory seguenti.
■
SQL Contiene gli script SQL utilizzati nel volume, compresi gli script per la
creazione e l’inserimento di dati nelle tabelle.
■
sample_files Contiene i file di esempio utilizzati nel Capitolo 14.
■
Java Contiene i programmi Java utilizzati nel Capitolo 15.