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: Bazy danych

W jaki sposób wykonanie podanej kwerendy SQL wpłynie na tabelę pracownicy?

ALTER TABLE pracownicy MODIFY plec char(9);
A. Doda kolumnę plec ze znakowym typem danych o stałej długości 9.
B. Doda kolumnę plec ze znakowym typem danych o zmiennej długości 9.
C. Zmieni typ danych kolumny plec na znakowy o zmiennej długości 9.
D. Zmieni typ danych kolumny plec na znakowy o stałej długości 9.
Ta kwerenda wykonuje zmianę definicji istniejącej tabeli pracownicy. Polecenie ALTER TABLE należy do grupy DDL, czyli Data Definition Language, i służy do modyfikowania struktury obiektów bazy danych. Fragment MODIFY plec char(9) oznacza, że istniejąca już kolumna plec zostanie zmieniona tak, aby miała typ CHAR o długości 9 znaków. CHAR jest typem znakowym o stałej długości, więc baza rezerwuje miejsce na dokładnie 9 znaków, a krótsze wartości mogą być dopełniane spacjami. To różni się od VARCHAR, gdzie długość jest zmienna. W praktyce taką zmianę robi się np. podczas poprawiania źle zaprojektowanej kolumny albo dostosowania jej do nowego formatu danych. Moim zdaniem przy danych typu płeć lepszym projektem często byłby krótszy kod, np. CHAR(1), albo słownik wartości, ale sama składnia z pytania faktycznie zmienia typ kolumny. Dobra praktyka: przed ALTER TABLE warto zrobić kopię zapasową i sprawdzić istniejące dane, bo w niektórych systemach DBMS zmiana typu może się nie udać, jeśli dane nie pasują do nowej definicji.
W tej kwerendzie łatwo pomylić dwie różne operacje wykonywane na strukturze tabeli: dodawanie kolumny i modyfikowanie kolumny. Słowo MODIFY nie tworzy nowego pola w tabeli, tylko zmienia definicję pola, które już istnieje. Gdyby celem było dodanie kolumny plec, w zapytaniu pojawiłoby się raczej ADD, na przykład ALTER TABLE pracownicy ADD plec CHAR(9);. Dlatego interpretowanie tej instrukcji jako dodania nowej kolumny wynika zwykle z ogólnego skojarzenia ALTER TABLE ze zmianami w tabeli, ale trzeba patrzeć na dokładną klauzulę po nazwie tabeli. Ważna jest też różnica między CHAR i VARCHAR. Typ CHAR(9) oznacza dane znakowe o stałej długości 9 znaków, a nie zmiennej. Jeśli wpiszesz krótszą wartość, system bazy danych może ją wewnętrznie dopełnić spacjami, zależnie od silnika i ustawień. Typ o zmiennej długości zapisałoby się jako VARCHAR(9), ewentualnie VARCHAR2 w niektórych bazach, na przykład w Oracle. Z mojego doświadczenia takie pomyłki biorą się z tego, że oba typy przechowują tekst, ale w projektowaniu bazy mają inne zastosowanie. CHAR sprawdza się przy danych zawsze tej samej długości, np. kod kraju albo stały identyfikator, natomiast VARCHAR jest rozsądniejszy przy napisach różnej długości, takich jak nazwisko czy adres e-mail. Tutaj zapytanie nie mówi nic o dodawaniu pola ani o zmiennej długości, tylko o zmianie typu istniejącej kolumny plec na CHAR(9).

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.