Logiska operationer i SQL-förfrågningar i Python
I urvalsvillkoret kan man göra mer komplexa
kombinationer med kommandona OR och
AND. De fungerar på samma sätt som sina
motsvarigheter i Python-konstruktionen if.
Låt oss titta på exempel.
Exempel
Låt oss välja användare med en lön på 500 OCH
en ålder på 23 år:
query = "SELECT * FROM users WHERE salary=500 AND age=23"
Resultatet av den utförda koden:
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
Exempel
Låt oss välja användare med en lön på 500 ELLER
en ålder på 23 år:
query = "SELECT * FROM users WHERE salary=500 OR age=23"
Resultatet av den utförda koden:
{'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}
Exempel
Låt oss välja användare med en lön från 450
till 900:
query = "SELECT * FROM users WHERE salary>450 AND salary<900"
Resultatet av den utförda koden:
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Exempel
Låt oss välja användare med en ålder från 23
till 27 år inklusive:
query = "SELECT * FROM users WHERE age>=23 AND age<=27"
Resultatet av den utförda koden:
{'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}
Exempel
Komplexa kombinationer av kommandona OR och
AND kan grupperas med hjälp av
runda parenteser för att visa prioriteten
hos villkoren:
query = "SELECT * FROM users WHERE (age<20 AND age>27) OR (salary>300 AND salary<500)"
Resultatet av den utförda koden:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
Praktiska uppgifter
Välj användare i åldern från 25
(ej inklusive) till 28 år
(inklusive).
Välj användaren user1.
Välj användarna user1 och user2.
Välj alla utom användaren user3.
Välj alla användare i åldern 27
år eller med en lön på 1000.
Välj alla användare i åldern 27
år eller med en lön som inte är lika med 400.
Välj alla användare i åldern från 23
år (inklusive) till 27 år (ej
inklusive) eller med en lön på 1000.
Välj alla användare i åldern från 23
år till 27 år eller med en lön från
400 till 1000.