Operacje logiczne w zapytaniu SQL w Pythonie

W warunku selekcji można tworzyć bardziej złożone kombinacje za pomocą poleceń OR i AND. Działają one tak samo, jak ich analogi w konstrukcji Pythona if. Spójrzmy na przykłady.

Przykład

Wybierzmy użytkowników z wynagrodzeniem 500 I wiekie 23 lat:

pythonquery = "SELECT * FROM users WHERE salary=500 AND age=23"

Wynik wykonanego kodu:

python{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}

Przykład

Wybierzmy użytkowników z wynagrodzeniem 500 LUB wiekie 23 lat:

pythonquery = "SELECT * FROM users WHERE salary=500 OR age=23"

Wynik wykonanego kodu:

python{'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}

Przykład

Wybierzmy użytkowników z wynagrodzeniem od 450 do 900:

pythonquery = "SELECT * FROM users WHERE salary>450 AND salary<900"

Wynik wykonanego kodu:

python{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}

Przykład

Wybierzmy użytkowników w wieku od 23 do 27 lat włącznie:

pythonquery = "SELECT * FROM users WHERE age>=23 AND age<=27"

Wynik wykonanego kodu:

python{'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}

Przykład

Złożone kombinacje poleceń OR i AND można grupować za pomocą nawiasów okrągłych, aby pokazać priorytet warunków:

pythonquery = "SELECT * FROM users WHERE (age<20 AND age>27) OR (salary>300 AND salary<500)"

Wynik wykonanego kodu:

python{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}

Zadania praktyczne

Задание 1

Wybierz użytkowników w wieku od 25 (nie włącznie) do 28 lat (włącznie).

Задание 2

Wybierz użytkownika user1.

Задание 3

Wybierz użytkowników user1 i user2.

Задание 4

Wybierz wszystkich, z wyjątkiem użytkownika user3.

Задание 5

Wybierz wszystkich użytkowników w wieku 27 lat lub z wynagrodzeniem 1000.

Задание 6

Wybierz wszystkich użytkowników w wieku 27 lat lub z wynagrodzeniem nie równym 400.

Задание 7

Wybierz wszystkich użytkowników w wieku od 23 lat (włącznie) do 27 lat (nie włącznie) lub z wynagrodzeniem 1000.

Задание 8

Wybierz wszystkich użytkowników w wieku od 23 lat do 27 lat lub z wynagrodzeniem od 400 do 1000.