


Il comando SELECT - Il linguaggio Sql
Il comando SELECT attiva le interrogazioni sulle tabelle e le operazioni relazionali per ottenere nuove tabelle
La struttura generale del comando SELECT è la seguente:
SELECT ............
FROM ............
WHERE ............
Accanto alla parola:
SELECT vengono indicati i nomi degli attributi (le colonne) da elencare (se è necessario elencare tutti gli attributi basta scrivere il segno * dopo la parola SELECT
FROM vengono indicati i nomi delle tabelle su cui deve operare il comando SELECT
WHERE specifica i criteri di ricerca e combina le condizioni che devono essere soddisfatte dai dati; possono apparire più condizioni combinate con gli operatori AND, OR e NOT
Operatori per l'impostazione dei criteri nelle query =
<
<=
>
>=
<>
And
Or
Not
uguale a minore di
minore o uguale a
maggiore di
maggiore o uguale a
diverso da
per combinare 2 condizioni che devono essere entrambi verificate
almeno una delle 2 condizioni combinate deve essere verificate
negazione della condizione
Esempio: per visualizzare l'elenco con cognome, nome e codice fiscale dei dipendenti con funzione di impiegato
SELECT Cognome, Nome, CodFisc
FROM Personale
WHERE Funzione="Impiegato";
avremo come risultato una tabella cosi:

Esempio: per richiedere tutti i dati dei dipendenti che abitano in provincia di Milano
SELECT *
FROM Personale
WHERE Prov="MI";
avremo come risultato una tabella cosi:

Il comando SELECT possiede 2 predicati: ALL e DISTICT.
Il predicato ALL indica la richiesta di ottenere come risultato dell'interrogazione tutte le righe che soddisfano alle condizioni contenute nel comando
Questo predicato è di default, cioè se non viene fatta nessuna specificazione vengono visualizzate tutte le righe della tabella che rispondono alle condizioni poste; pertanto, scrivere:
SELECT ALL *
FROM Personale
WHERE Prov="MI";
O
SELECT *
FROM Personale
WHERE Prov="MI";
è la stessa cosa !!
Se viene specificato il predicato DISTINCT le righe duplicate nella tabella risultante vengono ridotte a una
Esempio: se si vuole ottenere l'elenco di tutte le professioni presenti tra i dipendenti della tabella
SELECT DISTINCT Funzione
FROM Personale;
avremo come risultato una tabella cosi:
Il comando SELECT nella forma senza DISTICT produrrebbe l'elenco di tutte le professioni dei dipendenti ripetendo tante volte la stessa professione in diverse righe, tanti quanti sono i dipendenti che svolgono quella funzione:
Se si vuole modificare l'intestazione delle colonne che riporta i nomi degli attributi, occorre dichiarare la stringa della nuova intestazione insieme alla clausola AS
Esempio: si vuole ottenere l'elenco delle diverse province da cui provengono idipendenti della tabella Personale, intestando la colonna del risultato con il titolo di Province_Dipendenti
SELECT DISTINCT Prov AS Province_Dipendenti
FROM Personale;
avremo come risultato una tabella cosi:
Se si vuole conservare la tabella risultante dall'operazione, occorre aggiungere al comando SELECT la clausola INTO seguita dal nome da assegnare alla nuova tabella
Esempio: si vuole creare una nuova tabella di nome Manager contenente le informazioni dei soli dipendenti che hanno la funzione di Dirigente
SELECT * INTO Manager
FROM Personale
WHERE Funzione="Impiegato";
avremo come risultato una tabella cosi:
