Pobieranie rekordów przy zapytaniu SQL do bazy danych w Pythonie
W kodzie testowym zapytania SQL znajduje się polecenie
SELECT, które pobiera dane
z bazy danych. Przyjrzyjmy się teraz bliżej
jego składni. Oto ona:
query = "SELECT * FROM tabela WHERE warunek"
Po nazwie tabeli można jeszcze dopisać
polecenie WHERE, w którym określa się
warunek dotyczący wybieranych rekordów. Dopuszczalne są w nim
następujące operacje porównania: =,
!=, <>, <, >,
<=, >=.
Przyjrzyjmy się ich zastosowaniu na przykładach.
Przykład
Wybierzmy użytkownika z id równym 2:
query = "SELECT * FROM users WHERE id=2"
Wynik wykonanego kodu:
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
Przykład
Wybierzmy użytkowników z id większym niż 2:
query = "SELECT * FROM users WHERE id>2"
Wynik wykonanego kodu:
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 4, 'name': 'user4', 'age': 30, 'salary': 900}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
{'id': 6, 'name': 'user6', 'age': 28, 'salary': 900}
Przykład
Wybierzmy użytkowników z id większym lub
równym 2:
query = "SELECT * FROM users WHERE id>=2"
Wynik wykonanego kodu:
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 4, 'name': 'user4', 'age': 30, 'salary': 900}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
{'id': 6, 'name': 'user6', 'age': 28, 'salary': 900}
Przykład
Wybierzmy użytkowników z id nie równym
2:
query = "SELECT * FROM users WHERE id!=2"
Wynik wykonanego kodu:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 4, 'name': 'user4', 'age': 30, 'salary': 900}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
{'id': 6, 'name': 'user6', 'age': 28, 'salary': 900}
Przykład
Zamiast polecenia != można użyć
polecenia <>:
query = "SELECT * FROM users WHERE id<>2"
Przykład
Wybierzmy użytkownika o nazwie 'user1'.
Tutaj czeka na nas ważny niuans: ponieważ
nazwa jest ciągiem znaków, należy ją
ująć w cudzysłów:
query = "SELECT * FROM users WHERE name='user1'"
Wynik wykonanego kodu:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
Przykład
Jeśli polecenie WHERE jest nieobecne,
zostaną wybrane wszystkie rekordy z tabeli. Wybierzmy
wszystkich pracowników:
query = "SELECT * FROM users"
Wynik wykonanego kodu:
{'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': 4, 'name': 'user4', 'age': 30, 'salary': 900}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
{'id': 6, 'name': 'user6', 'age': 28, 'salary': 900}
Zadania praktyczne
Wybierz użytkownika z id równym 3.
Wybierz użytkowników z wynagrodzeniem 900.
Wybierz użytkowników w wieku 23 lat.
Wybierz użytkowników z wynagrodzeniem większym niż 400.
Wybierz użytkowników z wynagrodzeniem równym lub
większym niż 500.
Wybierz użytkowników z wynagrodzeniem NIE równym
500.
Wybierz użytkowników z wynagrodzeniem równym lub
mniejszym niż 500.