Wenn wir den Namen der Datentabelle oder die Felder der Datentabelle ändern müssen, müssen wir den Befehl MySQL ALTER verwenden.
Bevor wir mit diesem Tutorial beginnen, erstellen wir zunächst eine Tabelle mit dem Namen: testalter_tbl.
root@host# mysql -u root -p password; Enter password:******* mysql> use TUTORIALS; Database changed mysql> create table testalter_tbl -> ( -> i INT, -> c CHAR(1) -> ); Query OK, 0 rows affected (0.05 sec) mysql> SHOW COLUMNS FROM testalter_tbl; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | i | int(11) | YES | | NULL | | | c | char(1) | YES | | NULL | | +-------+---------+------+-----+---------+-------+ 2 rows in set (0.00 sec)
Tabellenfelder löschen, hinzufügen oder ändern
Der folgende Befehl verwendet den ALTER-Befehl und die DROP-Klausel, um das i-Feld der oben erstellten Tabelle zu löschen:
mysql> ALTER TABLE testalter_tbl DROP i;
Wenn nur noch ein Feld in der Datentabelle übrig ist, kann DROP nicht zum Löschen des Feldes verwendet werden.
Die ADD-Klausel wird in MySQL verwendet, um Spalten zur Datentabelle hinzuzufügen. Das folgende Beispiel fügt das i-Feld in der Tabelle testalter_tbl hinzu und definiert den Datentyp:
mysql> ALTER TABLE testalter_tbl ADD i INT;
Nach Ausführung des obigen Befehls wird das i-Feld automatisch am Ende des Datentabellenfelds hinzugefügt.
mysql> SHOW COLUMNS FROM testalter_tbl; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | c | char(1) | YES | | NULL | | | i | int(11) | YES | | NULL | | +-------+---------+------+-----+---------+-------+ 2 rows in set (0.00 sec)
Wenn Sie den Speicherort des neuen Felds angeben müssen, können Sie die von MySQL bereitgestellten Schlüsselwörter FIRST (in der ersten Spalte festgelegt) und AFTER Feldname (nach einem bestimmten Feld festgelegt) verwenden.
Versuchen Sie nach erfolgreicher Ausführung die folgende ALTER TABLE-Anweisung, um die Änderungen in der Tabellenstruktur anzuzeigen:
ALTER TABLE testalter_tbl DROP i; ALTER TABLE testalter_tbl ADD i INT FIRST; ALTER TABLE testalter_tbl DROP i; ALTER TABLE testalter_tbl ADD i INT AFTER c;
Die Schlüsselwörter FIRST und AFTER werden nur in der ADD-Klausel verwendet Wenn Sie also die Position eines Datentabellenfelds zurücksetzen möchten, müssen Sie zuerst DROP verwenden, um das Feld zu löschen, und dann ADD verwenden, um das Feld hinzuzufügen und die Position festzulegen.
Ändern Sie den Feldtyp und den Namen
Wenn Sie den Feldtyp und den Namen ändern müssen, können Sie die MODIFY- oder CHANGE-Klausel im ALTER-Befehl verwenden.
Um beispielsweise den Typ des Felds c von CHAR(1) in CHAR(10) zu ändern, können Sie den folgenden Befehl ausführen:
mysql> ALTER TABLE testalter_tbl MODIFY c CHAR(10);
Verwenden Sie die CHANGE-Klausel, die Syntax ist ganz anders. Folgen Sie nach dem Schlüsselwort CHANGE dem Namen des Felds, das Sie ändern möchten, und geben Sie dann den Typ und Namen des neuen Felds an. Versuchen Sie das folgende Beispiel:
mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT; mysql> ALTER TABLE testalter_tbl CHANGE j j INT;
Die Auswirkung von ALTER TABLE auf Nullwerte und Standardwerte
Wenn Sie ein Feld ändern, können Sie angeben, ob nur oder ob es einbezogen werden soll um einen Standardwert festzulegen.
Im folgenden Beispiel ist das angegebene Feld j NICHT NULL und der Standardwert ist 100.
mysql> ALTER TABLE testalter_tbl -> MODIFY j BIGINT NOT NULL DEFAULT 100;
Wenn Sie keinen Standardwert festlegen, setzt MySQL das Feld standardmäßig automatisch auf NULL.
Ändern Sie den Standardwert eines Felds
Sie können ALTER verwenden, um den Standardwert eines Felds zu ändern:
mysql> ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000; mysql> SHOW COLUMNS FROM testalter_tbl; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | c | char(1) | YES | | NULL | | | i | int(11) | YES | | 1000 | | +-------+---------+------+-----+---------+-------+ 2 rows in set (0.00 sec)
Sie können auch verwenden den ALTER-Befehl und die DROP-Klausel. Um den Standardwert eines Feldes zu löschen, wie im folgenden Beispiel gezeigt:
mysql> ALTER TABLE testalter_tbl ALTER i DROP DEFAULT; mysql> SHOW COLUMNS FROM testalter_tbl; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | c | char(1) | YES | | NULL | | | i | int(11) | YES | | NULL | | +-------+---------+------+-----+---------+-------+ 2 rows in set (0.00 sec) Changing a Table Type:
Um den Datentabellentyp zu ändern, können Sie den ALTER-Befehl und die TYPE-Klausel verwenden. Versuchen Sie das folgende Beispiel: Wir ändern den Typ der Tabelle testalter_tbl in MYISAM:
Hinweis: Sie können die SHOW TABLE STATUS-Anweisung verwenden, um den Datentabellentyp anzuzeigen.
mysql> ALTER TABLE testalter_tbl TYPE = MYISAM;mysql> SHOW TABLE STATUS LIKE 'testalter_tbl'\G*************************** 1. row **************** Name: testalter_tbl Type: MyISAM Row_format: Fixed Rows: 0 Avg_row_length: 0 Data_length: 0Max_data_length: 25769803775 Index_length: 1024 Data_free: 0 Auto_increment: NULL Create_time: 2007-06-03 08:04:36 Update_time: 2007-06-03 08:04:36 Check_time: NULL Create_options: Comment:1 row in set (0.00 sec)
Ändern Sie den Tabellennamen
Wenn Sie den Namen der Datentabelle ändern müssen, können Sie dazu die RENAME-Klausel in der ALTER TABLE-Anweisung verwenden.
Versuchen Sie das folgende Beispiel, um die Datentabelle testalter_tbl in alter_tbl umzubenennen:
mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;
Der Befehl ALTER kann auch zum Erstellen und Löschen des Index der MySQL-Daten verwendet werden Diese Funktion werden wir im nächsten Kapitel behandeln.
【Verwandte Empfehlungen】
1. Besondere Empfehlung: Version „php Programmer Toolbox“ V0.1 herunterladen
2. Kostenloses MySQL-Online-Video-Tutorial
3. Diese Dinge über Datenbankdesign
Das obige ist der detaillierte Inhalt vonTeilen Sie ein Beispiel für den MySQL-Befehl ALTER. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!