Grundkurs SQL

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.