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

ALTER TABLE ksiazki MODIFY tytul VARCHAR(100) NOT NULL; Przedstawione polecenie MySQL ma za zadanie

ALTER TABLE ksiazki MODIFY tytul VARCHAR(100) NOT NULL;
Przedstawione polecenie MySQL ma za zadanie
A. zmienić nazwę kolumny w tabeli ksiazki.
B. dodać do tabeli ksiazki kolumnę tytul.
C. usunąć kolumnę tytul z tabeli ksiazki.
D. zmienić typ kolumny tytul w tabeli ksiazki.

Pytanie z egzaminu CKE, styczeń 2017 (arkusz E.14-X-17.01).

Polecenie ALTER TABLE ksiazki MODIFY tytul VARCHAR(100) NOT NULL; służy do zmiany definicji istniejącej kolumny tytul w tabeli ksiazki. W MySQL słowo MODIFY oznacza, że kolumna już istnieje, ale chcemy zmienić jej właściwości, na przykład typ danych, długość pola albo ograniczenia. Tutaj kolumna tytul zostaje ustawiona jako VARCHAR(100), czyli tekst o zmiennej długości maksymalnie do 100 znaków, oraz NOT NULL, czyli nie może przechowywać wartości pustej NULL. W praktyce używa się tego np. gdy wcześniej tytuł książki miał za mały limit znaków, albo gdy chcemy wymusić, żeby każda książka w bazie miała podany tytuł. Moim zdaniem warto zapamiętać, że takie operacje to część DDL, czyli poleceń zmieniających strukturę bazy. Dobra praktyka jest taka, żeby przed modyfikacją kolumny sprawdzić istniejące dane, bo jeśli w kolumnie są wartości NULL, dodanie NOT NULL może się nie udać albo wymagać wcześniejszego uzupełnienia rekordów. Przy większych tabelach dobrze też zrobić kopię zapasową, bo ALTER TABLE potrafi mocno ingerować w strukturę danych.
W tym poleceniu łatwo pomylić ogólne znaczenie ALTER TABLE z konkretną operacją wykonywaną na kolumnie. Samo ALTER TABLE mówi tylko, że zmieniamy strukturę tabeli, ale dopiero dalsza część składni określa, co dokładnie ma się stać. Gdyby celem było usunięcie kolumny tytul, w MySQL użyto by składni DROP COLUMN tytul. Tutaj takiego fragmentu nie ma, więc kolumna nie jest kasowana, tylko dalej istnieje w tabeli. Jeśli chcielibyśmy dodać nową kolumnę, pojawiłoby się ADD albo ADD COLUMN, na przykład ALTER TABLE ksiazki ADD tytul VARCHAR(100);. Słowo MODIFY nie tworzy nowej kolumny, tylko zmienia definicję już istniejącej. Podobnie zmiana nazwy kolumny wymaga innej składni. W nowszych wersjach MySQL można użyć RENAME COLUMN stara_nazwa TO nowa_nazwa, a klasycznie często spotyka się CHANGE, gdzie podaje się starą i nową nazwę oraz typ. W pokazanym poleceniu nazwa tytul występuje tylko raz, więc nie ma informacji, na jaką nazwę miałaby zostać zmieniona. Typowy błąd myślowy polega na tym, że ktoś widzi ALTER TABLE i zakłada dowolną zmianę w tabeli, bez analizy słowa MODIFY. A ono jest tutaj kluczowe: zmienia typ i cechy kolumny, konkretnie na VARCHAR(100) NOT NULL. Z mojego doświadczenia najlepiej czytać takie polecenia od lewej do prawej: która tabela, jaka operacja, która kolumna i jakie nowe parametry. Wtedy składnia SQL robi się dużo mniej myląca.

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.