SELECT STATEMENT Clausola WHERE permette di limitare il numero di record da estrarre SELECT */ [DISTINCT] colonna/ espressione [alias],… FROM table [WHERE condizione]; ESEMPI SELECT nome, cognome FROM anagrafica WHERE id_utente > 50; SELECT nome, cognome FROM anagrafica WHERE nome = Pippo;
SELECT STATEMENT Operatori nella clausola WHERE OperatoreDescrizione =Uguale >Maggiore di >=Maggiore o uguale di <Minore <=Minore o uguale di <>Diverso (valido anche =!) BETWEEN … AND …Tra due valori IN(SET)Compreso tra i valori del set LIKEConfronto con il pattern di caratteri IS NULLÈ un valore nullo
SELECT STATEMENT Operatori logici OperatoreDescrizione ANDRestituisce TRUE se entrambe le condizioni sono vere ORRestituisce TRUE se almeno una condizione è vera NOTRestituisce TRUE se la condizione che segue il NOT è falsa
SELECT STATEMENT Esempi Operatori logici SELECT nome, cognome FROM anagrafica WHERE id_utente > 50 AND indirizzo LIKE Piazza%; SELECT nome, cognome FROM anagrafica WHERE id_utente > 50 OR id_utente < 100;
SELECT STATEMENT Esempi Operatori logici SELECT nome, cognome FROM anagrafica WHERE nome NOT IN(Paolo, Gianni); Loperatore NOT può essere usato con altri operatori SQL: WHERE stipendio NOT BETWEEN AND 15000; WHERE nome NOT LIKE P%; WHERE cap IS NOT NULL;
SELECT STATEMENT Regole di precedenza OperatoreDescrizione 1Operatori aritmetici 2Operatori di concatenazione 3Operatori di comparazione 4IS [NOT] NULL,LIKE,[NOT] IN 5[NOT] BETWEEN 6NOT condizione logica 7AND condizione logica 8OR condizione logica Con le parentesi si forzano le precedenze fra gli operatori
SELECT STATEMENT Esempi Operatori logici SELECT nome, cognome FROM anagrafica WHERE nome = Paolo OR nome = Giulio AND stipendio > 10000; Prima condizione : nome = Giulio AND stipendio > Seconda condizione : nome = Paolo La query si può leggere: Selezionare le righe per cui il nome sia Giulio e guadagna più di o il nome sia Paolo
SELECT STATEMENT Esempi Operatori logici SELECT nome, cognome FROM anagrafica WHERE (nome = Paolo OR nome = Giulio) AND stipendio > 10000; Prima condizione : nome = Giulio OR nome = Paolo Seconda condizione : stipendio > La query si può leggere: Selezionare le righe per cui il nome sia Giulio o Paolo e guadagna più di 10000
SELECT STATEMENT Clausola ORDER BY Seleziona le righe in base ad un ordine ASC ordine ascendente (DEFAULT) DESC ordine discendente è posta come ultima riga nellSQL statement ordina numeri, caratteri, date e i null values vengono posti al fondo della lista per lordine ascendente e in cima per lordine discendente
SELECT STATEMENT Clausola ORDER BY E possibile usare lalias di un campo per lordinamento SELECT nome, cognome, stipendio AS annuo FROM anagrafica ORDER BY annuo;
SELECT STATEMENT ORDER BY su più colonne è possibile usare lalias di un campo per lordinamento lordine in cui vengono elencate le colonne nella ORDER BY rappresenta lordine in cui verrano ordinate è possibile ordina solo per colonne non presenti nella clausola SELECT non cè limite per il numero di colonne su cui ordinare SELECT id_utente, nome, cognome, stipendio FROM anagrafica ORDER BY id_utente, stipendio DESC;