W języku zapytań SQL (MySQL 8), aby w tabeli Towar zmienić nazwę kolumny rozmiar na wymiar, należy wykonać polecenie
A.
ALTER TABLE Towar ADD wymiar varchar(20);
B.
ALTER TABLE Towar RENAME COLUMN rozmiar TO wymiar;
C.
ALTER TABLE Towar DROP COLUMN rozmiar;
D.
RENAME TABLE Towar TO wymiar;
Polecenie ALTER TABLE Towar RENAME COLUMN rozmiar TO wymiar; jest właściwe dla MySQL 8, bo używa instrukcji ALTER TABLE do zmiany struktury istniejącej tabeli oraz klauzuli RENAME COLUMN do zmiany samej nazwy kolumny. Ważne jest tu to, że zmieniana jest tylko nazwa pola: dane zapisane w kolumnie rozmiar zostają zachowane, typ danych kolumny się nie zmienia, a tabela nadal nazywa się Towar. W praktyce taką operację wykonuje się np. wtedy, gdy nazwa kolumny jest mało precyzyjna albo zmienia się model danych aplikacji. Moim zdaniem warto zawsze przed taką zmianą sprawdzić, czy kolumna nie jest używana w zapytaniach, widokach, procedurach, raportach albo kodzie PHP/JavaScript aplikacji. Dobra praktyka branżowa to wykonanie kopii zapasowej oraz przeprowadzenie zmiany przez migrację bazy danych, szczególnie na serwerze produkcyjnym. W MySQL 8 składnia RENAME COLUMN jest czytelna i bezpieczniejsza niż starsze podejście z CHANGE, gdzie trzeba było ponownie podać typ kolumny. Gdyby nazwa była słowem zastrzeżonym albo zawierała nietypowe znaki, warto użyć znaków `, np. `rozmiar`, ale przy takich nazwach jak rozmiar i wymiar zwykle nie jest to konieczne.
W tym pytaniu chodzi o zmianę nazwy istniejącej kolumny, a nie o dodawanie, usuwanie ani zmianę nazwy całej tabeli. To jest dość częsta pomyłka, bo wszystkie te operacje mogą występować przy modyfikowaniu struktury bazy danych i często zaczynają się podobnie, zwłaszcza od ALTER TABLE. Instrukcja ADD służy do dodania nowej kolumny, na przykład wymiar varchar(20), ale nie przenosi automatycznie danych z kolumny rozmiar. Po takim poleceniu tabela miałaby dwie kolumny: starą rozmiar oraz nową wymiar, najczęściej pustą albo wypełnioną wartością domyślną. To nie jest zmiana nazwy, tylko rozszerzenie schematu tabeli. Z kolei DROP COLUMN usuwa kolumnę z tabeli, więc razem z kolumną rozmiar zniknęłyby też zapisane w niej dane. To operacja destrukcyjna i w praktyce trzeba ją wykonywać bardzo ostrożnie, najlepiej po kopii zapasowej oraz sprawdzeniu zależności. RENAME TABLE działa na poziomie całej tabeli, a nie pojedynczej kolumny. Polecenie RENAME TABLE Towar TO wymiar zmieniłoby nazwę tabeli z Towar na wymiar, co kompletnie zmienia sens operacji i mogłoby popsuć zapytania aplikacji odwołujące się do tabeli Towar. Typowy błąd myślowy polega tutaj na rozpoznaniu słowa RENAME i pominięciu tego, czego ono dotyczy. W SQL trzeba patrzeć na pełną składnię: obiekt, który modyfikujemy, jest równie ważny jak sama komenda. Dla MySQL 8 poprawnym i czytelnym rozwiązaniem jest ALTER TABLE z RENAME COLUMN, bo dokładnie wskazuje tabelę, starą nazwę kolumny oraz nową nazwę kolumny.