Upload
others
View
63
Download
0
Embed Size (px)
Citation preview
Il linguaggio SQL
(Structured Query Language)
In informatica, SQL (Structured Query Language) è un linguaggio standardizzato per database basati sul
modello relazionale, progettato per le seguenti operazioni:
• creare e modificare schemi di database (DDL = Data Definition Language);
• inserire, modificare e gestire dati memorizzati (DML = Data Manipulation Language);
• interrogare i dati memorizzati (DQL = Data Query Language);
• creare e gestire strumenti di controllo e accesso ai dati (DCL = Data Control Language).
L'SQL nasce nel 1974 ad opera di Donald Chamberlin, nei laboratori dell'IBM( International Business Machines
Corporation ),a quel tempo però si chiamava SEQUEL. Nasce come strumento per lavorare con database che
seguano il modello relazionale. L'ANSI(American National Standards Institute ,Istituto Americano di
Normalizzazione),lo adottò come standard fin dal 1986, senza apportare modifiche sostanziali alla versione
inizialmente sviluppata da IBM. Nel 1987 la ISO(Organization for Standardization)fece lo stesso. Questa prima
versione standard è denominata SQL/86.
Il linguaggio SQL si divide in:
DDL (Data Definition Language)
DML (Data Manipulation Language)
DCL (Data Control Language)
QL (Query Language)
In informatica il Data Definition Language (DDL) è un linguaggio che permette di creare, modificare o
eliminare gli oggetti in un database ovvero agire sullo schema di database. Sono i comandi DDL a definire
la struttura del database e quindi l'organizzazione logica dei dati in esso contenuti, ma non fornisce gli
strumenti per modificare i valori assunti dai dati o per interrogare i dati stessi per il quale si usano
rispettivamente il Data Manipulation Language (DML) e il Data Query Language (QL). È utilizzato sia in fase
di progettazione, sia in fase di ristrutturazione del database. Per agire sulla struttura del database l'utente
deve avere i permessi necessari, assegnati tramite il Data Control Language (DCL). In informatica Data
Manipulation Language (DML) è un linguaggio che consente di leggere, inserire, modificare o eliminare i
dati in un database. Attualmente il linguaggio di manipolazione dati più utilizzato è l'SQL (Structured Query
Language), che trova il suo maggiore campo di applicazione nel trattamento dei database relazionali.
COMANDI SQL
Nel caso di SQL, i verbi utilizzati sono SELECT per la ricerca, INSERT per l'inserimento, UPDATE per
l'aggiornamento e DELETE per la cancellazione.
UPDATE
Il comando update ha la funzione di modificare i dati delle tabelle.
Il nome di ogni campo che deve essere modificato va dichiarato dopo la parola chiave SET e deve essere
seguito dal simbolo " = " (uguale) e dal nuovo valore che deve assumere.
È possibile modificare più campi della stessa riga in un unico comando update, separandoli l'uno dall'altro
con il simbolo ", " (virgola).
DELETE
Il comando delete ha la funzione di cancellare i dati dalle tabelle. Come il comando update anche delete può
operare in modo generico cancellando tutte le righe della tabella oppure può identificare le righe da
cancellare mediante la parola chiave aggiuntiva WHERE e la condizione (o le condizioni) ad essa associata.
TRUNCATE TABLE
Come già detto, una Delete priva di clausola Where cancella tutte le righe dalla tabella specificata. Tuttavia,
esiste un altro modo per svuotare completamente una tabella: il comando Truncate Table. Alcuni DBMS
implementano questo comando (che non è presente nello standard SQL) in modo più veloce rispetto a una
Delete, ad esempio cancellando il file dei dati senza leggerlo e ricreandolo vuoto. Generalmente però questo
impedisce che vengano restituite alcune informazioni accessorie, come il numero di righe cancellate.
I componenti delle basi di dati
• Schema (struttura): i campi che costituiscono la tabella
• Istanza: il record della tabella
• Tupla: la riga della tabella , a volte il risultato di un’interrogazione
Una tabella in SQL è formata da:
• attributi
• domini, di tipo standard
• vincoli intrarelazionali (opzionali)
Sintassi creazione tabella
VINCOLI INTRARELAZIONALI
• Verificano l’input dei dati di una tabella
• Se i dati non corrispondono allo schema di immissione non vengono accettati
• Chiamati anche constraints (costrizioni), sono condizioni che devono essere verificate da ogni
istanza della base di dati.
PRINCIPALI VINCOLI INTRARELAZIONALI
• NOT NULL: l’attributo non può essere lasciato vuoto.
• UNIQUE (unico): il vincolo UNIQUE garantisce che tutti i valori presenti in una colonna siano diversi .
• PRIMARY KEY: indica una chiave primaria univoca per tutta la tabella, che deve sempre essere di tipo NOT NULL.
Vincoli interralazionali
• Creare un legame permanente tra tabelle diverse.
• Vincolo tra due dati presenti in due tabelle diverse, chiamati chiave primaria (PRIMARY KEY) e di chiave esterna (FOREIGN KEY)
• Integrità referenziale (insieme di vincoli interrelazionali) verifica le relazioni tra record di tabelle correlate, agisce quando i dati collegati tra loro da vincoli vengono eliminati o modificati.
Esempio vincoli interrelazionali
Modifica schema tabella
• La modifica dello schema di una tabella avviene con il costrutto ALTER TABLE.
Alter in italiano modificare.
DROP Columns to a table elimina la colonna nella tabella ADD Columns to a table aggiunge colonne a una tabella.