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:

pythonquery = "SELECT * FROM users WHERE salary=500 AND age=23"

Rezultat izvedene kode:

python{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}

Primer

Izberimo uporabnike s plačo 500 ALI starostjo 23 let:

pythonquery = "SELECT * FROM users WHERE salary=500 OR age=23"

Rezultat izvedene kode:

python{'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:

pythonquery = "SELECT * FROM users WHERE salary>450 AND salary<900"

Rezultat izvedene kode:

python{'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:

pythonquery = "SELECT * FROM users WHERE age>=23 AND age<=27"

Rezultat izvedene kode:

python{'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:

pythonquery = "SELECT * FROM users WHERE (age<20 AND age>27) OR (salary>300 AND salary<500)"

Rezultat izvedene kode:

python{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}

Praktične naloge

Задание 1

Izberite uporabnike v starosti od 25 (ne vključno) do 28 let (vključno).

Задание 2

Izberite uporabnika user1.

Задание 3

Izberite uporabnike user1 in user2.

Задание 4

Izberite vse razen uporabnika user3.

Задание 5

Izberite vse uporabnike v starosti 27 let ali s plačo 1000.

Задание 6

Izberite vse uporabnike v starosti 27 let ali s plačo, ki ni enaka 400.

Задание 7

Izberite vse uporabnike v starosti od 23 let (vključno) do 27 let (ne vključno) ali s plačo 1000.

Задание 8

Izberite vse uporabnike v starosti od 23 let do 27 let ali s plačo od 400 do 1000.