ALTER TABLE artykuly MODIFY cena float; Przedstawiona kwerenda ma za zadanie w tabeli artykuly
ALTER TABLE artykuly MODIFY cena float;Przedstawiona kwerenda ma za zadanie w tabeli
artykulyA. zmienić typ na float dla kolumny cena.
B. dodać kolumnę cena o typie float, jeśli nie istnieje.
C. zmienić nazwę kolumny z cena na float.
D. usunąć kolumnę cena typu float.
Instrukcja ALTER TABLE artykuly MODIFY cena float; służy do zmiany definicji istniejącej kolumny cena w tabeli artykuly, konkretnie do ustawienia jej typu danych na float. To jest operacja DDL, czyli dotycząca struktury tabeli, a nie samych rekordów. W praktyce taka kwerenda może być użyta, gdy wcześniej cena była np. liczbą całkowitą albo tekstem, a teraz baza ma przechowywać wartości z częścią dziesiętną, na przykład 12.50 albo 99.99. W MySQL i MariaDB słowo MODIFY oznacza modyfikację kolumny bez zmiany jej nazwy. Moim zdaniem warto jednak pamiętać o dobrej praktyce: dla cen zwykle lepszy jest typ DECIMAL, np. DECIMAL(10,2), bo float jest typem przybliżonym i może powodować drobne błędy zaokrągleń. Przed taką zmianą w prawdziwym systemie dobrze zrobić kopię zapasową, sprawdzić istniejące dane i wykonać zmianę w czasie mniejszego ruchu na stronie czy sklepie.
W tej kwerendzie łatwo pomylić znaczenie słów kluczowych, bo wszystkie dotyczą struktury tabeli, ale robią zupełnie inne rzeczy. ALTER TABLE informuje bazę danych, że chcemy zmienić budowę tabeli artykuly, natomiast MODIFY odnosi się do zmiany definicji istniejącej kolumny. Nie usuwa kolumny, bo do tego w SQL używa się konstrukcji DROP COLUMN, na przykład ALTER TABLE artykuly DROP COLUMN cena. Gdyby taka operacja została wykonana, kolumna zniknęłaby razem z danymi, więc jest to dużo bardziej destrukcyjne działanie. Tutaj tego nie ma. Nie chodzi też o zmianę nazwy kolumny z cena na float. W składni MySQL do zmiany nazwy często używa się CHANGE albo RENAME COLUMN, zależnie od wersji i systemu bazodanowego. W zapisie MODIFY cena float słowo cena wskazuje istniejącą kolumnę, a float jest typem danych, nie nową nazwą. Błędne jest również założenie, że zapytanie doda kolumnę tylko wtedy, gdy jej nie ma. Dodawanie kolumn wykonuje się przez ADD COLUMN, a nie MODIFY. Jeśli kolumna cena nie istnieje, taka kwerenda zakończy się błędem. Typowy błąd myślowy polega tu na traktowaniu float jak zwykłego identyfikatora albo na zgadywaniu znaczenia po samym ALTER TABLE. W SQL warto patrzeć na całe polecenie, bo jedno słowo kluczowe, takie jak MODIFY, DROP czy ADD, kompletnie zmienia sens operacji.