MySQL 修改表
MySQL ALTER语句用于修改表名或表字段的名称。它还用于在表中添加或删除现有列。
根据情况,ALTER语句始终与“ADD”、“DROP”和“MODIFY”命令一起使用。
1) 在表中添加列
语法:
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在表中的哪个位置创建该列。如果未指定此参数,新列将添加到表的末尾。
示例:
在此示例中,我们在现有表”cus_tbl”中添加一个名为”cus_age”的新列。
使用以下查询来实现:
ALTER TABLE cus_tbl
ADD cus_age varchar(40) NOT NULL;
输出:
查看最近添加的列:
SELECT* FROM cus_tbl;
输出:
2) 在表中添加多个列
语法:
ALTER TABLE 表名
ADD 新列名 列定义
[ FIRST | AFTER 列名 ],
ADD 新列名 列定义
[ FIRST | AFTER 列名 ],
...
;
示例:
在这个示例中,我们在现有的表 “cus_tbl” 中添加了两个新列 “cus_address” 和 “cus_salary”。cus_address 在 cus_surname 列之后添加,cus_salary 在 cus_age 列之后添加。
使用以下查询来完成:
ALTER TABLE cus_tbl
ADD cus_address varchar(100) NOT NULL
AFTER cus_surname,
ADD cus_salary int(100) NOT NULL
AFTER cus_age ;
查看最近添加的列:
SELECT* FROM cus_tbl;
3) 修改表中的列
MODIFY命令用于更改表的列定义。
语法:
ALTER TABLE 表名
MODIFY 列名 列定义
[ FIRST | AFTER 列名 ];
示例:
在这个示例中,我们将列 cus_surname 修改为 varchar(50) 数据类型,并强制该列允许 NULL 值。
使用以下查询来完成:
ALTER TABLE cus_tbl
MODIFY cus_surname varchar(50) NULL;
查看表结构:
4) 删除表中的列
语法:
ALTER TABLE 表名
DROP COLUMN 列名;
让我们举一个例子,从表 “cus_tbl” 中删除列 “cus_address”。
使用以下查询来完成:
ALTER TABLE cus_tbl
DROP COLUMN cus_address;
输出:
查看表结构:
5) 在表中重命名列
语法:
ALTER TABLE 表名
CHANGE COLUMN 旧列名 新列名
列定义
[ FIRST | AFTER 列名 ]
示例:
在这个示例中,我们将列名 “cus_surname” 更改为 “cus_title”。
使用以下查询来完成:
ALTER TABLE cus_tbl
CHANGE COLUMN cus_surname cus_title
varchar(20) NOT NULL;
输出:
6) 重命名表
语法:
ALTER TABLE 表名
RENAME TO 新表名;
示例:
在这个示例中,表名 cus_tbl 被重命名为 cus_table。
ALTER TABLE cus_tbl
RENAME TO cus_table;
输出:
查看重命名后的表: