Cos’è SQL?
L’acronimo SQL sta per Structured Query Language e rappresenta il linguaggio attraverso il quale è possibile interagire con i database. SQL comunque non deve essere confuso con un linguaggio di programmazione. Questo infatti non fornisce alcuna funzione di controllo del flusso dei dati, come funzioni, cicli o strutture if-else. SQL viene spesso definito come “linguaggio composto”; questo si suddivide infatti in:
- DDL (Data Definition Language)
- DML (Data Manipulation Language)
Il DDL si occupa e comprende tutti quei comandi finalizzati alla definizione dei dati, come creazione e gestione dei database e delle tabelle.
Il DML, invece, comprende tutti quei comandi finalizzati alla manipolazione dei dati come le operazioni di ricerca o di aggiornamento dei dati.
Comandi per la definizione di schemi
Per schema si intende una singola base di dati. Con SQL si possono creare, cancellare e gestire i data base presenti. Di seguito l’elenco dei comandi appartenenti al DDL
Create database
Il comando CREATE DATABASE <nome> crea un data base con il nome specificato:
CREATE DATABASE studenti;
Drop database
Il comando DROP DATABASE<nome> elimina lo schema specificato e tutte le tabelle in esso contenute:
DROP DATABASE studenti;
Comandi per la definizione e gestione delle tabelle
Come già visto, un data base è costituito da tabelle. Con SQL si possono creare, cancellare e gestire le varie tabelle. Di seguito l’elenco dei comandi seguiti da un semplice esempio.
Create table
Il comando CREATE TABLE <nome> (<definizione>) crea una tabella con il nome specificato e con la definizione della struttura indicata tra parentesi, dove separati da virgola vengono specificati nome e tipo dei campi.
create table negozio (id NUMERIC, nome VARCHAR(25), citta VARCHAR(25),indirizzo VARCHAR(80), cap VARCHAR(5));
Create table è un comando tutto sommato semplice. Ovviamente è necessario avere idee ben precise di come deve essere la struttura della tabella che si vuole creare e dei campi che questa conterrà. Oltre alla tabella e ai suoi campi bisognerà fare attenzione anche ai tipi di dato specificati.
Rename
Il comando RENAME <vecchio nome tabella> TO <nuovo nome> rinomina la tabella specificata.
rename copia_negozio to negozio;
Drop table
Il comando DROP TABLE <nome> elimina la tabella con il nome specificato ed il suo eventuale contenuto.
Attenzione a questo comando: drop table elimina fisicamente la tabella specificata, il che non corrisponde ad eliminare il solo contenuto
drop table negozio;
Alter table
Il comando ALTER TABLE <nome> <comando secondario> modifica la tabella con il nome specificato applicando su di essa il comando indicato.
Con alter table è quindi possibile eseguire una modifica alla struttura della tabella. E’ quindi possibile modificare colonne, campi, chiavi, e nomi.
// Il comando che segue elimina la chiave primaria, precedentemente specificata per la tabella indicata
ALTER TABLE <nome tabella> DROP PRIMARY KEY;
ALTER TABLE libri DROP PRIMARY KEY;
Comandi per la manipolazione dei dati
Il DML comprende tutti quei comandi di manipolazione dei dati come le operazioni di ricerca o di aggiornamento dei dati. Le operazioni di manipolazione vengono comunemente chiamate query (interrogazione) e si possono suddividere in:
• query di estrazione;
• query di aggiornamento.
Query di estrazione
Le query di estrazione sono identificate con l’istruzione
SELECT, che è probabilmente l’istruzione più utilizzata dell’sql. Le select permettono di interrogare il nostro data base e di ottenere come risultato tutti i record che soddisfano i nostri criteri di ricerca. Il risultato ottenuto da una query è a tutti gli effetti una tabella, composta quindi da righe e colonne. Le colonne saranno i campi che specificheremo nella select, mentre le righe rappresentano ogni record con le caratteristiche da noi indicate.L’istruzione select può essere molto complessa e può essere composta da più clausole che determinano la complessità dell’interrogazione da effettuare.
Query di aggiornamento
Le query di aggiornamento sono identificate con le istruzioni INSERT INTO, UPDATE e DELETE e ci permettono di eseguire sul nostro data base operazioni di inserimento, modifica o cancellazione dei dati.
L’istruzione SELECT
Come detto, la SELECT è l’istruzione più utilizzata nell’SQL avendo lo scopo di ricercare e quindi estrarre dei dati da una o più tabelle.
Nella select è inoltre possibile specificare i criteri di selezione, di raggruppamento e di ordinamento.
Partendo dalla tabella sotto riportata vediamo come costruire le varie istruzioni select per estrarre le informazioni
Se si vuole estrarre tutti i campi della tabella si può utilizzare l’operatore asterisco * che ci permette, quindi, di non dover scrivere tutti i campi.
SELECT * FROM persone;
Estrazione di alcuni i campi dalla tabella “persone”
SELECT nome, cognome, email FROM persone
L’operatore COUNT:
In una query è possibile utilizzare l’operatore count per avere come risultato della ricerca non i singoli valori trovati, ma il numero dei risultati.
Utilizzo dell’operatore COUNT (Considerando la tabella di esempio i valori ritornati dal count per questo tipo di query sarà 6
SELECT COUNT (idPersona) AS Tot FROM persone;
L’operatore SUM:
A differenza del del count non conteggia, ma somma i valori estratti di un campo numerico
Utilizzo dell’operatore SUM (Considerando la tabella di esempio i valori ritornati dalla sommatoria per questo tipo di query sarà 5441
SELECT SUM(stipendio) as TotStip FROM persone;