Pytanie dotyczy operacji DDL, czyli zmiany definicji struktury tabeli w bazie danych. Do takich zmian używa się polecenia ALTER TABLE. Jeżeli chcemy, aby kolumna imie w tabeli klienci przyjmowała maksymalnie 30 znaków, typ tej kolumny powinien mieć postać VARCHAR(30), gdzie liczba w nawiasie oznacza limit długości.
Odpowiedź "ALTER TABLE klienci MODIFY COLUMN imie VARCHAR(30);" jest właściwa, ponieważ:
- wskazuje tabelę, której schemat zmieniamy (klienci),
- odwołuje się do konkretnej kolumny (imie),
- modyfikuje definicję kolumny na typ tekstowy o zadanym limicie (VARCHAR(30)).
Dlaczego pozostałe odpowiedzi są niepoprawne?
- "CHANGE TABLE klienci TO COLUMN imie SET CHAR(30);" – zawiera konstrukcje, które nie stanowią standardowej składni SQL dla modyfikacji kolumn (w szczególności "CHANGE TABLE" i "TO COLUMN ... SET" w tej formie).
- "CHANGE TABLE klienci MODIFY imie CHAR(30);" – również używa niepoprawnego początku polecenia ("CHANGE TABLE"). Dodatkowo CHAR(30) to typ o stałej długości, a pytanie mówi o maksymalnej długości pola (typowo realizowanej przez VARCHAR).
- "ALTER TABLE klienci CHANGE imie TEXT;" – choć zawiera ALTER TABLE, to proponuje zmianę na TEXT, czyli typ przeznaczony do dłuższych danych tekstowych i bez limitu 30 w samej definicji typu; nie spełnia więc warunku ustawienia długości na 30 znaków.
W praktyce warto pamiętać, że składnia ALTER TABLE może się różnić między systemami baz danych (tzw. dialektami SQL). Na egzaminie kluczowe jest rozpoznanie intencji: modyfikujemy istniejącą kolumnę i ustawiamy jej typ/rozmiar tak, aby wymusić limit długości danych.