MySQL ALTER TABLE语句
时间:2019-02-04 12:52:27 来源:igfitidea点击:
MySQL ALTER TABLE语句用于添加,修改或删除/删除表中的列。MySQL ALTER TABLE语句也用于重命名表。
在数据表中添加字段
语法
在MySQL中的表中添加列(字段)的语法(使用ALTER TABLE语句)为:
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表中添加列:
ALTER TABLE contacts ADD last_name varchar(40) NOT NULL AFTER contact_id;
在contacts表中添加一个名为last_name的列。它将创建为NOT NULL列,并将放在在表中的contact_id字段之后。
在数据表中添加多列
语法
在MySQL的表中添加多个列的语法(使用ALTER TABLE语句)为:
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表中添加多个列。
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语句)为:
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表中的字段。
ALTER TABLE contacts MODIFY last_name varchar(50) NULL;
将把名为last_name的列修改为varchar(50)的数据类型,并设置该列允许使用NULL值。
修改表中的多列
语法
修改MySQL表中多个列的语法(使用ALTER TABLE语句)为:
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表中的多个列。
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语句删除表中的列的语法为:
ALTER TABLE table_name DROP COLUMN column_name;
参数 | 说明 |
---|---|
table_name | 要修改的表的名称。 |
column_name | 要从表中删除的列的名称。 |
示例
ALTER TABLE contacts DROP COLUMN contact_type;
将从contacts表中删除名为contact_type的列。
重命名表中的列
语法
使用ALTER TABLE语句重命名MySQL中表中的列的语法为:
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 | 可选的。用于更改列的位置。 |
示例
ALTER TABLE contacts CHANGE COLUMN contact_type ctype varchar(20) NOT NULL;
将名为contact_type的列重命名为ctype。该列将被定义为varchar(20)NOT NULL列。
重命名表
语法
在MySQL中重命名表的语法为:
ALTER TABLE table_name RENAME TO new_table_name;
参数 | 说明 |
---|---|
table_name | 要重命名的表。 |
new_table_name | 要使用的新表名。 |
示例
ALTER TABLE contacts RENAME TO people;
将把contacts重命名为people。