UN LINGUAGGIO CHE SI CHIAMA SQL 

L'SQL (System Query Language) è basilare per l'utilizzo di un data base relazionale e raccoglie tre tipi di comandi:

  1. Comandi per creare, cancellare e modificare le tabelle,

  2. Comandi per compiere ricerche,

  3. Comandi per assegnare le autorizzazioni.

Vediamoli con ordine.

 

 

1.  COMANDI DI CREAZIONE E DI MODIFICA

L'SQL permette una ricca definizione di dati (es decimali, interi, esponenziali, dati orari ecc.) mediante
CREATE TABLE. Questo comando ottiene l'effetto di allocare lo spazio per una nuova tabella, ma per caricare valori precisi nella tabella che è stata creata, c'è bisogno di INSERT INTO seguito dai valori che devono essere scritti dentro. Ad esempio, per inserire 'Carlo Rossi' nella tabella IMPIEGATI si scrive:
 
INSERT INTO IMPIEGATI
VALUES ('Carlo','Rossi')

 
In pratica con CREATE TABLE si ha:

IMPIEGATI

   

Con INSERT INTO IMPIEGATI si ha:

IMPIEGATI

Carlo Rossi

* * *

Per copiare i dati da una tabella all'altra si usa sempre lo stesso comando nella forma:
 
INSERT INTO IMPIEGATI
SELECT * FROM CITTADINI

 
Questo comando copia i dati di CITTADINI entro IMPIEGATI. Per cancellare i dati c'è
DELETE. Nel caso che la cancellazione sia complessa allora il comando comprende le condizioni composte OR e AND. Ad esempio, supponiamo di cancellare tutti i voli in partenza o in arrivo da Milano:
 
DELETE FROM VOLI
WHERE DECOLLO = 'Milano'
OR DESTINAZIONE = ' Milano'

 
Per apportare l'aggiunta di una colonna si usa il comando
ALTER TABLE; invece si usa DROP per cancellare una colonna; MODIFY per cambiarne il tipo, e ADD per aggiungerne una nuova. Tutti questi sono comandi strutturali cioè modificano la struttura di una tabella. Invece per modificare i dati interni alla tabella si ricorre ad UPDATE.

 


2.  COMANDI DI RICERCA

Il linguaggio SQL per la ricerca prevede questa macro straordinaria:
 
SELECT x
FROM y
WHERE z

 
Che equivale ad una intera proposizione la quale significa pressappoco:
 
RICERCA I DATI x
DALLA TABELLA y
QUANDO SONO VERIFICATE LE CONDIZIONI z

 
Diciamo che x indica la colonna, o le colonne della tabella (o le tabelle) y su cui si compie la ricerca. Infine i parametri z indicano le condizioni logiche della ricerca. Ad esempio, per cercare gli orari di PARTENZA e di ARRIVO dei voli che vanno a MILANO si scrive:
 
SELECT PARTENZA, ARRIVO
FROM VOLI
WHERE DESTINAZIONE = 'MILANO'

La SELECT realizza le operazioni logiche di selezione, di proiezione e di unione con colonne appartenenti a più tabelle. Ad esempio la tabella AEREOPORTI riporta il nome dell'aereoporto nella tabella NOMEREOPORTO. Per avere accanto alla città di partenza anche il rispettivo nome dell'aereoporto, la SELECT invoca sia la tabella VOLI sia la tabella AEREOPORTI  

SELECT PARTENZA, NOMEREOPORTO
FROM VOLI, AEREOPORTI
WHERE DESTINAZIONE = 'MILANO'

L'SQL permette di scrivere accanto a WHERE condizioni assai speciali. Ad esempio con LIKE si ricerca per simiglianza. Per trovare tutte le destinazioni che cominciano per L si scrive:
 
WHERE DESTINAZIONE = 'L%'

L'output di una SELECT è provvisorio, per renderlo stabile cioè per creare una nuova tabella con i risultati trovati si ricorre a
CREATE VIEW. In sostanza il data base SQL ha tabelle "primarie" preparate con CREATE TABLE e tabelle successive, chiamate "viste", frutto della manipolazione. 

 

 


3. COMANDI DI AUTORIZZAZIONE


L'accesso al data base prevede
diversi gradi di responsabilità. Al vertice c'è il "Data Base Administrator" (DBA) che, come dice il nome, è il responsabile generale il quale non ha restrizioni di sorta.

Mediante il comando GRANT vengono assegnate responsabilità inferiori. La più semplice è l'ammissione di un nuovo utente con relativo nome identificativo e password:
 
GRANT CONNECT
TO nome-utente
IDENTIFIED BY password


Con il comando GRANT si assegnano autorizzazioni per elaborare una tabella specifica, oppure per leggere soltanto, oppure solo per effettuare ricerche, oppure per creare nuove tabelle ecc. Cioè si usa un solo comando per le più svariate forme di autorizzazione.
Le autorizzazioni concesse per mezzo di GRANT, vengono revocate con il comando
REVOKE.

* * *

Tutti i comandi SQL sono lanciati in modo interattivo da tastiera oppure vengono inseriti all'interno di un programma imperativo (Cobol, PL1, Basic ecc.) e quindi si integrano completamente con la logica della programmazione.

 

Prima di concludere si deve sottolineare le notevoli qualità dell'SQL che sono:

- elevata chiarezza,
- potenza elaborativa delle sue funzioni,
- e coerenza sintattica complessiva.

Queste virtù gli hanno permesso di affermarsi come linguaggio universale per la gestione del data base relazionale.

  Indietro

anno 2007





=