Loģiskās operācijas SQL vaicājumā Python
Atlases nosacījumā var izveidot sarežģītākas
kombinācijas, izmantojot komandas OR un
AND. Tās darbojas tāpat kā to
analogi Python konstrukcijā if.
Apskatīsim piemēros.
Piemērs
Atlasīsim lietotājus ar algu 500 UN
vecumu 23 gadi:
query = "SELECT * FROM users WHERE salary=500 AND age=23"
Izpildītā koda rezultāts:
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
Piemērs
Atlasīsim lietotājus ar algu 500 VAI
vecumu 23 gadi:
query = "SELECT * FROM users WHERE salary=500 OR age=23"
Izpildītā koda rezultāts:
{'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}
Piemērs
Atlasīsim lietotājus ar algu no 450
līdz 900:
query = "SELECT * FROM users WHERE salary>450 AND salary<900"
Izpildītā koda rezultāts:
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Piemērs
Atlasīsim lietotājus ar vecumu no 23
līdz 27 gadiem ieskaitot:
query = "SELECT * FROM users WHERE age>=23 AND age<=27"
Izpildītā koda rezultāts:
{'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}
Piemērs
Sarežģītas komandu OR un
AND kombinācijas var grupēt, izmantojot
apaļās iekavas, lai parādītu nosacījumu
prioritāti:
query = "SELECT * FROM users WHERE (age<20 AND age>27) OR (salary>300 AND salary<500)"
Izpildītā koda rezultāts:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
Praktiskie uzdevumi
Atlasiet lietotājus vecumā no 25
(neieskaitot) līdz 28 gadiem
(ieskaitot).
Atlasiet lietotāju user1.
Atlasiet lietotājus user1 un user2.
Atlasiet visus, izņemot lietotāju user3.
Atlasiet visus lietotājus vecumā 27
gadi vai ar algu 1000.
Atlasiet visus lietotājus vecumā 27
gadi vai ar algu, kas nav vienāda ar 400.
Atlasiet visus lietotājus vecumā no 23
gadiem (ieskaitot) līdz 27 gadiem (ne
ieskaitot) vai ar algu 1000.
Atlasiet visus lietotājus vecumā no 23
gadiem līdz 27 gadiem vai ar algu no
400 līdz 1000.