Heim  >  Artikel  >  Datenbank  >  Welche Anweisung verwendet MySQL, um die Tabellenstruktur zu ändern?

Welche Anweisung verwendet MySQL, um die Tabellenstruktur zu ändern?

青灯夜游
青灯夜游Original
2021-12-01 16:25:1513818Durchsuche

MySQLs Anweisung zum Ändern der Tabellenstruktur lautet „ALTER TABLE“. Diese Anweisung kann die Struktur der ursprünglichen Tabelle ändern, z. B. das Hinzufügen oder Löschen von Spalten, das Ändern der ursprünglichen Spaltentypen, das Umbenennen von Spalten oder Tabellen usw.; „ALTER TABLE“ 2a59fb221d0bc3b07e1e43cec3d4767d

Welche Anweisung verwendet MySQL, um die Tabellenstruktur zu ändern?

Die Betriebsumgebung dieses Tutorials: Windows7-System, MySQL8-Version, Dell G3-Computer.

Die Anweisung in MySQL zum Ändern der Tabellenstruktur lautet „ALTER TABLE“.

ALTER TABLE Anweisungen können die Struktur der ursprünglichen Tabelle ändern, z. B. das Hinzufügen oder Löschen von Spalten, das Erstellen oder Löschen von Indizes, das Ändern des ursprünglichen Spaltentyps, das Umbenennen von Spalten oder Tabellen usw.

MySQL verwendet die ALTER TABLE-Anweisung, um die Tabelle zu ändern. Zu den häufig verwendeten Vorgängen zum Ändern einer Tabelle gehören das Ändern des Tabellennamens, das Ändern von Felddatentypen oder Feldnamen, das Hinzufügen und Löschen von Feldern, das Ändern der Anordnung von Feldern, das Ändern der Speicher-Engine der Tabelle, das Löschen von Fremdschlüsseleinschränkungen der Tabelle usw.

Das häufig verwendete Syntaxformat lautet wie folgt:

ALTER TABLE <表名> [修改选项]

Das Syntaxformat zum Ändern von Optionen lautet wie folgt:

{ ADD COLUMN <列名> <类型>
| CHANGE COLUMN <旧列名> <新列名> <新列类型>
| ALTER COLUMN <列名> { SET DEFAULT <默认值> | DROP DEFAULT }
| MODIFY COLUMN <列名> <类型>
| DROP COLUMN <列名>
| RENAME TO <新表名>
| CHARACTER SET <字符集名>
| COLLATE <校对规则名> }

Felder hinzufügen

Da sich das Geschäft ändert, müssen Sie möglicherweise neue Felder zu vorhandenen Tabellen hinzufügen , ein vollständiger Die Felder umfassen Feldnamen, Datentypen und Integritätsbeschränkungen. Das Syntaxformat zum Hinzufügen eines Felds lautet wie folgt:

ALTER TABLE <表名> ADD <新字段名> <数据类型> [约束条件] [FIRST|AFTER 已存在的字段名];

Der neue Feldname ist der Name des Felds, das hinzugefügt werden muss. FIRST ist ein optionaler Parameter. Seine Funktion besteht darin, das neu hinzugefügte Feld als erstes Feld festzulegen Die Tabelle; AFTER ist ein optionaler Parameter. Seine Funktion besteht darin, das neu hinzugefügte Feld am Ende des angegebenen vorhandenen Feldnamens hinzuzufügen.

【Beispiel 1】Verwenden Sie ALTER TABLE, um die Struktur der Tabelle tb_emp1 zu ändern und ein int-Typfeld col1 zur ersten Spalte der Tabelle hinzuzufügen. Die Eingabe-SQL-Anweisung und die laufenden Ergebnisse lauten wie folgt.

mysql> ALTER TABLE tb_emp1
    -> ADD COLUMN col1 INT FIRST;
