Il linguaggio SQL per database relazionali

Materie:Appunti
Categoria:Informatica
Download:312
Data:24.05.2005
Numero di pagine:6
Formato di file:.doc (Microsoft Word)
Download   Anteprima
linguaggio-sql-database-relazionali_1.zip (Dimensione: 7.39 Kb)
readme.txt     59 Bytes
trucheck.it_il-linguaggio-sql-per-database-relazionali.doc     40.5 Kb


Testo

U.D. 4 – IL LINGUAGGIO SQL
Il linguaggio SQL (Structured Query Language) è un linguaggio non procedurale, non diciamo operazioni da fare passo a passo, che è diventato uno standard tra i linguaggi per la gestione di database relazionali. Non è neanche un linguaggio di programmazione perché non ha strutture di controllo dell’algoritmo. Il linguaggio SQL viene usato in tutti i prodotti DBMS come linguaggio di comandi per l’utente del database. Secondo la terminologia del linguaggio SQL un database è costituito da tabelle, che rappresentano relazioni; gli attributi sono le colonne della tabella e i record sono le righe della tabella.
Gli identificatori, nomi di tabelle e di attributi, sono costituiti da sequenze di carattere con lunghezza massima uguale a 18 caratteri: devono iniziare con una lettera e possono contenere anche il carattere _ .
Nella dichiarazione della struttura di una tabella occorre specificare il tipo dei dati scelti per gli attributi.
Nelle colonne della tabella gli attributi che hanno valore non disponibile o non definito assumono il valore Null.
Comandi DDL
Per creare tabelle si usa il comando CREATE TABLE.

La struttura della tabella può essere successivamente modificata con il comando ALTER TABLE, per aggiungere una nuova colonna (ADD) a quelle già esistenti, oppure per togliere una colonna (DROP).

L’istruzione CREATE INDEX viene utilizzata per creare un nuovo indice su una tabella esistente, indicando il nome della tabella e il nome dell’attributo o degli attributi ai quali associare l’indice. Se non si vuole che ci siano valori duplicati per l’attributo associato ad indice in righe diverse, occorre usare la clausola UNIQUE.

Comandi DML
I valori degli attributi possono essere inseriti, aggiornati o cancellati rispettivamente con i comandi INSERT, UPDATE e DELETE.

