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。