Logikai műveletek SQL lekérdezésben Pythonban
A kiválasztási feltételben összetettebb
kombinációkat készíthetünk a OR és
AND parancsok segítségével. Ugyanúgy
működnek, mint a Python if szerkezetben
lévő megfelelőik.
Nézzünk példákat.
Példa
Válasszuk ki a 500 fizetésű ÉS
23 éves korú felhasználókat:
query = "SELECT * FROM users WHERE salary=500 AND age=23"
A végrehajtott kód eredménye:
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
Példa
Válasszuk ki a 500 fizetésű VAGY
23 éves korú felhasználókat:
query = "SELECT * FROM users WHERE salary=500 OR age=23"
A végrehajtott kód eredménye:
{'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}
Példa
Válasszuk ki a 450 és 900
közötti fizetésű felhasználókat:
query = "SELECT * FROM users WHERE salary>450 AND salary<900"
A végrehajtott kód eredménye:
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Példa
Válasszuk ki a 23 és 27 év
közötti (inkluzív) felhasználókat:
query = "SELECT * FROM users WHERE age>=23 AND age<=27"
A végrehajtott kód eredménye:
{'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}
Példa
A OR és AND parancsok összetett
kombinációit zárójelekkel csoportosíthatjuk,
hogy megmutassuk a feltételek prioritását:
query = "SELECT * FROM users WHERE (age<20 AND age>27) OR (salary>300 AND salary<500)"
A végrehajtott kód eredménye:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
Gyakorlati feladatok
Válaszd ki a 25 év feletti (nem inkluzív)
28 év alatti (inkluzív) felhasználókat.
Válaszd ki a user1 felhasználót.
Válaszd ki a user1 és user2 felhasználókat.
Válaszd ki mindenkit, kivéve a user3 felhasználót.
Válaszd ki az összes 27 éves felhasználót
vagy azokat, akiknek a fizetése 1000.
Válaszd ki az összes 27 éves felhasználót
vagy azokat, akiknek a fizetése nem 400.
Válaszd ki az összes 23 év feletti (inkluzív)
27 év alatti (nem inkluzív) felhasználót
vagy azokat, akiknek a fizetése 1000.
Válaszd ki az összes 23 és 27 év
közötti felhasználót vagy azokat, akiknek a
fizetése 400 és 1000 között van.