Przejdź do głównej treści

Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Zawód: Technik informatyk, Technik programista

Kategorie: Bazy danych

Słowa kluczowe: ALTER TABLE w SQL CREATE TABLE w SQL DDL w SQL DROP TABLE w SQL

Polecenie w języku SQL ALTER TABLE USA RENAME COLUMN stolica TO miasto; ma za zadanie

A. skopiowanie kolumny stolica do nowej kolumny miasto.
B. zmianę nazwy tabeli USA na miasto.
C. zastąpienie wartości stolica wartością miasto we wszystkich rekordach tabeli USA.
D. zmianę nazwy kolumny stolica na miasto w tabeli USA.
Instrukcja ALTER TABLE USA RENAME COLUMN stolica TO miasto; służy do zmiany struktury tabeli, czyli schematu bazy danych. ALTER TABLE oznacza, że modyfikujemy definicję istniejącej tabeli USA, a fragment RENAME COLUMN stolica TO miasto wskazuje konkretnie, że kolumna o nazwie stolica ma dostać nową nazwę: miasto. Dane zapisane w tej kolumnie nie są przez to kasowane ani kopiowane, tylko pozostają w tej samej kolumnie, pod inną nazwą. W praktyce używa się tego np. wtedy, gdy nazwa kolumny była źle dobrana, niezgodna z konwencją projektu albo przestała pasować do znaczenia danych. Moim zdaniem to jedna z tych operacji SQL, przy których trzeba uważać, bo po zmianie nazwy kolumny trzeba też poprawić zapytania SELECT, INSERT, UPDATE, widoki, procedury i kod aplikacji korzystający ze starej nazwy. Dobra praktyka branżowa jest taka, żeby takie zmiany wykonywać przez migracje bazy danych i wcześniej sprawdzić zależności, szczególnie w środowisku produkcyjnym.
To polecenie nie zmienia nazwy całej tabeli, bo w składni SQL po ALTER TABLE podaje się nazwę tabeli, która ma zostać zmodyfikowana. W tym przypadku USA jest obiektem, na którym wykonujemy zmianę, a nie nazwą przeznaczoną do zastąpienia. Gdyby chodziło o zmianę nazwy tabeli, w wielu systemach używa się osobnej składni, na przykład ALTER TABLE USA RENAME TO miasto; albo polecenia RENAME TABLE, zależnie od konkretnego silnika bazy danych. Łatwo się tu pomylić, bo słowo RENAME kojarzy się ogólnie ze zmianą nazwy, ale trzeba patrzeć na pełną frazę: RENAME COLUMN oznacza zmianę nazwy kolumny.

Nie jest to też kopiowanie danych z jednej kolumny do drugiej. SQL do kopiowania wartości zwykle wymagałby utworzenia nowej kolumny, np. przez ALTER TABLE ... ADD COLUMN, a potem użycia UPDATE z przypisaniem wartości. Sama zmiana nazwy kolumny nie tworzy drugiego pola i nie powiela rekordów. Tak samo polecenie nie zastępuje tekstu stolica tekstem miasto we wszystkich wierszach tabeli. Do modyfikacji wartości w rekordach służy UPDATE, np. UPDATE USA SET jakas_kolumna = 'miasto' WHERE jakas_kolumna = 'stolica';. Tutaj stolica i miasto są nazwami elementów schematu, a nie wartościami przechowywanymi w komórkach tabeli. Z mojego doświadczenia najczęstszy błąd polega właśnie na mieszaniu dwóch poziomów: struktury tabeli, czyli kolumn i ich nazw, z danymi zapisanymi w rekordach. ALTER TABLE pracuje głównie na strukturze, natomiast UPDATE pracuje na danych.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wysłane zostaną tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.

Potwierdzenie

Informacja