Il comando Select in SQL
Il comando SELECT del linguaggio SQL mi permette di effettuare delle interrogazioni in una tabella.
SELECT attributi
FROM tabelle
[ WHERE condizione ]
[ GROUP attributi ]
[ HAVING condizione ]
[ ORDER BY attributi ]
Gli attributi sono la lista delle colonne da visualizzare, separate tra loro da una virgola.
SELECT att1, att2, FROM tabella
Per vederle tutte basta indicare l'asterisco *.
SELECT * FROM tabella
Nella clausola FROM indico la tabella o le tabelle usate nella query, separate tra loro da una virgola.
Se le tabelle sono due o più, queste compongono un prodotto cartesiano.
SELECT * FROM tabella1, tabella2
Nella clausola opzionale WHERE indico l'eventuale condizione della selezione.
SELECT * FROM tabella WHERE anno=2000
La condizione WHERE seleziona le righe della tabella o del prodotto cartesiano delle tabelle indicate nella FROM.
Il risultato della selezione è una tabella.
Nota. La condizione è un'espressione booleana in cui sono presenti attributi, costanti e operatori di confronto (<,>,=,<=,>=, <>) e logici (and, or, not). L'operatore NOT ha la precedenza su AND e OR. Non essendoci una precedenza tra OR e AND, è sempre consigliabile usare le parentesi tonde per definire l'ordine di valutazione tra gli operatori logici.
Le clausole opzionali GROUP e HAVING permettono il raggruppamento dei dati.
Infine, la clausola opzionale ORDER BY permette l'ordinamento dei dati.
Un esempio pratico
Ho una tabella Studenti con quattro attributi (Nome, Cognome, Età, Città).
Gli attributi sono le colonne della tabella mentre le righe sono i record, dati o istanze.
Esempio 2
Per selezionare gli studenti di Milano digito il comando
SELECT * FROM Studenti WHERE Città = "Milano"
Il risultato è una tabella con le righe che soddisfano la condizione Città="Milano".
Esempio 3
Per visualizzare l'intero contenuto della tabella senza condizioni digito
SELECT * FROM Studenti
Il carattere * indica tutti i campi.
La query estrapola tutti i record dalla tabella.
Esempio 4
Per visualizzare soltanto il Nome, Cognome ed Età indico gli attributi nella SELECT
SELECT Nome, Cognome, Età FROM Studenti
Il risultato della query è una proiezione ossia una tabella composta soltanto dalle colonne che ho indicato.
Non sono invece visualizzate le informazioni relative alla colonna 'Città'.
E così via.