Copyrigtht © 1996, 1997 Universita' di Firenze. All rights reserved.
Free license available.
a cura di:
Alessandro Fiorenzi
Revisori:
Prof. F.Pirri, Ing.
M. Lunghi, Ing. C.
Vestri
|
Il linguaggioSQL (Structured Query Language) era inizialmente progettato per essere usato in modo convenzionale, ponendo frasi d'interrogazione e/o d'elaborazione inviate da un terminale al DBMS, al terminale arrivavano i risultati. In seguito fu integrato con chiamate a DB all'interno di linguaggi di alto livello.
SQL è un linguaggio che definisce in sè un linguaggio di definizione dei dati DDL (Data Definition Language), è un linguaggio di manipolazione dei dati DML (Data Manipulating Language). Il linguaggio SQL non è un linguaggio procedurale; con SQL mediante frasi sintatticamente molto semplici, si richiede al DBMS di operare specifiche elaborazioni su la base di dati. SQL offre meccanismi di "protezione" mediante il concetto di vista. Infatti, in relazione all'utente, si ha una specifica vista del Db. Per esempio, il magazziniere non ha interesse, e non deve accedere ai dati della contabilità, a lui sono quindi assegnati dei diritti per leggere, leggere/scrivere, su specifiche aree del DB e non su altre.
Vediamo alcuni degli statement
più significativi di SQL
|
È chiaro che il set istruzioni di SQL è molto più ampio, ma gli statement visti sono alla base di strutturazione delle operazioni di accesso alla base di dati
Ultimo Aggiornamento 23 Settembre 1998
Istruzione CREATEL'istruzione CREATE TABLE serve per create tabelle.
|
Istruzione INSERT
L'istruzione INSERT serve per aggiungere nuove righe in una tabella o in una vista basata su tabelle. L'istruzione è:
Esempio
In questo modo si inserisce nella tabella anagrafica una nuova riga attribuendo ai campi, nell'ordine in cui sono stati definiti, i valori elencati nella clausola VALUE. |
Istruzione UPDATE
L'istruzione UPDATE serve per cambiare valori esistenti in una tabella o in una vista.
Esempio.
Tale istruzione consente di modificare informazioni
già presenti nella tabella anagrafica; in particolare,
le tuple che soddisfano la condizione vengono aggiornate
ponendo 25 come età e pattinaggio come sport. |
Istruzione DELETE
L'istruzione DELETE
serve per cancellare righe da una tabella o da una vista.
Esempio
Con tale istruzione si eliminano dalla tabella
anagrafica tutte le tuple che hanno 'Feltri' come valore
del campo cognome |
Istruzione GRANT
La sintassi del comando per SQL di Oracle è la seguente:
Esempio:
In questo modo si concede a tutti gli utenti di poter
eseguire sulla tabella anagrafica delle SELECT solo sui
campi cognome e nome. Esempio.
È l'istruzione analoga a quella vista per SQL di Oracle. |
Istruzione REVOKE
L'istruzione REVOKE serve per revocare i privilegi sugli oggetti agli utenti. La sintassi del comando per SQL di Oracle è la seguente:
Esempio.
In questo modo si revoca a tutti gli utenti il
privilegio di poter eseguire sulla tabella anagrafica
delle SELECT solo sui campi cognome e nome. La sintassi del comando per Transact-SQL di SQL Server
è:
Esempio.
Tale istruzione revoca il privilegio di eseguire la SELECT sulle colonne cognome e nome della tabella anagrafica a tutti gli utenti. |
Istruzione SELECTL'istruzione SELECT serve per estrarre informazioni
dal database.
Si osservi che la clausola SELECT realizza l'operatore
di proiezione dell'algebra relazionale, non quello di
selezione; quest'ultimo è realizzato dalla clausola
WHERE. ALL significa che vengono restituite tutte le tuple ottenute dall'interrogazione; in genere, ALL è di default. DISTINCT significa che restituisce solo le tuple che sono uniche nel risultato, cioè produce una "relazione" e non solamente una "tabella". Nella lista_scelte sono contenute quali informazioni devono essere fornite in uscita che possono essere:
La clausola FROM è seguita dalla lista di tabelle, separate da virgole, che vengono usate nell'istruzione SELECT. In più, è possibile dare un alias alle tabelle. Tali alias, in genere, vengono usati nei riferimenti relativi a nomi di colonne che possono essere ambigui in quanto più tabelle possono avere colonne con stessi nomi colonne. WHERE serve per specificare le restrizioni o condizioni che devono essere soddisfatte dalle tuple per far parte della tabella risultate. Con la clausola GROUP BY si possono raggruppare le tuple per valori omogenei degli attributi specificati nella lista_attributi. HAVING è l'equivalente del WHERE applicata ai gruppi di tuple, quindi, deve far riferimento agli attributi di GROUP BY. ORDER BY serve per ordinare le tuple risultati dall'interrogazione in base alla lista_attributi che può contenere solo attributi che compaiono nella lista_scelte (anche implicitamente se si usa *). |