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

Słowa kluczowe: ALTER TABLE w SQL DDL w SQL VARCHAR w SQL

W języku zapytań SQL, aby dodać do tabeli Towar kolumnę rozmiar typu znakowego o maksymalnej długości 20 znaków, należy wykonać polecenie

A. ALTER TABLE Towar DROP COLUMN rozmiar varchar(20);
B. ALTER TABLE Towar ADD rozmiar varchar(20);
C. ALTER TABLE Towar CREATE COLUMN rozmiar varchar(20);
D. ALTER TABLE Towar ALTER COLUMN rozmiar varchar(20);

Pytanie z egzaminu CKE, czerwiec 2019 (arkusz E.14-X-19.06).

Polecenie ALTER TABLE Towar ADD rozmiar varchar(20); jest właściwe, bo w SQL do zmiany struktury istniejącej tabeli używa się instrukcji ALTER TABLE, a do dopisania nowej kolumny służy klauzula ADD. W tym przykładzie tabela nazywa się Towar, nowa kolumna ma nazwę rozmiar, a typ varchar(20) oznacza tekst o zmiennej długości, maksymalnie do 20 znaków. To bardzo typowe rozwiązanie, np. gdy w sklepie internetowym mamy już tabelę produktów, ale po czasie okazuje się, że trzeba przechowywać rozmiar: S, M, L, XL albo np. 42, 44, uniwersalny. Moim zdaniem warto zapamiętać schemat: ALTER TABLE nazwa_tabeli ADD nazwa_kolumny typ_danych;. W praktyce branżowej przed taką zmianą dobrze jest zrobić kopię zapasową bazy, szczególnie na produkcji, oraz sprawdzić, czy nowa kolumna powinna dopuszczać NULL, mieć wartość domyślną albo ograniczenie CHECK. W różnych systemach SQL składnia może mieć drobne różnice, ale sama idea jest standardowa: ALTER TABLE modyfikuje tabelę, ADD dodaje element struktury, a varchar(20) definiuje kolumnę znakową o określonym limicie długości.
W tym zadaniu kluczowe jest rozróżnienie operacji wykonywanych na strukturze tabeli. Jeżeli chcemy dodać nową kolumnę, używamy ALTER TABLE razem z ADD. Samo ALTER TABLE mówi bazie danych, że zamierzamy zmienić definicję istniejącej tabeli, ale dopiero dalsza część polecenia określa, co dokładnie ma się wydarzyć. Częsty błąd polega na tym, że ktoś kojarzy ALTER z każdą zmianą i wybiera ALTER COLUMN. Taka konstrukcja służy jednak do modyfikowania już istniejącej kolumny, na przykład zmiany jej typu, długości albo właściwości, zależnie od konkretnego systemu bazodanowego. Nie tworzy ona nowej kolumny od zera.

DROP COLUMN działa w odwrotną stronę niż potrzeba. To polecenie usuwa kolumnę z tabeli, a więc może spowodować utratę danych zapisanych w tej kolumnie. Dopisywanie po nim typu varchar(20) jest nielogiczne, bo przy usuwaniu kolumny nie definiuje się jej typu. Z mojego doświadczenia to właśnie słowo COLUMN potrafi zmylić, bo wygląda technicznie i pasuje do tematu kolumn, ale znaczenie czasownika DROP jest jednoznaczne: usuń.

CREATE COLUMN również nie jest poprawną standardową składnią SQL w takim kontekście. CREATE stosuje się zwykle do tworzenia całych obiektów bazy danych, na przykład CREATE TABLE, CREATE DATABASE, CREATE VIEW. Kolumny w istniejącej tabeli dodaje się przez ALTER TABLE ... ADD, a nie przez osobne CREATE COLUMN. W dobrych praktykach warto czytać polecenia SQL jak zdanie: zmień tabelę Towar, dodaj kolumnę rozmiar typu varchar(20). Wtedy wybór poprawnej składni robi się dużo bardziej naturalny.

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.