Query OK, 0 rows affected (0.94 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> DESC tb_emp1;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| col1   | int(11)     | YES  |     | NULL    |       |
| id     | int(11)     | YES  |     | NULL    |       |
| name   | varchar(25) | YES  |     | NULL    |       |
| deptId | int(11)     | YES  |     | NULL    |       |
| salary | float       | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

Tipp: „FIRST oder AFTER vorhandener Feldname“ wird verwendet, um die Position des neuen Felds in der Tabelle anzugeben. Wenn diese beiden Parameter in der SQL-Anweisung nicht vorhanden sind, wird das neu hinzugefügte Feld an das Ende gesetzt standardmäßig die Datentabelle.

【Beispiel 2】Verwenden Sie ALTER TABLE, um die Struktur der Tabelle tb_emp1 zu ändern und nach der Namensspalte ein int-Typfeld hinzuzufügen. Die Eingabe-SQL-Anweisung und die laufenden Ergebnisse lauten wie folgt.

mysql> ALTER TABLE tb_emp1
    -> ADD COLUMN col2 INT AFTER name;
Query OK, 0 rows affected (0.50 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> DESC tb_emp1;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| col1   | int(11)     | YES  |     | NULL    |       |
| id     | int(11)     | YES  |     | NULL    |       |
| name   | varchar(25) | YES  |     | NULL    |       |
| col2   | int(11)     | YES  |     | NULL    |       |
| deptId | int(11)     | YES  |     | NULL    |       |
| salary | float        | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
6 rows in set (0.00 sec)

Sie können sehen, dass ein Feld mit dem Namen col2 zur Tabelle tb_emp1 hinzugefügt wurde. Seine Position liegt hinter dem angegebenen Namensfeld. Das Feld wurde erfolgreich hinzugefügt.

Den Datentyp eines Feldes ändern

Das Ändern des Datentyps eines Feldes bedeutet, den Datentyp des Feldes in einen anderen Datentyp umzuwandeln. Die Syntaxregeln zum Ändern von Felddatentypen in MySQL lauten wie folgt:

ALTER TABLE <表名> MODIFY <字段名> <数据类型>

Unter diesen bezieht sich der Tabellenname auf den Namen der Tabelle, in der sich das Feld befindet, dessen Datentyp geändert werden muss, und der Feldname bezieht sich auf das Feld das geändert werden muss, und der Datentyp bezieht sich auf den neuen Datentyp des geänderten Felds.

【Beispiel 3】Verwenden Sie ALTER TABLE, um die Struktur der Tabelle tb_emp1 zu ändern und den Datentyp des Namensfelds von VARCHAR(22) in VARCHAR(30) zu ändern. Die Eingabe-SQL-Anweisung und die laufenden Ergebnisse lauten wie folgt.

mysql> ALTER TABLE tb_emp1
    -> MODIFY name VARCHAR(30);
Query OK, 0 rows affected (0.15 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> DESC tb_emp1;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| col1   | int(11)     | YES  |     | NULL    |       |
| id     | int(11)     | YES  |     | NULL    |       |
| name   | varchar(30) | YES  |     | NULL    |       |
| col2   | int(11)     | YES  |     | NULL    |       |
| deptId | int(11)     | YES  |     | NULL    |       |
| salary | float        | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
6 rows in set (0.00 sec)

Nachdem die Anweisung ausgeführt wurde, wurde festgestellt, dass der Datentyp des Namensfelds in der Tabelle tb_emp1 in VARCHAR (30) geändert wurde, und die Änderung war erfolgreich.

Ein Feld löschen

Das Löschen eines Feldes bedeutet, ein Feld in der Datentabelle aus der Tabelle zu entfernen. Das Syntaxformat lautet wie folgt:

ALTER TABLE <表名> DROP <字段名>;

Dabei bezieht sich der Feldname auf den Namen des Feldes das muss aus der Tabelle gelöscht werden.

【Beispiel 4】Verwenden Sie ALTER TABLE, um die Struktur der Tabelle tb_emp1 zu ändern und das Feld col2 zu löschen. Die Eingabe-SQL-Anweisung und die laufenden Ergebnisse sind wie folgt.

mysql> ALTER TABLE tb_emp1
    -> DROP col2;
Query OK, 0 rows affected (0.53 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> DESC tb_emp1;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| col1   | int(11)     | YES  |     | NULL    |       |
| id     | int(11)     | YES  |     | NULL    |       |
| name   | varchar(30) | YES  |     | NULL    |       |
| deptId | int(11)     | YES  |     | NULL    |       |
| salary | float        | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

Feldnamen ändern

Die Syntaxregeln zum Ändern von Tabellenfeldnamen in MySQL lauten wie folgt:

ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新数据类型>;

Dabei bezieht sich der alte Feldname auf den Feldnamen vor der Änderung; Der geänderte Feldname bezieht sich auf den geänderten Datentyp. Wenn Sie den Datentyp des Felds nicht ändern müssen, können Sie den neuen Datentyp auf den gleichen festlegen, der Datentyp jedoch nicht leer sein.

【Beispiel 5】Verwenden Sie ALTER TABLE, um die Struktur der Tabelle tb_emp1 zu ändern, den Feldnamen col1 in col3 und den Datentyp in CHAR(30) zu ändern. Die Eingabe-SQL-Anweisung und die laufenden Ergebnisse lauten wie folgt.

mysql> ALTER TABLE tb_emp1
    -> CHANGE col1 col3 CHAR(30);
Query OK, 0 rows affected (0.76 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> DESC tb_emp1;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| col3   | char(30)    | YES  |     | NULL    |       |
| id     | int(11)     | YES  |     | NULL    |       |
| name   | varchar(30) | YES  |     | NULL    |       |
| deptId | int(11)     | YES  |     | NULL    |       |
| salary | float        | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
5 rows in set (0.01 sec)

CHANGE kann auch nur den Datentyp ändern, um den gleichen Effekt wie MODIFY zu erzielen. Die Methode besteht darin, den „neuen Feldnamen“ und den „alten Feldnamen“ in der SQL-Anweisung auf denselben Namen zu setzen und nur die „Daten“ zu ändern Typ".

Tipps: Da verschiedene Datentypen auf unterschiedliche Weise und in unterschiedlicher Länge in der Maschine gespeichert werden, kann sich eine Änderung des Datentyps auf die vorhandenen Datensätze in der Datentabelle auswirken. Nehmen Sie daher keine Änderungen vor, wenn die Datentabelle bereits Daten enthält es leicht.

Ändern Sie den Tabellennamen

MySQL verwendet die ALTER TABLE-Anweisung, um den Tabellennamen zu ändern. Die Syntaxregeln lauten wie folgt:

ALTER TABLE <旧表名> RENAME [TO] <新表名>;

Dabei ist TO ein optionaler Parameter und ob er verwendet wird oder nicht hat keinen Einfluss auf das Ergebnis.

【Beispiel 6】Verwenden Sie ALTER TABLE, um die Datentabelle tb_emp1 in tb_emp2 umzubenennen. Die eingegebene SQL-Anweisung und die laufenden Ergebnisse lauten wie folgt.

mysql> ALTER TABLE tb_emp1
    -> RENAME TO tb_emp2;
mysql> SHOW TABLES;
+--------------------+
| Tables_in_test_db  |
+--------------------+
| tb_emp2            |
+--------------------+
1 rows in set (0.00 sec)

提示:用户可以在修改表名称时使用 DESC 命令查看修改后两个表的结构,修改表名并不修改表的结构,因此修改名称后的表和修改名称前的表的结构是相同的。

【相关推荐:mysql视频教程

Das obige ist der detaillierte Inhalt vonWelche Anweisung verwendet MySQL, um die Tabellenstruktur zu ändern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Was ist ein MySQL-Index?Nächster Artikel:Was ist ein MySQL-Index?