KWALIFIKACJA INF3 - CZERWIEC 2021

PYTANIE NR 22.
ALTER TABLE artykuly MODIFY cena float; 
Kwerenda ma za zadanie w tabeli artykuly
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Polecenie ALTER TABLE zmienia strukturę tabeli, a klauzula MODIFY (w dialektach MySQL/MariaDB) służy do modyfikacji definicji istniejącej kolumny. Zapis MODIFY cena float oznacza zmianę typu danych kolumny cena na FLOAT, nie usuwa jej, nie zmienia nazwy i nie dodaje nowej kolumny.

Pełne wyjaśnienie:

Polecenie ALTER TABLE należy do DDL, czyli służy do zmiany schematu bazy danych (definicji tabel), a nie do modyfikowania wierszy. W przedstawionej kwerendzie użyto składni typowej dla MySQL/MariaDB: ALTER TABLE artykuly MODIFY cena float;

Najważniejsze jest słowo MODIFY. Oznacza ono zmianę definicji już istniejącej kolumny: można w ten sposób zmienić typ danych, a czasem także inne atrybuty (np. domyślną wartość lub dopuszczalność NULL – zależnie od DBMS). Dlatego poprawne rozumienie polecenia to: zmiana typu kolumny cena na FLOAT.

Dlaczego pozostałe odpowiedzi są błędne?

  • Usunięcie kolumny wymagałoby użycia składni typu DROP COLUMN. Samo MODIFY nie usuwa kolumny – modyfikuje ją.
  • Zmiana nazwy kolumny to inna operacja (np. RENAME COLUMN lub składnia specyficzna dla DBMS). W tym zapytaniu po nazwie kolumny występuje typ, więc nie jest to renaming.
  • Dodanie kolumny realizuje się przez ADD COLUMN. Polecenie MODIFY zakłada istnienie kolumny, którą da się zmienić.

W praktyce taka zmiana typu bywa elementem migracji schematu w aplikacji webowej (np. przy przebudowie sposobu przechowywania ceny). Trzeba pamiętać, że typy zmiennoprzecinkowe mogą wprowadzać zaokrąglenia, więc dobór typu powinien wynikać z wymagań dotyczących precyzji.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
ALTER TABLE służy do zmiany struktury (schematu) istniejącej tabeli, np. dodania/usunięcia kolumny, zmiany typu danych, zmiany ograniczeń. To polecenie DDL, więc wpływa na definicję tabeli, a nie bezpośrednio na treść pojedynczych rekordów.
W MySQL/MariaDB MODIFY oznacza modyfikację definicji istniejącej kolumny, najczęściej zmianę typu danych lub atrybutów kolumny. Nie służy do usuwania kolumny ani do dodawania nowej — do tego używa się odpowiednio DROP COLUMN i ADD COLUMN.
Wskazówką jest konstrukcja, w której po nazwie kolumny podajesz nowy typ, np. cena FLOAT. Jeśli dodatkowo pojawia się słowo MODIFY (MySQL/MariaDB) lub ALTER COLUMN ... TYPE (PostgreSQL), to celem jest zmiana typu danych kolumny.
Nie. MODIFY jest charakterystyczne dla MySQL/MariaDB. Inne DBMS mogą wymagać innej składni, np. w PostgreSQL typ zmienia się przez ALTER TABLE ... ALTER COLUMN ... TYPE. Na egzaminie warto zwracać uwagę, czy pytanie wskazuje konkretny system.
Usuwanie kolumny realizuje się inną komendą, zwykle z użyciem DROP COLUMN. Samo MODIFY nie usuwa kolumny, tylko zmienia jej definicję. To częsty błąd: kojarzenie "ALTER TABLE" z dowolną zmianą, bez analizy konkretnej klauzuli.
Zmiana nazwy kolumny to osobna operacja, zwykle wykonywana przez RENAME COLUMN lub składnię specyficzną dla DBMS. W zapytaniu zmiany typu po nazwie kolumny pojawia się typ danych (np. FLOAT), a nie nowa nazwa — dlatego nie należy mylić tych dwóch operacji.
ADD COLUMN stosuje się, gdy kolumna jeszcze nie istnieje i trzeba ją dopiero dodać do tabeli. MODIFY używa się, gdy kolumna już istnieje i chcesz zmienić jej typ lub właściwości. To rozróżnienie jest kluczowe w zadaniach o modyfikacji schematu.
FLOAT to typ liczbowy zmiennoprzecinkowy, używany do przechowywania wartości z częścią ułamkową. Może być wygodny dla przybliżonych obliczeń, ale bywa problematyczny przy wartościach wymagających ścisłej precyzji (np. finansowych). Dobór typu powinien wynikać z wymagań aplikacji.
Najczęściej uczniowie zakładają, że polecenie zmienia dane w wierszach (DML), gdy w rzeczywistości zmienia definicję tabeli (DDL). Wtedy wybierają odpowiedzi o "dodaniu wartości" lub "aktualizacji rekordów". W zadaniach z ALTER TABLE skup się na kolumnach, typach i ograniczeniach.
Ćwicz rozpoznawanie operacji: ADD, DROP, MODIFY/CHANGE (MySQL), oraz ich odpowiedników w innych DBMS. Rób krótkie testy: "co zmieni schemat, co zmieni dane". Pomaga też przepisywanie przykładów i opisywanie skutku jednym zdaniem.
info

Statystycznie 65% uczniów zna prawidłową odpowiedź. średnie

W praktyce zawodowej kluczowe jest to, że polecenie ALTER TABLE zmienia strukturę tabeli, a klauzula MODIFY (w dialektach MySQL/MariaDB) służy do modyfikacji definicji istniejącej kolumny.

Źródła:

  • MySQL 8.0 Reference Manual: ALTER TABLE Statement (MODIFY/CHANGE), https://dev.mysql.com/doc/refman/8.0/en/alter-table.html - accessed 2026-02-27
  • MariaDB Server Documentation: ALTER TABLE, https://mariadb.com/kb/en/alter-table/ - accessed 2026-02-27
  • PostgreSQL Documentation: ALTER TABLE, https://www.postgresql.org/docs/current/sql-altertable.html - accessed 2026-02-27

Materiały:

  • Dokumentacja DBMS używanego na zajęciach (MySQL/MariaDB/PostgreSQL) – rozdział ALTER TABLE
  • Materiały o typach danych liczbowych w SQL i ich konsekwencjach dla precyzji obliczeń
  • Ćwiczenia z migracji schematu (DDL) na przykładowej bazie sklepu/inwentarza

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego