Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
Jakie zapytanie SQL umożliwi wyszukanie z podanej tabeli tylko imion i nazwisk pacjentów, którzy przyszli na świat przed rokiem 2002?

Odpowiedzi
Informacja zwrotna
To zapytanie SQL, które napisałeś, czyli SELECT imie, nazwisko FROM Pacjenci WHERE rok_urodzenia < 2002, jest całkiem trafione. Po pierwsze, używasz operatora SELECT, żeby wskazać, jakie kolumny chcesz zwrócić - czyli imię i nazwisko. To jest dokładnie to, co było potrzebne. Po drugie, warunek WHERE z rokiem urodzenia zapewnia, że do wyników dostają się tylko pacjenci, którzy przyszli na świat przed 2002 rokiem. No i to jest ważne, bo masz tutaj operator mniejszości <, który wyklucza sam rok 2002. Takie podejście jest super przydatne w bazach danych, bo pozwala na filtrowanie informacji w oparciu o lata, co często wykorzystuje się w raportach i analizach. Generalnie, dobre praktyki w SQL mówią, że warto precyzyjnie określać, jakie kolumny chcesz uwzględnić, bo to pomaga odciążyć system i zrobione zapytanie będzie działać wydajniej. Twoje zapytanie nie tylko spełnia wymagania, ale także jest optymalne, co jest naprawdę istotne w pracy z bazami danych.
No więc, w takich odpowiedziach, które podałeś, widać kilka nieporozumień, jak działają zapytania SQL. Zacznijmy od pierwszego - zapytanie SELECT * FROM Pacjenci WHERE rok_urodzenia <= 2002 jest niestety błędne. Chociaż wyłapuje pacjentów z roku 2002 i wcześniejszych, to zwraca wszystkie kolumny, a nie tylko imię i nazwisko, co nie jest zgodne z tym, co było w pytaniu. Używanie operatora * może prowadzić do zbytecznego obciążenia systemu, bo wyciągane są dodatkowe dane, które wcale nie są potrzebne. W drugim przypadku - SELECT * FROM Pacjenci WHERE rok_urodzenia LIKE 2002 - tutaj jest problem, bo operator LIKE jest do dopasowywania tekstów, a nie do porównywania liczb. To po prostu nie zadziała. Trzecie zapytanie - SELECT imie, nazwisko FROM Pacjenci WHERE data_ostatniej_wizyty < 2002 - jest też niepoprawne, bo filtruje według daty ostatniej wizyty, a nie roku urodzenia, co nie spełnia warunków pytania. Tego typu błędy często wynikają z nieprecyzyjnego czytania zadań. Żeby unikać takich pomyłek, dobrze jest dokładnie zrozumieć, jak wygląda struktura tabeli i co zapytanie ma właściwie zwracać.