Modyfikowanie istniejącej tabeli (ALTER TABLE)
Co jeśli tabela już istnieje, a chcemy zmienić jej strukturę (np. dodać kolumnę)? Do tego służy polecenie DDL ALTER TABLE. Materiał wykorzystany poniżej pochodzi z lekcji dotyczącej modyfikacji i usuwania tabel.
Dodawanie kolumny (ADD COLUMN)
Służy do dodawania nowej kolumny do tabeli, która już zawiera dane.
Składnia:
ALTER TABLE Uczniowie ADD COLUMN DataUrodzenia DATE NULL;Dobra praktyka: nowe kolumny domyślnie powinny pozwalać na NULL, inaczej baza może mieć problem z uzupełnieniem wartości dla wielu istniejących wierszy.
Modyfikowanie kolumny (MODIFY / ALTER COLUMN)
Służy do zmiany definicji istniejącej kolumny (np. typu danych lub ograniczeń).
Uwaga: składnia różni się między dialektami SQL (np. MODIFY COLUMN w MySQL vs ALTER COLUMN w PostgreSQL i SQL Server).
Składnia (koncepcyjna, dla SQL Server / PostgreSQL):
ALTER TABLE Uczniowie ALTER COLUMN Imie VARCHAR(150) NOT NULL;Przykład: zmiana maksymalnej długości z 100 na 150 znaków.
Usuwanie kolumny (DROP COLUMN)
Usuwa kolumnę z tabeli — powoduje trwałą utratę wszystkich danych, które ta kolumna zawierała.
Składnia:
ALTER TABLE Uczniowie DROP COLUMN DataUrodzenia;Usuwanie całej tabeli (DROP TABLE)
DROP TABLE to polecenie DDL, które całkowicie i bezpowrotnie usuwa tabelę z bazy danych — zarówno jej strukturę (definicję), jak i wszystkie zawarte w niej dane.
Składnia:
DROP TABLE Uczniowie;Kluczowa różnica: DELETE vs DROP
- DELETE FROM Uczniowie; (DML) — usuwa dane (wiersze), ale tabela i jej struktura nadal istnieją. Jeśli operacja była wykonywana w ramach transakcji, można ją wycofać (ROLLBACK).
- DROP TABLE Uczniowie; (DDL) — usuwa zarówno dane, jak i strukturę tabeli. Tabela znika z bazy danych i operacji tej zwykle nie można cofnąć standardowym ROLLBACK; jest to operacja ostateczna.
Uwaga praktyczna: przed wykonaniem operacji DROP warto upewnić się, że mamy kopię zapasową danych, a operacje usuwania danych (DELETE) wykonywać ostrożnie — najlepiej w transakcjach, aby móc użyć ROLLBACK w razie potrzeby.