Logické operácie v SQL dotaze v Pythone
V podmienke výberu môžete robiť zložitejšie
kombinácie pomocou príkazov OR a
AND. Fungujú rovnako ako ich
analógy v Python konštrukcii if.
Pozrime sa na príklady.
Príklad
Vyberieme používateľov so mzdou 500 A
vekom 23 rokov:
query = "SELECT * FROM users WHERE salary=500 AND age=23"
Výsledok vykonaného kódu:
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
Príklad
Vyberieme používateľov so mzdou 500 ALEBO
vekom 23 rokov:
query = "SELECT * FROM users WHERE salary=500 OR age=23"
Výsledok vykonaného kódu:
{'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}
Príklad
Vyberieme používateľov so mzdou od 450
do 900:
query = "SELECT * FROM users WHERE salary>450 AND salary<900"
Výsledok vykonaného kódu:
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Príklad
Vyberieme používateľov s vekom od 23
do 27 rokov vrátane:
query = "SELECT * FROM users WHERE age>=23 AND age<=27"
Výsledok vykonaného kódu:
{'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}
Príklad
Zložité kombinácie príkazov OR a
AND môžete zoskupovať pomocou
okrúhlych zátvoriek, aby ste ukázali prioritu
podmienok:
query = "SELECT * FROM users WHERE (age<20 AND age>27) OR (salary>300 AND salary<500)"
Výsledok vykonaného kódu:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
Praktické úlohy
Vyberte používateľov vo veku od 25
(nevrátane) do 28 rokov
(vrátane).
Vyberte používateľa user1.
Vyberte používateľov user1 a user2.
Vyberte všetkých okrem používateľa user3.
Vyberte všetkých používateľov vo veku 27
rokov alebo so mzdou 1000.
Vyberte všetkých používateľov vo veku 27
rokov alebo so mzdou nerovnajúcou sa 400.
Vyberte všetkých používateľov vo veku od 23
rokov (vrátane) do 27 rokov (ne
vrátane) alebo so mzdou 1000.
Vyberte všetkých používateľov vo veku od 23
rokov do 27 rokov alebo so mzdou od
400 do 1000.