Logiske operationer i SQL-forespørgsler i Python
I udvælgelsesbetingelsen kan man lave mere komplekse
kombinationer ved hjælp af kommandoerne OR og
AND. De fungerer på samme måde som deres
modstykker i Python-konstruktionen if.
Lad os se på nogle eksempler.
Eksempel
Lad os vælge brugere med en løn på 500 OG
en alder på 23 år:
query = "SELECT * FROM users WHERE salary=500 AND age=23"
Resultatet af den udførte kode:
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
Eksempel
Lad os vælge brugere med en løn på 500 ELLER
en alder på 23 år:
query = "SELECT * FROM users WHERE salary=500 OR age=23"
Resultatet af den udførte 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}
Eksempel
Lad os vælge brugere med en løn fra 450
til 900:
query = "SELECT * FROM users WHERE salary>450 AND salary<900"
Resultatet af den udførte 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}
Eksempel
Lad os vælge brugere med en alder fra 23
til 27 år inklusive:
query = "SELECT * FROM users WHERE age>=23 AND age<=27"
Resultatet af den udførte 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}
Eksempel
Komplekse kombinationer af OR- og
AND-kommandoer kan grupperes ved hjælp af
runde parenteser for at vise betingelsernes
prioritet:
query = "SELECT * FROM users WHERE (age<20 AND age>27) OR (salary>300 AND salary<500)"
Resultatet af den udførte kode:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
Praktiske opgaver
Vælg brugere i alderen fra 25
(eksklusiv) til 28 år
(inklusive).
Vælg brugeren user1.
Vælg brugerne user1 og user2.
Vælg alle, undtagen brugeren user3.
Vælg alle brugere på 27
år eller med en løn på 1000.
Vælg alle brugere på 27
år eller med en løn som ikke er lig med 400.
Vælg alle brugere i alderen fra 23
år (inklusive) til 27 år (eksklusiv)
eller med en løn på 1000.
Vælg alle brugere i alderen fra 23
år til 27 år eller med en løn fra
400 til 1000.