Home
SQL / MySQL
Datenbanken?
  ---------------
Select
Insert
Update
Delete
  ---------------
Where
Order By
Group By
  ---------------
Create Table
Alter Table
Rename Table
Drop Table
Optimize Table
Repair Table
Backup Table
Restore Table
Show Tables
Describe Table
  ---------------
Use DB
Create DB
Drop DB
Show DBs
  ---------------
Funktionen
Indizes
Fulltext
Feldtypen
Gästebuch
Download
Kontakt
 
57957 Seitenaufrufe

Alter Table - Statement


  1. Tabellentyp umwandeln
  2. Tabelle umbenennen
  3. Felder in einer Tabelle umbenennen
  4. Feldtypen ändern
  5. Felder hinzufügen
  6. Felder löschen
  7. Indizes hinzufügen
  8. Indizes löschen
Bedeutung:
Mit der Anweisung ALTER TABLE lassen sich Änderungen an einer Tabelle vornehmen: Tabelle umbenennen, Tabellentyp ändern, Felder umbenennen, Feldtypen ändern, Felder hinzufügen und löschen, Indizes hinzufügen und löschen sowie Primary Keys hinzufügen und löschen.



Tabellentyp umwandeln
In MySQL gibt es verschiedene Tabellentypen. Momentan ist der Standardtyp MYISAM. Frühere MySQL-Versionen verwendeten ISAM als Standard. Daneben gibt es noch die Typen 'TEMPORARY' und 'HEAP' sowie einige andere. Legt man per CREATE TABLE eine neue Tabelle an so ist diese - sofern nichts anderes angegeben wurde - vom Typ MYISAM. Um den Tabellentyp in einen anderen umzuwandeln verwendet man ALTER TABLE.

Allgemeine Form:
ALTER TABLE tabelle TYPE = tabellentyp

Beispiel:
ALTER TABLE adressen TYPE = HEAP



Tabelle umbenennen
Mit ALTER TABLE kann man - wie mit der Anweisung RENAME TABLE auch - Tabellen umbenennen.

Allgemeine Form:
ALTER TABLE tabelleAlt RENAME AS tabelleNeu

Beispiel:
ALTER TABLE adressen RENAME AS adressbuch



Felder in einer Tabelle umbenennen
Allgemeine Form:
ALTER TABLE tabelle CHANGE feldnameAlt feldnameNeu TYPANGABE

Beispiel:
ALTER TABLE adressen CHANGE ort stadt VARCHAR(32) DEFAULT ""

Die Angabe des DEFAULT-Wertes ist optional. Die Angabe des Feldtyps dagegen nicht.



Feldtypen ändern
Allgemeine Form:
ALTER TABLE tabelle MODIFY feldname TYPANGABE

Beispiel:
ALTER TABLE adressen MODIFY ort VARCHAR(64) DEFAULT "Berlin"

Die Angabe des DEFAULT-Wertes ist auch hier wieder optional. Der Feldname braucht hier - im Gegensatz zum Umbenennen von Feldern - nur einmal angegeben werden. Das Schlüsselwort MODIFY weist schon darauf hin, dass nur der Typ geändert werden soll.

Man kann auch mehrere Felder gleichzeitig ändern. Dazu listet man einfach alle zu ändernden Felder mit Komma getrennt an das Statement an:
ALTER TABLE adressen
MODIFY ort VARCHAR(64) DEFAULT "Berlin",
strasse VARCHAR(100),
plz VARCHAR(5),
vorname VARCHAR(32) DEFAULT "Klaus"


Eine Änderung des Feldtyps läßt sich auch mit dem folgenden Statement erreichen:
ALTER TABLE adressen CHANGE ort ort VARCHAR(32) DEFAULT ""

Angenommen der Typ des Feldes "ort" war vor der Ausführung des Statements VARCHAR(16) so ist er nach der Ausführung vom Typ VARCHAR(32). Man beachte das doppelte Vorkommen des Feldnamens! (falls der nicht geändert werden soll).



Felder hinzufügen
Allgemeine Form:
ALTER TABLE tabelle ADD feld4 TYPANGABE

Beispiel:
ALTER TABLE adressen ADD telefon INT(8) UNSIGNED DEFAULT "1"

Es können auch mehrere Felder gleichzeitig hinfugefügt werden. Die Felder sowie deren Typen müssen auch hier wieder durch Kommas getrennt hintereinander angegeben werden. Vor jedem Feldnamen muss das Schlüsselwort ADD stehen:

ALTER TABLE adressen
ADD telefon INT(8) UNSIGNED DEFAULT "1",
ADD fax INT(8) UNSIGNED DEFAULT "1"




Felder löschen
Allgemeine Form:
ALTER TABLE tabelle DROP feldname

Beispiel:
ALTER TABLE adressen DROP strasse

Will man mehrere Felder gleichzeitig löschen kommt wieder die altbekannte kommaseparierte Liste zum Zuge. Diesmal mit dem Schlüsselwort DROP vor jedem Feldnamen:

ALTER TABLE lexikonklaus DROP telefon, DROP fax




Anlegen von Indizes
In MySQL gibt es verschiedene Indizies: normaler INDEX, UNIQUE Index, PRIMARY KEY und - neuerdings - FULLTEXT. Alle drei Formen lassen sich mit ALTER TABLE anlegen und löschen.

Allgemeine Form
ALTER TABLE tabelle
ADD INDEXTYP indexName (feld1, feld2, feld3)


Hinter der Angabe des Indextyps folgt der Name des Index sowie die kommaseparierte Liste der Feldnamen, die indiziert werden sollen. Die Liste muss in Klammern gesetzt werden. Die Angabe des Namens ist optional. Wird kein Name angegeben so verwendet MySQL den ersten in der Liste angegebenen Feldnamen.

Beispiele:
ALTER TABLE adressen
ADD INDEX adressenindex (vorname, nachname, strasse)

ALTER TABLE adressen
ADD FULLTEXT volltext (ueberschrift, abstract, textmenge)

ALTER TABLE adressen
ADD UNIQUE ort (ort)

ALTER TABLE adressen
ADD PRIMARY KEY primaerSchluessel (vorname, nachname)




Indizes löschen
Das Löschen von Indizies ist noch sehr viel einfacher als das Anlegen:

Allgemeine Form
ALTER TABLE tabelle DROP indexName


Beispiel:
ALTER TABLE adressen DROP adressenindex


Man kann auch gleichzeitig einen Index löschen und wieder anlegen:

ALTER TABLE adressen
DROP adressenindex,
ADD INDEX adressenindex (vorname, nachname, strasse)
 
Letzte Änderung: 17. Mai 2002, 22:26 Uhr


© 2002, Klaus Becker, becker-k@web.de