Aby zmodyfikować strukturę tabeli w bazie MySQL należy wykonać polecenie
A.
UPDATEB.
GRANTC.
ALTER TABLE
D.
INSERT INTO
Pytanie z egzaminu CKE, styczeń 2021 (arkusz EE.09-SG-21.01).
ALTER TABLE to właściwe polecenie, gdy chcemy zmienić strukturę już istniejącej tabeli w MySQL. Należy ono do grupy poleceń DDL, czyli Data Definition Language, które służą do definiowania i modyfikowania obiektów bazy danych, takich jak tabele, kolumny, indeksy czy ograniczenia. Praktycznie używa się go np. do dodania nowej kolumny: ALTER TABLE uczniowie ADD email VARCHAR(100);, zmiany typu danych: ALTER TABLE produkty MODIFY cena DECIMAL(10,2); albo usunięcia kolumny: ALTER TABLE klienci DROP COLUMN telefon;. To jest codzienna rzecz przy rozwijaniu aplikacji, bo struktura danych często się zmienia razem z wymaganiami projektu. Z mojego doświadczenia warto przed takim poleceniem zrobić kopię zapasową albo przynajmniej sprawdzić zmianę na bazie testowej, bo modyfikacja schematu może wpłynąć na istniejące dane i działanie aplikacji. Dobrą praktyką jest też planowanie migracji bazy, szczególnie w projektach webowych, żeby zmiany były powtarzalne i kontrolowane.
W tym pytaniu chodzi o zmianę struktury tabeli, czyli na przykład dodanie kolumny, usunięcie pola, zmianę typu danych, dodanie klucza obcego albo indeksu. Do takich operacji w MySQL stosuje się polecenie ALTER TABLE, ponieważ ono pracuje na definicji tabeli, a nie tylko na danych zapisanych w rekordach. Łatwo tu pomylić kilka grup poleceń SQL, bo wszystkie są używane przy pracy z bazą, ale robią zupełnie inne rzeczy. INSERT INTO służy do dopisywania nowych rekordów do tabeli, czyli np. dodania nowego użytkownika, produktu albo zamówienia. Nie zmienia kolumn ani ich typów. UPDATE modyfikuje wartości w istniejących rekordach, na przykład poprawia cenę produktu albo adres klienta, ale nadal działa na danych, a nie na schemacie tabeli. GRANT dotyczy nadawania uprawnień użytkownikom bazy, na przykład prawa do odczytu, zapisu czy administrowania określoną bazą. To już bardziej temat bezpieczeństwa i administracji. Typowy błąd polega na tym, że ktoś widzi słowo zmodyfikować i od razu kojarzy je z UPDATE. W SQL trzeba jednak odróżniać modyfikację danych od modyfikacji struktury. Moim zdaniem to jedna z ważniejszych granic do zapamiętania: DML operuje na rekordach, DDL na obiektach bazy, a DCL na uprawnieniach.