Zdefiniowano bazę danych z tabelą mieszkancy o polach: nazwisko, imie, miasto. Następnie stworzono następujące zapytanie do bazy: SELECT nazwisko, imie FROM mieszkancy WHERE miasto="Poznań" UNION ALL SELECT nazwisko, imie FROM mieszkancy WHERE miasto="Kraków"; Wskaż zapytanie, które zwróci identyczne dane:
Odpowiedzi
Informacja zwrotna
Wybrana odpowiedź jest poprawna, ponieważ wykorzystuje operator logiczny OR do połączenia dwóch warunków w klauzuli WHERE. W wyniku tego zapytania zostaną zwrócone wszystkie rekordy z tabeli 'mieszkancy', gdzie miasto to 'Poznań' lub 'Kraków'. To podejście jest zgodne z zasadami SQL, gdzie operator OR umożliwia łączenie warunków, co jest powszechnie stosowane w praktyce. Warto zauważyć, że zapytanie z wykorzystaniem operatora UNION ALL, które było pierwotnie zdefiniowane, również łączy wyniki z dwóch zapytań, ale każdy SELECT działa osobno. Użycie OR w tym przypadku jest bardziej efektywne, ponieważ pozwala na jedno zapytanie, co może przyspieszyć wykonanie w porównaniu do kilku zapytań UNION. W praktycznych zastosowaniach, gdy mamy do czynienia z wieloma kryteriami, stosowanie operatorów logicznych jest kluczowe dla uzyskania precyzyjnych wyników.
Zarówno druga, jak i trzecia odpowiedź zawierają błędne konstrukcje zapytań SQL, które nie są zgodne z syntaktyką SQL. W drugiej propozycji użycie aliasu 'AS' dla miast jest niepoprawne, ponieważ aliasowanie dotyczy głównie tabel i kolumn, a nie wartości w klauzuli WHERE. W konsekwencji zapytanie nie zwróci żadnych danych, gdyż nie jest w stanie poprawnie zinterpretować podanych warunków. Trzecia odpowiedź sugeruje użycie operatora BETWEEN w kontekście miast, co również jest niepoprawne. BETWEEN wymaga wartości liczbowych lub dat, a nie tekstowych. Dodatkowo, użycie operatora OR w kontekście BETWEEN jest błędne, ponieważ BETWEEN sam w sobie definiuje zakres wartości. Ostatnia odpowiedź jest również niepoprawna, ponieważ klauzula HAVING jest wykorzystywana w kontekście agregacji danych i nie jest przeznaczona do stosowania w prostych warunkach filtracji, jak w tym przypadku. Typowym błędem jest mylenie kontekstu użycia różnych klauzul w SQL oraz niewłaściwe stosowanie operatorów, co prowadzi do niepoprawnych wniosków o skutkach zapytań. Warto zrozumieć zasady rządzące składnią SQL, aby efektywnie tworzyć zapytania, które zwracają oczekiwane wyniki.