Przejdź do głównej treści

Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Zawód: Technik informatyk, Technik programista

Kategorie: Programowanie webowe Bazy danych

Tabela Pracownicy zawiera dane pracowników z różnych działów, co określa pole liczbowe dzial. Ponieważ zazwyczaj są wykonywane kwerendy tylko na dziale równym 2, to można uprościć zapytania do tabeli, tworząc wirtualną tabelę o nazwie Prac_dzial2 za pomocą zapytania

A.
VIEW Prac_dzial2 FROM Pracownicy WHERE dzial=2;
B.
CREATE VIEW Prac_dzial2 FROM Pracownicy WHERE dzial=2;
C.
VIEW Prac_dzial2 SELECT FROM Pracownicy WHERE dzial=2;
D.
CREATE VIEW Prac_dzial2 AS SELECT * FROM Pracownicy WHERE dzial=2;

Pytanie z egzaminu CKE, styczeń 2023 (arkusz EE.09-SG-23.01).

Instrukcja CREATE VIEW Prac_dzial2 AS SELECT * FROM Pracownicy WHERE dzial=2; jest poprawna, bo dokładnie realizuje utworzenie widoku, czyli wirtualnej tabeli opartej na wyniku zapytania SELECT. W SQL widok nie przechowuje zwykle osobnej kopii danych, tylko zapamiętuje definicję zapytania. Dzięki temu można potem pisać prostsze zapytania, np. SELECT * FROM Prac_dzial2; zamiast za każdym razem dopisywać warunek WHERE dzial=2. To jest bardzo praktyczne, zwłaszcza gdy ten sam filtr pojawia się często w raportach, formularzach albo aplikacji webowej. Słowo CREATE oznacza utworzenie obiektu w bazie, VIEW wskazuje typ obiektu, AS łączy nazwę widoku z zapytaniem, a SELECT * FROM Pracownicy WHERE dzial=2 określa dane widoczne przez ten widok. Moim zdaniem to jeden z czytelniejszych mechanizmów SQL, bo poprawia porządek w bazie i zmniejsza ryzyko pomyłek przy powtarzaniu warunków. W praktyce branżowej warto jednak czasem zamiast SELECT * podać konkretne kolumny, bo jest to stabilniejsze przy zmianach struktury tabeli.
W tworzeniu widoku w SQL ważna jest pełna składnia polecenia, a nie tylko ogólna intuicja, że chodzi o tabelę i warunek WHERE. Widok jest obiektem bazy danych, dlatego jego definicja powinna zaczynać się od CREATE VIEW, bo bez CREATE serwer nie wie, że ma utworzyć nowy obiekt. Samo słowo VIEW nie jest wystarczającą instrukcją wykonywalną w standardowym SQL, nawet jeśli dla człowieka brzmi sensownie. Drugim częstym problemem jest pominięcie części AS SELECT. Widok musi być zbudowany na podstawie zapytania SELECT, ponieważ baza musi wiedzieć, jakie kolumny i rekordy mają być widoczne przez tę wirtualną tabelę. Zapis CREATE VIEW Prac_dzial2 FROM Pracownicy WHERE dzial=2 wygląda podobnie do fragmentu zapytania, ale brakuje w nim SELECT, czyli najważniejszej części pobierającej dane. Jeszcze gorzej, gdy pojawia się samo SELECT FROM bez listy kolumn, bo po SELECT trzeba wskazać kolumny, np. * albo konkretne nazwy pól. Typowy błąd myślowy polega tu na traktowaniu VIEW jak skróconej wersji SELECT-a. A to nie skrót, tylko definicja obiektu w schemacie bazy. Poprawny zapis musi więc zawierać pełną konstrukcję CREATE VIEW nazwa AS SELECT ... FROM ... WHERE ...; i dopiero wtedy można korzystać z widoku tak, jak z tabeli w kolejnych kwerendach.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wysłane zostaną tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.