|
Mit ALTER TABLE
kann die Struktur einer Tabelle geändert werden. Es können somit die mit CREATE TABLE
erzeugten Attribute und Beschränkungen geändert, neue hinzugefügt oder vorhandene gelöscht werden. Der Befehl hat folgende
Syntax:ALTER TABLE <Tabellenname> <Änderung>;
wobei <Änderung>
verschieden Befehle beinhalten kann:
ADD [COLUMN] <Attributdefintion>
ALTER [COLUMN] <Attributname> SET DEFAULT <Standardwert>
ALTER [COLUMN] <Attributname> DROP DEFAULT
DROP [COLUMN] <Attributname> {RESTRICT | CASCADE}
ADD <Tabellenbeschränkung>
DROP CONSTRAINT <Tabellenbeschränkung>
Mit den oben genannten Befehlen können Attribute und Beschränkungen hinzugefügt bzw. gelöscht werden.
Zudem können die Standardwerte für die Attribute gesetzt oder gelöscht werden. SQL sieht noch andere Befehle vor die
hier nicht erwähnt sind.
SQL beinhaltet im Standard keine Befehle um Attribute zu ändern oder umzubnennen. Dies würde auch zu Problemen führen,
wenn bereits Daten vorhanden sind.
Denoch sind diese Befehle in einigen Datenbanken vorhanden (z.B. MODIFY oder RENAME). Die Syntax unterscheidet sich jedoch
von System zu System.
Wenn keine Daten vorhanden sind, kann das Attribut, das geändert werden soll, gelöscht und neu hinzugefügt werden.
In diesem Beispiel wird einer Tabelle ein neues Attribut hinzugefügt. Der angezeigte Datensatz enthält danach NULL für dieses
Attribut,
weil noch kein Wert zugewiesen wurde. Anschliessend wird dieses Attribut wieder aus der Tabelle gelöscht.
Das Schlüsselwort RESTRICT
bewirkt, dass nur Attribute gelöscht werden können, die nicht mit anderen Tabellen verbunden sind (Fremdschüssel).
Alternativ kann das Schlüsselwort CASCADE
verwendet werden. Dabei wird nicht nur die gewünschte Spalte,
sondern auch die verbundene Spalte in der anderen Tabelle gelöscht.