7.4.1 Die Verwendung von ALTER TABLE
Wir verzichten auf dieser Seite auf eine allgemeine Schreibweise und stellen die einzelnen Varianten jeweils gleich an einem konkreten Beispiel dar. Möglicherweise hilft es Ihnen, wenn sie selbst die allgemeine Form notieren. Probieren Sie es!
Spalten in einer Tabelle einfügen
Um eine oder mehrere neue Spalte hinzuzufügen, verwendet man den Befehl:
ALTER TABLE ort ADD landesbezeichnung CHAR(3)
Sollten bereits Datensätze in der Tabelle vorhanden sein, werden die Zeilen dieser neuen Spalte mit
NULL
-Werten gefüllt. Sind nun mehr als eine Spalte einzufügen, wird nach der ersten
Spaltendefinition ein Komma gesetzt und die zweite Spalte mit ihrer Definition angefügt.
Dieses Schema wird fortgesetzt bis alle benötigten Spalten eingesetzt sind.
ALTER TABLE ort ADD landesbezeichnung CHAR(3), ADD flaeche DECIMAL(10,2) NOT NULL DEFAULT 00.00
Spalten einer Tabelle umbenennen, Spaltendefinition ändern
Sollte nun der Name einer Spalte etwas untreffend formuliert sein, so besteht die Möglichkeit den Spaltennamen umzubenennen. Um das zu tun, geben Sie den alten und den neuen Spaltennamen an. Die Spaltendefinition muss immer mit angegeben werden, auch wenn sie sich nicht ändert.
ALTER TABLE ort CHANGE landesbezeichnung bundesland CHAR(3)
Ist eine Spaltendefinition nicht mehr für die Bedürfnisse passend, der Name der Spalte
soll aber beibehalten werden, so kann man auch hier das CHANGE
Attribut in der
ALTER TABLE
-Anweisung benutzen. Der Bezeichner der Spalte muss dann einfach beibehalten
werden und nur die Spaltendefinition wird verändert (hier Änderung des Datentyps von CHAR(3)
auf VARCHAR(20)
).
ALTER TABLE ort CHANGE bundesland bundesland VARCHAR(20)
Natürlich lassen sich Spaltenname und -definition auch gleichzeitig ändern:
ALTER TABLE ort CHANGE landesbezeichnung bundesland VARCHAR(20)
Einfügen von Constraints nach dem die Tabelle schon angelegt wurde
Bei der Tabellendefinition vergessene oder erst später notwendig gewordene Constraints können mit diesem Befehl auch nachträglich separat eingefügt werden. Dafür verwendet man die normale Syntax eines Tabellen-Constraints. Im ersten Fall wird damit nachträglich ein Primärschlüssel definiert, im zweiten Fall festgelegt, dass die Vorwahl eindeutig sein muss.
ALTER TABLE ort ADD CONSTRAINT primaryKey_plz PRIMARY KEY (plz)
ALTER TABLE ort ADD CONSTRAINT unique_vorwahl UNIQUE (vorwahl)
Default-Werte neu setzen
Als letztes wollen wir uns hier noch ansehen wie wir einen bestehenden DEFAULT
-Wert ändern
können. In unserer Tabelle ort hat die Spalte vorwahl den Default-Wert 000
. Die
folgende ALTER TABLE
-Anweisung setzt einen neunen Wert:
ALTER TABLE ort ALTER vorwahl SET DEFAULT '00000'
Sie können alle Anweisungen selbst in der Datenbank ausprobieren. Schauen Sie sich nach einer Änderung immer die Struktur der jeweiligen Tabelle an, um zu sehen was sich getan hat.