Operațiile logice în interogările SQL în Python
În condiția de selecție puteți face
combinații mai complexe folosind comenzile OR și
AND. Ele funcționează la fel ca și
omoloagele lor în construcția if din Python.
Să ne uităm la exemple.
Exemplul
Să selectăm utilizatorii cu salariul 500 ȘI
vârsta de 23 de ani:
query = "SELECT * FROM users WHERE salary=500 AND age=23"
Rezultatul codului executat:
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
Exemplul
Să selectăm utilizatorii cu salariul 500 SAU
vârsta de 23 de ani:
query = "SELECT * FROM users WHERE salary=500 OR age=23"
Rezultatul codului executat:
{'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': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Exemplul
Să selectăm utilizatorii cu salariul de la 450
până la 900:
query = "SELECT * FROM users WHERE salary>450 AND salary<900"
Rezultatul codului executat:
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Exemplul
Să selectăm utilizatorii cu vârsta de la 23
până la 27 de ani inclusiv:
query = "SELECT * FROM users WHERE age>=23 AND age<=27"
Rezultatul codului executat:
{'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': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Exemplul
Combinațiile complexe ale comenzilor OR și
AND pot fi grupate folosind
paranteze rotunde, pentru a arăta prioritatea
condițiilor:
query = "SELECT * FROM users WHERE (age<20 AND age>27) OR (salary>300 AND salary<500)"
Rezultatul codului executat:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
Probleme practice
Selectați utilizatorii în vârstă de la 25
(neinclusiv) până la 28 de ani
(inclusiv).
Selectați utilizatorul user1.
Selectați utilizatorii user1 și user2.
Selectați toți, cu excepția utilizatorului user3.
Selectați toți utilizatorii în vârstă de 27
ani sau cu salariul 1000.
Selectați toți utilizatorii în vârstă de 27
ani sau cu salariul nu egal cu 400.
Selectați toți utilizatorii în vârstă de la 23
ani (inclusiv) până la 27 ani (neinclusiv)
sau cu salariul 1000.
Selectați toți utilizatorii în vârstă de la 23
ani până la 27 ani sau cu salariul de la
400 până la 1000.