Selezione di record con query SQL in Python
Nel codice di test della query SQL c'è il comando
SELECT, che seleziona i dati
dal database. Ora analizziamo più in dettaglio
la sua sintassi. Eccola:
query = "SELECT * FROM tabella WHERE condizione"
Dopo il nome della tabella si può aggiungere
il comando WHERE, in cui si specifica
una condizione per i record selezionati. Sono ammesse le seguenti
operazioni di confronto: =,
!=, <>, <, >,
<=, >=.
Vediamo la loro applicazione con esempi.
Esempio
Selezioniamo l'utente con id uguale a 2:
query = "SELECT * FROM users WHERE id=2"
Risultato del codice eseguito:
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
Esempio
Selezioniamo gli utenti con id maggiore di 2:
query = "SELECT * FROM users WHERE id>2"
Risultato del codice eseguito:
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 4, 'name': 'user4', 'age': 30, 'salary': 900}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
{'id': 6, 'name': 'user6', 'age': 28, 'salary': 900}
Esempio
Selezioniamo gli utenti con id maggiore o
uguale a 2:
query = "SELECT * FROM users WHERE id>=2"
Risultato del codice eseguito:
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 4, 'name': 'user4', 'age': 30, 'salary': 900}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
{'id': 6, 'name': 'user6', 'age': 28, 'salary': 900}
Esempio
Selezioniamo gli utenti con id diverso da
2:
query = "SELECT * FROM users WHERE id!=2"
Risultato del codice eseguito:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 4, 'name': 'user4', 'age': 30, 'salary': 900}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
{'id': 6, 'name': 'user6', 'age': 28, 'salary': 900}
Esempio
Invece del comando != si può usare
il comando <>:
query = "SELECT * FROM users WHERE id<>2"
Esempio
Selezioniamo l'utente con nome 'user1'.
Qui c'è una sfumatura importante: poiché
il nome è una stringa, deve essere
racchiuso tra virgolette:
query = "SELECT * FROM users WHERE name='user1'"
Risultato del codice eseguito:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
Esempio
Se il comando WHERE è assente,
verranno selezionati tutti i record dalla tabella.
Selezioniamo tutti gli utenti:
query = "SELECT * FROM users"
Risultato del codice eseguito:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 4, 'name': 'user4', 'age': 30, 'salary': 900}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
{'id': 6, 'name': 'user6', 'age': 28, 'salary': 900}
Compiti pratici
Seleziona l'utente con id uguale a 3.
Seleziona gli utenti con stipendio 900.
Seleziona gli utenti di età 23 anni.
Seleziona gli utenti con stipendio superiore a 400.
Seleziona gli utenti con stipendio uguale o
superiore a 500.
Seleziona gli utenti con stipendio NON uguale a
500.
Seleziona gli utenti con stipendio uguale o
inferiore a 500.