Polecenie języka SQL w postaci
ALTER TABLE miasta CHANGE kod kod_pocztowy VARCHAR(6);
A. zmienia nazwę kolumny kod na kod_pocztowy i ustawia jej typ VARCHAR(6)
B. dodaje do tabeli miasta kolumnę kod_pocztowy
C. kopiuje kolumnę kod do nowej kolumny kod_pocztowy
D. usuwa z tabeli miasta kolumnę kod
Poprawna odpowiedź to: zmienia nazwę kolumny kod na kod_pocztowy i ustawia jej typ VARCHAR(6). W składni MySQL polecenie ALTER TABLE służy do modyfikowania struktury istniejącej tabeli, a klauzula CHANGE zmienia definicję wskazanej kolumny. Schemat jest następujący: ALTER TABLE nazwa_tabeli CHANGE stara_nazwa nowa_nazwa typ_danych;. W tym przypadku tabelą jest miasta, starą nazwą kolumny jest kod, nową nazwą jest kod_pocztowy, a nowa definicja typu to VARCHAR(6). Tego używa się na przykład podczas porządkowania nazw pól w bazie albo dostosowywania długości przechowywanego tekstu. Typowa pułapka polega na tym, że CHANGE nie tworzy kopii kolumny - modyfikuje istniejącą kolumnę.
W tym poleceniu łatwo pomylić znaczenie słowa CHANGE z dodawaniem albo kopiowaniem danych. Odpowiedź: dodaje do tabeli miasta kolumnę kod_pocztowy byłaby trafna dla składni z ADD, na przykład ALTER TABLE miasta ADD kod_pocztowy VARCHAR(6);. Odpowiedź: kopiuje kolumnę kod do nowej kolumny kod_pocztowy nie pasuje, ponieważ ALTER TABLE CHANGE nie przenosi danych do drugiej, dodatkowej kolumny - zmienia definicję tej samej kolumny. Kopiowanie wymagałoby osobnego dodania kolumny i aktualizacji danych, np. instrukcją UPDATE. Odpowiedź: usuwa z tabeli miasta kolumnę kod odnosi się do polecenia DROP COLUMN, a nie CHANGE. Poprawna odpowiedź to: zmienia nazwę kolumny kod na kod_pocztowy i ustawia jej typ VARCHAR(6). Typowy błąd myślowy polega na rozumieniu ALTER TABLE jako dowolnej zmiany bez sprawdzenia konkretnej klauzuli: ADD dodaje, DROP usuwa, a CHANGE zmienia nazwę i definicję kolumny.