Zmiana struktury tabeli
Do zmiany Zmiana struktury tabeli służy polecenie o następujacej składni:
ALTER TABLE [IGNORE] nazwa_tabeli zmiana1, zmiana2,...
Jeżeli zostanie podana klauzula IGNORE
, to podczas prób zmian powodujących zduplikowanie kluczy głównych, pierwszy zostaje wstawiony to zmienionej tabeli, natomiast pozostałe są usuwane. Domyślnie nie ma tej klauzuli i taka zmiana jest blokowana.
Ćwiczenie 4_3_2_1. Zmiana typu danych w kolumnie
Napierw zajrzyj do tabel bazy. W drugim wierszu tabeli ksiazki
, Delphi 4 dla każdego ma cenę 99.99
. Zajrzyj teraz do ćwiczenia w którym tworzyliśmy tabele. Tworząc tabelę ksiazki
zastosowaliśmy warunek cena FLOAT(4,2)
, który uniemożliwia nam wpisanie liczby składającej się z więcej jak czterech cyfr. Największą taką liczbą pisaną z dokładnością 2 cyfr po przecinku może być 99.99. Tak więc tej granicy nie mogliśmy przekroczyć. Tego błędu nie zauważyliśmy wcześniej, podczas wypełniania tabel danymi, cenę wspomnianej książki określiliśmy tam na 120.34
. Teraz to naprawimy. Najpierw zmienimy typ danych stosując następujące polecenie:
ALTER TABLE ksiazki
MODIFY cena FLOAT(5,2);
W składni tego polecenia występuje MODIFY
. Istnieje wiele możliwych zmian dokonywanych poleceniem ALTER TABLE
.
Teraz, możemy wprowadzić poprawną cenę - 120.34
.
UPDATE ksiazki
SET cena=120.34
WHERE isbn='83-7197-034-X';
Sprawdź, czy teraz cena ksiązki, jest poprawna. Wykonując to ćwiczenie założyliśmy, że nie będzie książek droższych jak 999,99 zł.
Ćwiczenie 4_3_2_2. Dodawanie kolumny w tabeli
W tabeli zamówienia
utworzymy nową kolumnę podatek
. W tym celu zastosujemy następujące polecenie SQL:
ALTER TABLE zamowienia
ADD podatek FLOAT(4,2) AFTER wartosc;
W poleceniu podaliśmy typ danych nowej kolumny - FLOAT(4,2)
oraz umiejscowienie nowej kolumny - po kolumnie wartosc
(AFTER wartosc
).
Ćwiczenie 4_3_2_3. Usuwanie kolumny z tabeli
W tabeli zamówienia
usuniemy dodaną w poprzednim ćwiczeniu kolumnę podatek
. W tym celu zastosujemy następujące polecenie SQL:
ALTER TABLE zamowienia
DROP podatek;
Sprawdź, czy kolumna podatek
, została usunięta z tabeli zamówienia
.