Logiske operasjoner i SQL-spørringer i Python
I betingelsene for utvalg kan du lage mer komplekse
kombinasjoner ved hjelp av kommandoene OR og
AND. De fungerer på samme måte som deres
analoger i Python-konstruksjonen if.
La oss se på eksempler.
Eksempel
La oss velge brukere med lønn 500 OG
alder 23 år:
query = "SELECT * FROM users WHERE salary=500 AND age=23"
Resultatet av utført kode:
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
Eksempel
La oss velge brukere med lønn 500 ELLER
alder 23 år:
query = "SELECT * FROM users WHERE salary=500 OR age=23"
Resultatet av utført 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
La oss velge brukere med lønn fra 450
til 900:
query = "SELECT * FROM users WHERE salary>450 AND salary<900"
Resultatet av utført 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
La oss velge brukere med alder fra 23
til 27 år inkludert:
query = "SELECT * FROM users WHERE age>=23 AND age<=27"
Resultatet av utført 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 kombinasjoner av kommandoene OR og
AND kan grupperes ved hjelp av
runde parenteser for å vise prioriteten
av betingelsene:
query = "SELECT * FROM users WHERE (age<20 AND age>27) OR (salary>300 AND salary<500)"
Resultatet av utført kode:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
Praktiske oppgaver
Velg brukere i alderen fra 25
(ikke inkludert) til 28 år
(inkludert).
Velg bruker user1.
Velg brukere user1 og user2.
Velg alle, unntatt bruker user3.
Velg alle brukere i alderen 27
år eller med lønn 1000.
Velg alle brukere i alderen 27
år eller med lønn ikke lik 400.
Velg alle brukere i alderen fra 23
år (inkludert) til 27 år (ikke
inkludert) eller med lønn 1000.
Velg alle brukere i alderen fra 23
år til 27 år eller med lønn fra
400 til 1000.