Nach der Erstellung einer Tabelle in der Datenbank gibt es viele Anlässe für die Änderung der Struktur dieser Tabelle. Typische Vorgänge sind dabei:
- Spalten hinzufügen
- Spalten löschen
- Spaltennamen ändern
- Datentyp einer Spalte ändern
Beachten Sie bitte, dass es sich hierbei nicht um eine vollständige Liste handelt. Der Befehl ALTER TABLE wird auch bei anderer Gelegenheit verwendet, beispielsweise zum Ändern der Primärschlüsseldefinition.
Die SQL-Syntax für den Befehl ALTER TABLE sieht folgendermaßen aus:
ALTER TABLE "Tabellen_Name"
[Alter Spezifikation]
[Alter Spezifikation] hängt von der Art der gewünschten Änderung ab. Für die oben aufgeführten Anwendungszwecke lauten die entsprechenden Anweisungen:
- Spalte hinzufügen: ADD "Spalte 1" "Datentyp für Spalte 1"
- Spalte löschen: DROP "Spalte 1"
- Spaltenname ändern: CHANGE "alter Spaltenname" "neuer Spaltenname" "Datentyp für neuen Spaltennamen"
- Datentyp einer Spalte ändern: MODIFY "Spalte 1" "neuer Datentyp"
Es folgen nun Beispiele für die einzelnen Vorgänge, unter Verwendung der im Abschnitt CREATE TABLE erzeugten "Kunden"-Tabelle.
Tabelle customer
| Spalten Name | Datentyp |
| First_Name | char(50) |
| Last_Name | char(50) |
| Address | char(50) |
| City | char(50) |
| Country | char(25) |
| Birth_Date | date |
Zunächst fügen wir eine Spalte "Geschlecht" zu dieser Tabelle hinzu. Dazu geben wir ein:
ALTER table customer add Gender char(1)
Resultierende Tabellenstruktur:
Tabelle customer
| Spalten Name | Datentyp |
| First_Name | char(50) |
| Last_Name | char(50) |
| Address | char(50) |
| City | char(50) |
| Country | char(25) |
| Birth_Date | date |
| Gender | char(1) |
Als nächstes benennen wir die Spalte "Address" in "Addr" um. Dazu geben wir ein:
ALTER table customer change Address Addr char(50)
Resultierende Tabellenstruktur:
Tabelle customer
| Spalten Name | Datentyp |
| First_Name | char(50) |
| Last_Name | char(50) |
| Addr | char(50) |
| City | char(50) |
| Country | char(25) |
| Birth_Date | date |
| Gender | char(1) |
Dann ändern wir den Datentyp der Spalte "Addr" zu char(30). Dazu geben wir ein:
ALTER table customer modify Addr char(30)
Resultierende Tabellenstruktur:
Tabelle customer
| Spalten Name | Datentyp |
| First_Name | char(50) |
| Last_Name | char(50) |
| Addr | char(30) |
| City | char(50) |
| Country | char(25) |
| Birth_Date | date |
| Gender | char(1) |
Schließlich löschen wir die Spalte "Gender" wieder. Dazu geben wir ein:
ALTER table customer drop Gender
Resultierende Tabellenstruktur:
Tabelle customer
| Spalten Name | Datentyp |
| First_Name | char(50) |
| Last_Name | char(50) |
| Addr | char(30) |
| City | char(50) |
| Country | char(25) |
| Birth_Date | date |