Code前端首页关于Code前端联系我们

MySQL 更改数据表的基本语法(ALTER TABLE 语句)

terry 2年前 (2023-09-26) 阅读数 45 #数据库

在 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前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门