MySQL ALTER TABLE语句


MySQL ALTER TABLE语句用于添加,修改或删除/删除表中的列。MySQL ALTER TABLE语句也用于重命名表。

在数据表中添加字段

语法

在MySQL中的表中添加列(字段)的语法(使用ALTER TABLE语句)为:

1
2
3
ALTER TABLE table_name
ADD new_column_name column_definition
[ FIRST | AFTER column_name ];
参数 说明
table_name 要修改的表的名称。
new_column_name 要添加到表中的新列的名称。
column_definition 列的数据类型和定义(NULL或NOT NULL等)。
FIRST | AFTER column_name 可选的。它告诉MySQL在表中的何处创建该列。如果未指定此参数,则默认将新列添加到表的末尾。

示例

使用ALTER TABLE语句在MySQL表中添加列:

1
2
3
ALTER TABLE contacts
ADD last_name varchar(40) NOT NULL
AFTER contact_id;

在contacts表中添加一个名为last_name的列。它将创建为NOT NULL列,并将放在在表中的contact_id字段之后。

在数据表中添加多列

语法

在MySQL的表中添加多个列的语法(使用ALTER TABLE语句)为:

1
2
3
4
5
6
7
ALTER TABLE table_name
ADD new_column_name column_definition
[ FIRST | AFTER column_name ],
ADD new_column_name column_definition
[ FIRST | AFTER column_name ],
...
;
参数 说明
table_name 修改的表的名称。
new_column_name 添加到表中的新列的名称。
column_definition 列的数据类型和定义(NULL或NOT NULL等)。
FIRST | AFTER column_name 可选的。它告诉MySQL在表中的何处创建该列。如果未指定此参数,则新列将被添加到表的末尾。

示例

使用ALTER TABLE语句在MySQL表中添加多个列。

1
2
3
4
5
ALTER TABLE contacts
ADD last_name varchar(40) NOT NULL
AFTER contact_id,
ADD first_name varchar(35) NULL
AFTER last_name;

这个例子将向contacts表添加新的两列-last_name和first_name。

修改表中的列

语法

修改MySQL表中列的语法(使用ALTER TABLE语句)为:

1
2
3
ALTER TABLE table_name
MODIFY column_name column_definition
[ FIRST | AFTER column_name ];
参数 说明
table_name 要修改的表的名称。
column_name 在表中要修改的列的名称。
column_definition 列的修改后的数据类型和定义(NULL或NOT NULL等)。
FIRST | AFTER column_name 可选的。用于更改列的位置。

示例

使用ALTER TABLE语句修改MySQL表中的字段。

1
2
ALTER TABLE contacts
MODIFY last_name varchar(50) NULL;

将把名为last_name的列修改为varchar(50)的数据类型,并设置该列允许使用NULL值。

修改表中的多列

语法

修改MySQL表中多个列的语法(使用ALTER TABLE语句)为:

1
2
3
4
5
6
7
ALTER TABLE table_name
MODIFY column_name column_definition
[ FIRST | AFTER column_name ],
MODIFY column_name column_definition
[ FIRST | AFTER column_name ],
...
;
参数 说明
table_name 要修改的表的名称。
column_name 在表中要修改的列的名称。
column_definition 列的修改后的数据类型和定义(NULL或NOT NULL等)。
FIRST | AFTER column_name 可选的。用于更改列的位置。

示例

使用ALTER TABLE语句修改MySQL表中的多个列。

1
2
3
4
ALTER TABLE contacts
MODIFY last_name varchar(55) NULL
AFTER contact_type,
MODIFY first_name varchar(30) NOT NULL;

这个例子将修改联系人表的两列-last_name和first_name。

删除数据表中的列

语法

在MySQL中,使用ALTER TABLE语句删除表中的列的语法为:

1
2
ALTER TABLE table_name
DROP COLUMN column_name;
参数 说明
table_name 要修改的表的名称。
column_name 要从表中删除的列的名称。

示例

1
2
ALTER TABLE contacts
DROP COLUMN contact_type;

将从contacts表中删除名为contact_type的列。

重命名表中的列

语法

使用ALTER TABLE语句重命名MySQL中表中的列的语法为:

1
2
3
4
ALTER TABLE table_name
CHANGE COLUMN old_name new_name
column_definition
[ FIRST | AFTER column_name ]
参数 说明
table_name 要修改的表的名称。
old_name 要重命名的列。
new_name 列的新名称。
column_definition 列的数据类型和定义(NULL或NOT NULL等)。重命名列时,即使它没有更改,也必须指定列的定义。
FIRST | AFTER column_name 可选的。用于更改列的位置。

示例

1
2
3
ALTER TABLE contacts
CHANGE COLUMN contact_type ctype
varchar(20) NOT NULL;

将名为contact_type的列重命名为ctype。该列将被定义为varchar(20)NOT NULL列。

重命名表

语法

在MySQL中重命名表的语法为:

1
2
ALTER TABLE table_name
RENAME TO new_table_name;
参数 说明
table_name 要重命名的表。
new_table_name 要使用的新表名。

示例

1
2
ALTER TABLE contacts
RENAME TO people;

将把contacts重命名为people。


原文链接:https://codingdict.com/