SQL, acronimo di Structured Query Language, è un linguaggio creato per l'accesso a informazioni memorizzate nei database. Esso rappresenta in pratica il linguaggio parlato dai database.Nato con il nome SEQUEL nel 1974 ad opera di Donald Chamberlin nei laboratori dell' IBM come strumento per lavorare con DB che seguissero il modello relazionale, divenne subito lo standard industriale per i software che utilizzavano tale modello.
Nel 1986 l'ANSI lo adottò come standard, senza apportare modifiche sostanziali alla versione inizialmente sviluppata da IBM e nel 1987 l'ISO fece lo stesso. Tale processo di standardizzazione mirava alla creazione di un linguaggio che funzionasse su tutti i DBMS 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 inferiore al minimo, definito dall'Ansi come Entry Level.
Essendo un linguaggio dichiarativo, SQL non richiede la stesura di sequenze di operazioni (come ad esempio i linguaggi imperativi), imponendo, invece, di specificare le proprietà logiche delle informazioni ricercate.
Gli operatori, messi a disposizione dal SQL standard si dividono in quattro categorie:
- Operatori di confronto: (ad es. =, LIKE, >, <, <>, BETWEEN,...) servono a determinare uguaglianze e disuguaglianze tra valori e ad effettuare ricerche all'interno dei dati.
- Operatori aritmetici: (+, -, *, /) servono ad effettuare calcoli all'interno di una ricerca.
- Operatori condizionali: l'unico operatore di questo tipo è WHERE (dove) che serve a definire criteri di ricerca mirati.
- Operatori logici: tali operatori sono AND (e), OR (o, oppure), NOT (non), XOR (detto anche "OR esclusivo") i quali possono essere ripetuti più volte all'interno dell'elenco delle condizioni di ricerca.
SQL si divide fondamentalmente in tre sottoinsiemi:
1. Data Definition Language (DDL) - permette di creare, modificare o eliminare gli oggetti in un database. Sono i comandi DDL a definire la struttura del database e quindi dei dati ivi contenuti. E' bene precisare comunque che questo linguaggio non fornisce gli strumenti per modificare i dati stessi, per tale scopo si usa il DML; inoltre, l'utente deve avere i permessi necessari per agire sulla struttura del database e questi permessi vengono assegnati tramite il DCL.
2. Data Manipulation Language (DML) - fornisce i comandi per inserire, modificare, eliminare o leggere i dati all'interno delle tabelle di un database. La struttura di questi dati deve già essere stata definita tramite il DDL. Inoltre, il permesso di accedere a tali dati deve essere assegnato all'utente tramite il DCL.
Più nello specifico esso comprende:
- Il comando SELECT con il quale è possibile estrarre i dati in modo mirato dal database.
Sintassi: SELECT lista_elementi_selezione
FROM lista_riferimenti_tabella
[WHERE] espressione condizionale
[GROUP BY lista colonne]
[ORDER BY lista colonne]
Esempio: SELECT clienti_cognome, clienti_nome, clienti_città
FROM clienti
WHERE anni >= 18
ORDER BY clienti_cognome
La clausola ORDER BY ha la funzione di ordinare. L'ordinamento viene sempre applicato al primo attributo inserito nella SELECT. In questo caso la QUERY estrae l’elenco di tutti gli utenti maggiorenni ordinando l'output in base al cognome.
- Il comando INSERT ha la funzione di inserire i dati nelle tabelle.
Sintassi: INSERT INTO nome_tabella
- Il comando UPDATE ha la funzione di modificare i dati nelle tabelle. Il nome di ogni campo che deve essere modificato va dopo la parola SET e deve essere seguito dal simbolo "=" e dal nuovo valore che deve assumere
Sintassi: UPDATE nome_tabella
SET nome_campo1 = valore1_nuovo
- Il comando DELETE ha la funzione di cancellare i dati dalle tabella
Sintassi: DELETE FROM nome_tabella
WHERE nome_campo=valore
Ovviamente una tabella priva di clausola WHERE cancella tutte le righe della tabella specificata, tuttavia esiste un altro modo per svuotare completamente una tabella, con il comando TRUNCATE TABLE.
- Il comando TRUNCATE TABLE serve a svuotare completamente una tabella. 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.
Sintassi: TRUNCATE [TABLE] nome_tabella
3. Data Control Language (DCL) - serve a fornire o revocare agli utenti i permessi necessari per poter utilizzare i comandi DML e DDL, oltre agli stessi comandi DCL (che gli servono per poter a sua volta modificare i permessi su alcuni oggetti).
In particolare:
- Il comando Grant fornisce uno o più permessi a un determinato utente (es: il permesso di inserimento in una tabella, di modificarla o eliminarla) e di amministratore di valore.
- Il comando Revoke revoca uno o più permessi a un determinato utente (es: il permesso di cancellazione da una tabella).

Nessun commento:
Posta un commento