KWALIFIKACJA INF3 - CZERWIEC 2020

PYTANIE NR 22.
Aby zmienić maksymalną długość pola imie w tabeli klienci na 30 znaków, należy użyć w języku SQL następującego kodu
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
ALTER TABLE służy do modyfikacji struktury istniejącej tabeli. Aby zmienić maksymalną długość kolumny tekstowej, należy zmodyfikować jej definicję typu na VARCHAR(30). Składnia z MODIFY COLUMN wskazuje na zmianę parametrów tej samej kolumny, a pozostałe propozycje nie są poprawnymi poleceniami SQL lub zmieniają typ w inny sposób.

Pełne wyjaśnienie:

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.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
VARCHAR(30) oznacza typ tekstowy o zmiennej długości, z limitem maksymalnie 30 znaków (w zależności od DBMS: znaków/znaków w danym kodowaniu). Taki limit pomaga kontrolować dane z formularzy, np. imię klienta, i ogranicza ryzyko zbyt długich wpisów.
Do zmiany struktury istniejącej tabeli używa się polecenia ALTER TABLE. Dzięki niemu można m.in. dodać kolumnę, usunąć kolumnę, zmienić typ danych kolumny, ustawić domyślne wartości lub dodać ograniczenia, zależnie od możliwości danego systemu baz danych.
W dialektach takich jak MySQL/MariaDB MODIFY COLUMN służy do zmiany definicji istniejącej kolumny bez zmiany jej nazwy. To wygodny zapis, gdy zmieniasz sam typ lub jego parametr (np. z VARCHAR(20) na VARCHAR(30)), zachowując tę samą kolumnę.
Nie. Ogólna idea jest podobna, ale składnia i możliwości różnią się między DBMS (np. MySQL, PostgreSQL, SQL Server). Dlatego na egzaminie warto rozpoznawać sens polecenia, a w praktyce zawsze sprawdzać dokumentację konkretnego silnika, którego używasz w projekcie.
VARCHAR przechowuje tekst o zmiennej długości do podanego limitu, a CHAR zwykle przechowuje tekst o stałej długości (krótsze wartości mogą być dopełniane). W zadaniach o "maksymalnej długości pola" najczęściej pasuje VARCHAR(n), bo limit jest naturalnym parametrem typu.
Zwykle nie. TEXT jest przeznaczony do dłuższych opisów i nie narzuca prostego limitu typu jak VARCHAR(30) w definicji kolumny. Dla imienia lepszy jest krótki typ tekstowy z limitem, bo wspiera walidację danych i przewidywalność rozmiaru przechowywanych rekordów.
Najczęściej wtedy, gdy zmieniają się wymagania aplikacji: formularz ma przyjąć dłuższe imiona/nazwiska, integrujesz dane z innym systemem lub chcesz ujednolicić model danych. Taką zmianę wykonuje się w ramach migracji bazy i należy ją testować na kopii danych, by uniknąć utraty informacji.
Sposób zależy od DBMS. Najczęściej używa się poleceń opisujących tabelę (np. w MySQL/MariaDB: DESCRIBE klienci lub SHOW COLUMNS). W innych systemach sprawdza się widoki systemowe lub narzędzia administracyjne. Kluczowe jest ustalenie, czy kolumna jest np. VARCHAR i jaki ma limit.
Zmiany schematu mogą być trudne do odwrócenia, a błędna modyfikacja typu może skutkować ucięciem danych lub błędami aplikacji. Kopia (backup) i test na środowisku testowym pozwalają bezpiecznie sprawdzić, czy zmiana nie psuje zapytań, indeksów i walidacji w aplikacji internetowej.
Typowe pomyłki to: użycie nieistniejących słów kluczowych (np. mieszanie składni z różnych baz), zmiana na zły typ danych (np. TEXT zamiast VARCHAR(30)), pominięcie nazwy kolumny lub błędny średnik. Pomaga ćwiczenie kilku wariantów DDL i zapamiętanie roli ALTER TABLE.
info

Około 63% zdających odpowiada poprawnie na to pytanie. średnie

Według specjalistów z branży: "ALTER TABLE służy do modyfikacji struktury istniejącej tabeli."

Źródła:

  • MySQL 8.0 Reference Manual – ALTER TABLE Statement (opis składni MODIFY [COLUMN]): https://dev.mysql.com/doc/refman/8.0/en/alter-table.html - dostęp 2026-02-27
  • MariaDB Knowledge Base – ALTER TABLE (składnia MODIFY/CHANGE kolumn): https://mariadb.com/kb/en/alter-table/ - dostęp 2026-02-27
  • PostgreSQL Documentation – ALTER TABLE (ALTER COLUMN TYPE; przykład różnic dialektu): https://www.postgresql.org/docs/current/sql-altertable.html - dostęp 2026-02-27

Materiały:

  • Dokumentacja DBMS używanego na zajęciach (ALTER TABLE)
  • Materiały o DDL i typach danych tekstowych w SQL (VARCHAR/CHAR/TEXT)
  • Ćwiczenia z migracji schematu (np. przykładowe skrypty ALTER TABLE)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego