Zdefiniowano bazę danych z tabelą sklepy o polach: nazwa, ulica, miasto, branża. Aby wyszukać wszystkie nazwy sklepów spożywczych zlokalizowanych wyłącznie we Wrocławiu, należy posłużyć się kwerendą:
Odpowiedzi
Informacja zwrotna
Aby wyszukać wszystkie nazwy sklepów spożywczych zlokalizowanych wyłącznie we Wrocławiu, używamy kwerendy SQL: SELECT nazwa FROM sklepy WHERE branza='spożywczy' AND miasto='Wrocław';. Ta kwerenda jest zgodna z zasadami języka SQL i poprawnie wykorzystuje klauzulę WHERE do filtrowania danych. Klauzula AND jest kluczowa, ponieważ pozwala na jednoczesne spełnienie obu warunków, co jest istotne w kontekście odnajdywania sklepów, które są zarówno w branży spożywczej, jak i zlokalizowane w danym mieście. Przykładowo, jeśli w tabeli 'sklepy' znajdują się dane o różnych sklepach, to powyższa kwerenda zwróci jedynie te rekordy, które spełniają oba kryteria. Jest to zgodne z zasadami normalizacji baz danych, które zalecają unikanie duplikatów poprzez precyzyjne filtrowanie. Użycie operatora AND zapewnia, że wyniki będą dokładnie odpowiadały zapytaniu, eliminując wszelkie niezgodności. Przykład: jeżeli w tabeli są dane o sklepach 'Sklep A, ul. X, Wrocław, spożywczy' oraz 'Sklep B, ul. Y, Poznań, spożywczy', to kwerenda zwróci tylko 'Sklep A'.
Pierwsza odpowiedź jest niepoprawna, ponieważ użycie słowa kluczowego BETWEEN w kontekście zapytania SQL nie jest właściwe. BETWEEN służy do określenia zakresu wartości w kontekście typu danych, takich jak daty lub liczby, a nie do porównania dwóch różnych kolumn. Ponadto, konstrukcja zapytania jest nieprawidłowa, gdyż nie wskazuje, z jakiej tabeli mają być pobrane dane. Druga odpowiedź myli również składnię, zamieniając kolejność operatorów i nie uwzględniając odpowiednich klauzul, co prowadzi do błędnego uzyskania wyników. Użycie branza='spożywczy' w miejscu, gdzie powinno być FROM, jest błędem składniowym. Trzecia odpowiedź wykorzystuje operator OR, co jest technicznie błędne w kontekście tego zapytania. Operator OR zwraca wyniki, które pasują do jednego z warunków, a w tym przypadku chcemy jednoczesnego spełnienia obu warunków, co czyni ten operator niewłaściwym. W rezultacie wszystkie te odpowiedzi nie dostarczają poprawnych wyników i nie spełniają standardów pisania zapytań SQL.