Comando SELECT
Questo comando è molto potente e allo stesso tempo facile da utilizzare. Con il comando select vengono attivate le interrogazioni sulle relazioni e le operazioni relazionali per ottenere nuove tabelle. Il comando select possiede due predicati ALL e DISTINCT. Con ALL si indica di ottenere come risultato dell’interrogazione tutte le righe che soddisfano le condizioni contenute nel comando. Se viene specificato il predicato DISTINCT le righe duplicate nella tabella risultante vengono ridotte ad una. La tabella che contiene come risultato dell’interrogazione con Select normalmente possiede un’intestazione delle colonne che riporta i nomi degli attributi, ciò si fa con la clausola AS.
L’operazione di selezione, che consente di ricavare da una relazione un’altra relazione contenente solo le righe che soddisfano ad una certa condizione, viene realizzata nel linguaggio SQL utilizzando la clausola Where del comando Select.
L’operazione di proiezione, che permette di ottenere una relazione contenente solo alcuni attributi della relazione di partenza, si realizza indicando accanto alla parola Select l’elenco degli attributi richiesti.
Il comando Select può operare su più tabelle, indicandone i nomi (separati da virgola) dopo la parola From; scrivendo poi dopo la parola Where i nomi degli attributi che si corrispondono nelle due tabelle (legati tra loro dal segno = ), si realizza in pratica l’operazione di congiunzione di due tabelle secondo un attributo comune.
Se si vuole conservare la tabella risultante dall’operazione, occorre aggiungere al comando Select la clausola INTO seguita dal nome da assegnare alla nuova tabella.
Le funzioni di aggregazione
All’interno del comando Select possono essere usate funzioni predefinite che agiscono sui valori contenuti in insiemi di righe della tabella e che per questo motivo si chiamano funzioni di aggregazione.
• Funzione COUNT
La funzione COUNT conta il numero di righe presenti in una tabella. Argomento della funzione può essere il nome di un attributo oppure il carattere * : nel primo caso non vengono conteggiate le righe che hanno valore Null, nel secondo caso anche quelle. In sostanza la funzione Count (*) serve per ottenere la cardinalità di una relazione.
Se utilizzata in un comando Select che contiene il controllo di una condizione scritta dopo Where, la funzione Count restituisce il numero delle righe che soddisfano alla condizione specificata.
La stessa funzione nella versione Count (Distinct X) consente di ottenere il numero dei valori diversi tra loro nella colonna X che soddisfano alla condizione scritta dopo Where.
• Funzione SUM
La funzione SUM restituisce la somma di tutti i valori contenuti in una colonna specificata come argomento della funzione: naturalmente l’attributo utilizzato nel calcolo deve essere di tipo numerico.
• Funzione AVG
In modo analogo agisce la funzione AVG per calcolare la media dei valori numerici contenuti in una determinata colonna, con l’eventuale aggiunta dell’opzione Distinct.
• Funzione MIN & MAX
Le funzioni MIN e MAX restituiscono rispettivamente il minimo e il massimo tra i valori della colonna di una tabella specificata come argomento della funzione. Valgono per campi di tipo carattere.
Ordinamenti e Raggruppamenti
Nel comando Select si può inserire la clausola ORDER BY per ottenere i risultati di un’interrogazione ordinati secondo i valori contenuti in una o più colonne, tra quelle elencate accanto alla parola Select. L’ordinamento può essere crescente oppure decrescente: i due tipi di ordinamento sono specificati usando rispettivamente le parole chiave ASC per crescente e DESC per decrescente. La clausola Order By è in genere l’ultimo elemento di un comando SQL. Negli ordinamenti il valore Null compare all’inizio delle sequenze crescenti e alla fine delle sequenze decrescenti.
Con l’uso delle funzioni di aggregazioni è possibile estendere la struttura del comando Select con l’aggiunta della clausola GROUP BY per raggruppare un insieme di righe aventi lo stesso valore nelle colonne indicate: questa opzione produce una riga di risultati per ogni raggruppamento. Se si utilizza una clausola Group By, tutti gli attributi che compaiono nella lista accanto alla parola Select devono essere inclusi nella clausola Group By oppure devono essere argomenti di una funzione di aggregazione. La struttura del comando Select con raggruppamenti può essere ulteriormente ampliata con la clausola HAVING con la quale è possibile sottoporre al controllo di una o più condizioni i gruppi creati con la clausola Group By. La clausola Having presenta caratteristiche analoghe alla clausola Where, ma agisce in modo differente: con Where vengono poste condizioni sulle righe della tabella, con Having il controllo delle condizioni viene fatto sui risultati delle funzioni di aggregazioni applicate a gruppi di righe.
Le condizioni di ricerca
Le condizioni di ricerca sono utilizzate insieme alle clausole Where e Having per determinare i criteri di selezione rispettivamente delle righe e dei raggruppamenti.
• L’operatore BETWEEN controlla se un valore è compreso all’interno di un intervallo di valori, inclusi gli estremi. È possibile specificare, anteponendolo a Between, anche l’operatore logico NOT per valutare la condizione opposta, cioè per controllare se il valore non rientra nell’intervallo specificato.
• L’operatore IN controlla se un valore appartiene ad un insieme specificato di valori.
• L’operatore LIKE confronta il valore di un attributo di tipo carattere con un modello di stringa che può contenere caratteri jolly. I caratteri jolly sono l’underscore [ _ ] per indicare un singolo carattere qualsiasi in quella posizione della stringa, il percento [ % ] per indicare una qualsiasi sequenza di caratteri in quella posizione della stringa.
• Il predicato IS NULL confronta il valore in una colonna con il valore Null. L’uso di questo predicato è il solo modo per controllare la presenza del valore Null in una colonna.
I comandi per la sicurezza
L’amministratore della base di dati può stabilire il diritto di accesso per utenti specifici o per tutti gli utenti. Il comando GRANT concede i permessi, specificando il tipo di accesso, le tabelle sulle quali è consentito l’accesso e l’elenco degli utenti ai quali è permesso di accedere. La revoca dei permessi con annullamento dei diritti di accesso viene effettuato con il comando REVOKE. I permessi con le opzioni Select e Update, nei comandi Grant e Revoke, diventano più restrittivi specificando, tra parentesi tonde e separati con la virgola, i nomi delle colonne che l’utente può vedere o modificare.
Le viste
Il linguaggio SQL consente di decidere le modalità con le quali gli utenti possono vedere le tabelle del database, creando una finestra, detta VIEW (vista), su alcuni o tutti i dati contenuti in una o più tabelle. La vista viene identificata con un nome assegnato in fase di creazione con il comando CREATE VIEW. Le viste sono finestre dinamiche sulle tabelle del database, in quanto ogni modifica è disponibile per l’utente attraverso la vista. Una vista può essere eliminata con il comando DROP VIEW. Il creatore della vista, usando il comando Grant illustrato in precedenza, fornisce all’utente il diritto di accesso ai dati attraverso l’utilizzo della vista.
1

Esempio