Logične operacije v SQL poizvedbi v Pythonu
V pogoju izbire lahko naredite bolj zapletene
kombinacije z ukazi OR in
AND. Delujejo enako kot njihovi
analogi v Pythonovi konstrukciji if.
Poglejmo si primere.
Primer
Izberimo uporabnike s plačo 500 IN
starostjo 23 let:
query = "SELECT * FROM users WHERE salary=500 AND age=23"
Rezultat izvedene kode:
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
Primer
Izberimo uporabnike s plačo 500 ALI
starostjo 23 let:
query = "SELECT * FROM users WHERE salary=500 OR age=23"
Rezultat izvedene kode:
{'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}
Primer
Izberimo uporabnike s plačo od 450
do 900:
query = "SELECT * FROM users WHERE salary>450 AND salary<900"
Rezultat izvedene kode:
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Primer
Izberimo uporabnike s starostjo od 23
do 27 let vključno:
query = "SELECT * FROM users WHERE age>=23 AND age<=27"
Rezultat izvedene kode:
{'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}
Primer
Zapletene kombinacije ukazov OR in
AND lahko združujemo z okroglimi
oklepaji, da pokažemo prednostnost
pogojev:
query = "SELECT * FROM users WHERE (age<20 AND age>27) OR (salary>300 AND salary<500)"
Rezultat izvedene kode:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
Praktične naloge
Izberite uporabnike v starosti od 25
(ne vključno) do 28 let
(vključno).
Izberite uporabnika user1.
Izberite uporabnike user1 in user2.
Izberite vse razen uporabnika user3.
Izberite vse uporabnike v starosti 27
let ali s plačo 1000.
Izberite vse uporabnike v starosti 27
let ali s plačo, ki ni enaka 400.
Izberite vse uporabnike v starosti od 23
let (vključno) do 27 let (ne
vključno) ali s plačo 1000.
Izberite vse uporabnike v starosti od 23
let do 27 let ali s plačo od
400 do 1000.