Corsi on-line
Chiudi
Newsletter:
  • Seguici su Facebook
  • Seguici su Twitter
  • Seguici su Google+
  • Seguici via RSS
  • Seguici col tuo Smartphone

SELECT - Interrogazione di una tabella

Eccoci arrivati al capitolo più lungo ed articolato ma se vogliamo anche più semplice ed intuitivo della guida. COn l'istruzione SELECT possiamo creare degli script di interrogazione al database, interrogazioni dette query.

La sintassi base di una SELECT SQL è la seguente:

SELECT * FROM nome_tabella
dove * sta per tutti i campi. La query
SELECT id, autore FROM autori
estrae tutti i campi dalla tabella autori. Al posto di * posso usare i nomi dei campi che mi interessa estrarre. Inseriamo adesso un filtro nella query utilizzando l'operatore WHERE:
SELECT autore FROM autori WHERE id = 1
Il risultato sarà J.R.R. Tolkien. Possiamo anche decidere di conoscere l'id di una tabella in funzione di un altro parametro di ricerca. Ad esempio:
SELECT id FROM autori WHERE autore = 'J.R.R. Tolkien'
Attenzione: effettuando una ricerca in funzione di un dato di tipo numerico non dobbiamo utilizzare gli apici per racchiudere il valore; in SQL i singoli apici delimitano una stringa.

Creiamo adesso una serie di query sulla tabella libri che, essendo più ampia, ci permette di giocare un po di più.

(L'articolo continua più sotto...)

Estraiamo tutti i titoli dalla tabella libri dove l'id dell'autore è 1 ed il titolo inizia per I utilizzando gli operatori AND per stabilire due condizioni entrambe vere e LIKE per effettuare una ricerca generica:

SELECT titolo FROM libri WHERE id_autore = 1 AND titolo LIKE 'I*'
L'operatore LIKE necessita del sotto-operatore * per identificare tutto il resto della stringa. 'I*' vuol dire tutto ciò che inizia per I.

LIKE permette di effettuare ricerche su stringhe a partire dall'inizio della stringa, dalla fine della stringa o dalla fine. Rispettivamente potremmo avere:

SELECT * FROM libri WHERE titolo LIKE '*Anelli'
e/o
SELECT * FROM libri WHERE titolo LIKE '*Signore*'
impostando semplicemente * come conviene. In altri DBMS il simbolo * per il LIKE viene sostituito da %.

Proviamo ad effettuare quattro ricerche in cui il prezzo è: inferiore a 50 euro; superiore a 50 euro; diverso da 50 euro; compreso tra 30 e 60 euro. Avremo rispettivamente:

SELECT * FROM libri WHERE prezzo < 50
SELECT * FROM libri WHERE prezzo > 50
SELECT * FROM libri WHERE prezzo <> 50
SELECT * FROM libri WHERE prezzo BETWEEN 30 AND 60
Esiste poi il modo di unire i risultati di due tabelle in un unico risultato con le query di unione, grazie alla clausola UNION. Vediamo un esempio:
SELECT * FROM autori UNION SELECT * FROM libri
Per fare altri esempi dobbiamo immaginare un diverso caso di studio. Create la tabella utenti composta dai campi id (AutoIncrement), nome (Text) e cognome (Text). In un simile caso possiamo avere molti nomi o cognomi uguali; se ad esempio avessimo una tabella dove ci sono molti utenti di nome Luca e volessimo estrarre solo una volta il dato Luca in una ricerca, dovremmo utilizzare la clausola DISTINCT come segue:
SELECT DISTINCT nome FROM utenti WHERE nome = 'Luca'
Riprenderemo l'istruzione SELECT nei capitoli 11 e 12, parlando rispettivamente di relazioni e di funzioni di aggregazione dei dati.

Corsi
Corso MS AccessCorso MS Access
Impara a creare e gestire database in maniera semplice e veloce. A partire da 39 €.
Corso MySQLCorso MySQL
Gestione del database open-source. A partire da 49 €.
Corso SQL e DatabaseCorso SQL e Database
Creazione e gestione di database relazionali. A partire da 39 €.
Sommario
Annunci

Mr.Webmaster

Pubblicità
Chi Siamo
Contattaci
Collabora
Note Legali
© 2003 - 2012 Mr.Webmaster - Il portale dei Webmaster Italiani - Tutti i diritti riservati | Powered by IKIweb Internet Media S.r.l. - PIVA 02848390122