Informatica 3 Liceo Scientifico Scienze Applicate/Linguaggio SQL

Indice del libro

Il linguaggio SQL modifica

Tutti i database relazionali supportano il linguaggio SQL (Structured Query Language)che permette di creare il database, modificarne la struttura (nuove tabelle o colonne etc), inserire/cancella e modificare i dati contenuti e di poter interrogare il database per estrarre le informazioni che ci interessano.

Esiste una base comune del linguaggio SQL, supportata da tutti i database, con delle possibili estensioni che sono invece del particolare database scelto.

L'SQL nasce nel 1974 ad opera di Donald Chamberlin, nei laboratori dell'IBM. Nasce come strumento per lavorare con database che seguano il modello relazionale. A quel tempo però si chiamava SEQUEL (la corretta pronuncia IPA è [ˈɛsˈkjuˈɛl], quella informale [ˈsiːkwəl]). Nel 1975 viene sviluppato un prototipo chiamato SEQUEL-XRM; con esso si eseguirono sperimentazioni che portarono, nel 1977, a una nuova versione del linguaggio, che inizialmente avrebbe dovuto chiamarsi SEQUEL/2 ma che poi divenne, per motivi legali, SQL. Su di esso si sviluppò il prototipo System R, che venne utilizzato da IBM per usi interni e per alcuni suoi clienti. Ma, dato il suo successo, anche altre società iniziarono subito a sviluppare prodotti basati su SQL. Nel 1981 IBM iniziò a vendere alcuni prodotti relazionali e nel 1983 rilasciò DB2, il suo DBMS relazionale diffuso ancor oggi 2015. SQL divenne subito lo standard industriale per i software che utilizzano il modello relazionale.

L'ANSI lo adottò come standard fin dal 1986, senza apportare modifiche sostanziali alla versione inizialmente sviluppata da IBM. Nel 1987 la ISO fece lo stesso. Questa prima versione standard è denominata SQL/86. Negli anni successivi si realizzarono altre versioni, che furono SQL/89, SQL/92 e SQL/2003. Tale processo di standardizzazione mirava alla creazione di un linguaggio che funzionasse su tutti i DBMS (Data Base Management Systems) relazionali, ma questo obiettivo non fu raggiunto. Infatti, i vari produttori implementarono il linguaggio con numerose variazioni e, in pratica, adottarono gli standard ad un livello non superiore al minimo, definito dall'Ansi come Entry Level.

Originariamente progettato come linguaggio di tipo dichiarativo, si è successivamente evoluto con l'introduzione di costrutti procedurali, istruzioni per il controllo di flusso, tipi di dati definiti dall'utente e varie altre estensioni del linguaggio.

Essendo un linguaggio dichiarativo, SQL non richiede la stesura di sequenze di operazioni (come ad es. i Linguaggi imperativi), piuttosto di specificare le proprietà logiche delle informazioni ricercate. Esso si divide in:

   Data Definition Language (DDL) - permette di creare e cancellare database o di modificarne la struttura
   Data Manipulation Language (DML) - permette di inserire, cancellare, modificare i dati
   Data Control Language (DCL) - permette di gestire gli utenti e i permessi
   Query language (QL) - permette di interrogare il database, cioè di leggere i dati.
   Device Media Control Language (DMCL) - permette di controllare i supporti (memorie di massa) dove vengono memorizzati i dati.


Noi incominciamo a studiare il comando per poter interrogare (query) il nostro database, il comando e' l'istruzione SELECT che ha molte opzioni, la sua struttura sintattica e' la seguente

SELECT [ ALL | DISTINCT | TOP ]  Espressione_su_Colonna [[as] Nuovo_Nome_Colonna] {, Espressione_su_Colonna [[as] Nuovo_Nome Colonna]}
FROM Nome_Tabella [[as] alias] {, Tipo_di_Join join Nome_Tabella [[as] alias] on Condizione_di_Join}
[WHERE Condizione]
[GROUP BY Nome_colonna] 
[HAVING Condizione_su_colonne_aggregate]
[ORDER BY Nome_Colonna [asc|desc] {, Nome_Colonna [asc|desc]}]