Dopo la prima versione introdotta da IBM alla fine degli anni '70 per un prototipo di ricerca denominato System R, negli anni '80 fu adottato con il nome attuale come linguaggio per i software DBMS prodotti dalla IBM (DB2 e SQL/DS).
Nel 1986 l'ANSI (American National Sandards Institute) pubblicò il primo standard del linguaggio SQL, al quale seguì qello dell'ISO (International Standards Organization) pubblicato nel 1987. Successivamente le specifiche del linguaggio vennero precisate e ampliate: SQL2 1992 ISO 9075 - SQL3 1999 ISO 9075-2.
Oggi il linguaggio SQL viene usato in tutti i prodotti DBMS come linguaggio di comandi per l'utente della base di dati. Le parole-chiave che costituiscono i comandi del linguaggio SQL possono essere usate in modo interattivo, scrivendole direttamente sulla tastiera nel momento in cui si vogliono attivare. Tuttavia in molti ambienti i comandi possono essere inviati al sistema attraverso un'interfaccia grafica, che utilizza menu, finestre e icone per guidare l'utente nella costruzione dell'istruzione SQL.
Rispetto ai linguaggi di programmazione, il linguaggio SQL, per la semplicità nell'uso delle istituzioni, la concisione dei comandi e la visione tabellare dei dati, può sicuramente aumentare la produttività nel progetto e nello sviluppo delle applicazioni orientate alla gestione di archivi di dati.
SQL può essere suddiviso in 4 sottolinguaggi che meglio ne descrivono la peculiarità:
Le tabelle vengono definite con il comando CREATE TABLE, seguito dal nome della tabella e dall'elenco degli attributi. Per ogni attributo occorre specificare il nome e il tipo di dato (chiave primaria, chiave esterna, obbligatorietà, valore di default)
ESERCIZIO GUIDATO - 1
NOTA: se NON si usano le virgolette, il nome viene scritto automaticamente in MAIUSCOLO.
Clicca il pulsante esegui, sul box stato è apparsa la scritta “Comando eseguito con successo.”?
SI → chiudi e vai avanti
NO → ricontrolla come hai scritto il codice di sopra!!
4. riesegui il passo 2 e nel passo 3 crea questa nuova tabella:
Clicca il pulsante esegui, sul box stato è apparsa la scritta “Comando eseguito con successo.”?
SI → chiudi e vai avanti
NO → ricontrolla come hai scritto il codice di sopra!!
La relazione che intercorre tra cittadini e auto è del tipo N:N occorre quindi semplificarla creando una terza tabella (che chiamiamo "proprietà") contenente le chiavi esterne delle due tabelle che diventeranno chiave primaria composta di questa terza tabella.
NOTA: errore da evitare, sbagliare il singolare con il plurale (cittadino/cittadini)
NOTA: l'ultima riga è una chiave primaria composta
Clicca il pulsante esegui, sul box stato è apparsa la scritta “Comando eseguito con successo.”?
SI → chiudi e vai avanti
NO → ricontrolla come hai scritto il codice di sopra!!
Clicca nel box laterale(database) “Tabelle” e dalla barra dei menù --> visualizza clicca “aggiorna tabelle”
Dalla barra dei menù --> strumenti scegli la voce relazioni
inserisci le tabelle, conterranno già la relazione tra esse come mostrato in figura.
Durante l'uso delle tabelle può capitare che si debba limitare l'immissione dei dati. I vincoli intrarelazionali - CONSTRAINTS - verificano l'output dei dati di una tabella, sono condizioni che devono essere verificate da ogni istanza del database e coinvolgono una sola relazione.
NOT NULL: vale per l'attributo in cui è indicato (non può essere lasciato vuoto)
UNIQUE: permette la definizione di chiavi candidate, solo su un solo campo
PRIMARY KEY: definisce uno o più campi i cui valori identificano in modo univoco ciascun record della tabella.
I vincoli interrelazionali permettono di creare un legame permanente tra diverse tabelle.
FOREIGN KEY --> REFERENCES
La struttura di una tabella può essere modificata con il comando ALTER TABLE, che consente la variazione degli attributi, del dominio, degli indici e dei vincoli.
NOTA: La modifica dei domini è subordinata alla compatibilità rispetto al contenuto della tabella. Se, per esempio, un campo VARCHAR viene modificato in INTEGER è chiaro che solo i valori numerici verranno trasferiti (il testo viene eliminato). Per gli interventi sulla lunghezza, nei campi testo, se la dimensione diminuisce i caratteri in eccedenza vengono troncati.
codice che permette l'inserimento di una nuova colonna
codice che permette di eliminare una colonna
codice che permette di eliminare una intera TABELLA
I valori degli attributi nelle righe della tabella possono essere inseriti, aggiornati o cancellati rispettivamente con i comandi INSERT, UPDATE e DELETE
codice che permette di POPOLARE la tabella cittadini con tre records
codice che permette di AGGIORNARE il record cognome della persona con codFis = a BNC
codice che permette di CANCELLARE il record della persona con codFis = BNC