MySQL 更改数据表的基本语法(ALTER TABLE 语句)
在 MySQL 中可以使用 ALTER TABLE 语句来更改原表的结构,例如添加或删除列、创建或取消、并改变原来的表结构。列类型、重命名列或表等。
基本语法
改表是指更改数据库中现有数据表的结构。 MySQL 使用 ALTER TABLE 语句来更改表。修改表的常用操作包括更改表名称、更改字段数据类型或字段名称、添加和删除字段、更改字段的排列方式、更改表的存储引擎、删除表中的外键约束等。
常用的语法格式如下:
MODIFY TABLE [修改选项]
修改设置的语法格式如下:名称
| CHANGE COLUMN
| ALTER COLUMN { SET DEFAULT |跌落标准}
| ALTER COLUMN
| DROP COLUMN
| RENAME }
添加字段
随着业务的变化,您可能需要在现有表中添加新的字段,一个完整的字段包括字段名称、数据类型和完整性约束。添加字段的语法格式如下:
ALTER TABLE ADD [约束] [FIRST|AFTER 现有字段名];
newfieldname是要添加的字段名称; FIRST是可选参数,其作用是将新添加的字段设置为表中的第一个字段; AFTER是可选参数,作用是将新添加的字段添加到指定的现有字段名称的末尾。
【示例1】使用ALTER TABLE更改表tb_emp1的结构,在表的第一列添加一个int类型字段col1。 SQL输入和运行结果如下。
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)提示:“FIRST 或 AFTER 现有字段名称”用于指定新字段在表中的位置。如果SQL语句中没有这两个参数,则新添加的字段将默认位于数据表的末尾。列表。
【示例2】使用ALTER TABLE更改表tb_emp1的结构,在name列后面添加一个int类型字段col2。 SQL输入和运行结果如下。
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)可以看到表tb_emp1中添加了一个名为col2的字段。它的位置在指定的名称字段之后。该字段已添加。
编辑字段数据类型
更改字段的数据类型是将字段的数据类型转换为另一种数据类型。 MySQL 中更改字段数据类型的语法规则如下:
ALTER TABLE <表名> MODIFY <字段名> <数据类型>
其中,tablename 指需要更改数据类型的字段所在表的名称, fieldname 指要更改的字段。 , 数据类型指的是更改字段中的新数据类型。
【示例3】使用ALTER TABLE更改表tb_emp1的结构,并将name字段的数据类型从VARCHAR(22)更改为VARCHAR(30)。 SQL输入和运行结果如下。执行
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)语句后,发现表tb_emp1中name字段的数据类型已更改为VARCHAR(30),更改成功。
删除字段
删除字段就是从表中删除数据表中的字段。语法如下:
ALTER TABLE DROP ;
其中,FieldName指的是要从表中删除的字段名称。
【示例4】使用ALTER TABLE更改表tb_emp1的结构并删除字段col2。 SQL输入和运行结果如下。
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)编辑字段名称
MySQL中更改表字段名称的语法规则如下:
ALTER TABLE ALTER ;
其中,oldfieldname指更改前的字段名称; 新字段名称指更改后的字段名称; 新数据类型如果不需要更改字段的数据类型,则指更改后的数据类型。您可以将新数据类型设置为与原始数据类型相同,但数据类型不能为空。
【示例5】使用ALTER TABLE更改表tb_emp1的结构,将col1字段名称更改为col3,并将数据类型更改为CHAR(30)。 SQL输入和运行结果如下。
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也可以只改变数据类型来达到与MODIFY相同的效果。方法是将SQL语句中的“新字段名”和“旧字段名”设置为相同的名称,只改变“数据类型”。
提示:由于不同类型的数据在机器中的存储方式和长度不同,因此更改数据类型会影响数据表中现有的数据记录。因此,当数据表中已有数据时,不要轻易更改。更改数据类型。
编辑表名
MySQL 使用 ALTER TABLE 语句来更改表名。语法规则如下:
ALTER TABLE RENAME [TO] ;
其中,TO是可选参数,是否使用不会影响结果。
【示例6】使用ALTER TABLE将数据表tb_emp1重命名为tb_emp2。 SQL输入和运行结果如下。
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命令查看更改后的两个表的结构。更改表名不会改变表的结构,因此更改名称后的表结构与更改名称前的表结构相同。的。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网

