MySQL修改表结构
在本教程中,您将了解并使用MySQL ALTER TABLE
语句来更改现有表结构(如添加或删除列,更改列属性等)。
MySQL ALTER TABLE语句简介
可以使用ALTER TABLE
语句来更改现有表的结构。 ALTER TABLE
语句可用来添加列,删除列,更改列的数据类型,添加主键,重命名表等等。 以下说明了ALTER TABLE
语句语法:
ALTER TABLE table_name action1[,action2,…]
要更改现有表的结构:
- 首先,在
ALTER TABLE
子句之后指定要更改的表名称。 - 其次,列出一组要应用于该表的操作。操作可以是添加新列,添加主键,重命名表等任何操作。
ALTER TABLE
语句允许在单个ALTER TABLE
语句中应用多个操作,每个操作由逗号(,
)分隔。
让我们创建一个用于练习ALTER TABLE
语句的新表。
我们将在示例数据库(yiibaidb)中创建一个名为tasks
的新表。 以下是创建tasks
表的脚本。
DROP TABLE IF EXISTS tasks;
CREATE TABLE tasks (
task_id INT NOT NULL,
subject VARCHAR(45) NULL,
start_date DATE NULL,
end_date DATE NULL,
description VARCHAR(200) NULL,
PRIMARY KEY (task_id),
UNIQUE INDEX task_id_unique (task_id ASC)
);
使用MySQL ALTER TABLE语句更改列
使用MySQL ALTER TABLE语句来设置列的自动递增属性
假设您希望在任务表中插入新行时,task_id
列的值会自动增加1
。那么可以使用ALTER TABLE
语句将task_id
列的属性设置为AUTO_INCREMENT
,如下所示:
ALTER TABLE tasks
CHANGE COLUMN task_id task_id INT(11) NOT NULL AUTO_INCREMENT;
可以通过在tasks
表中插入一些行数据来验证更改。
INSERT INTO tasks(subject,
start_date,
end_date,
description)
VALUES('Learn MySQL ALTER TABLE',
Now(),
Now(),
'Practicing MySQL ALTER TABLE statement');
INSERT INTO tasks(subject,
start_date,
end_date,
description)
VALUES('Learn MySQL CREATE TABLE',
Now(),
Now(),
'Practicing MySQL CREATE TABLE statement');
您可以查询数据以查看每次插入新行时task_id
列的值是否增加1
:
SELECT
task_id, description
FROM
tasks;
使用MySQL ALTER TABLE语句将新的列添加到表中
由于新的业务需求,需要添加一个名为complete
的新列,以便在任务表中存储每个任务的完成百分比。 在这种情况下,您可以使用ALTER TABLE
将新列添加到tasks
表中,如下所示:
ALTER TABLE tasks
ADD COLUMN complete DECIMAL(2,1) NULL
AFTER description;
使用MySQL ALTER TABLE从表中删除列
假设您不想将任务的描述存储在tasks
表中了,并且必须将其删除。 以下语句允许您删除tasks
表的description
列:
ALTER TABLE tasks
DROP COLUMN description;
使用MySQL ALTER TABLE语句重命名表
可以使用ALTER TABLE
语句重命名表。请注意,在重命名表之前,应该认真考虑以了解更改是否影响数据库和应用程序层,不要因为重命名表之后,应用程序因未找到数据库表而出错。
以下语句将tasks
表重命名为work_items
表:
ALTER TABLE tasks
RENAME TO work_items;
在本教程中,您学习了如何使用MySQL ALTER TABLE
语句来更改现有的表结构并重命名表。
相关文章
- mysql:Windows修改MySQL数据库密码(修改或忘记密码)
- mysql 如何修改用户密码_MySQL如何更改用户密码
- MySQL字符集配置指南:正确修改字符集与编码(mysql字符集修改)
- 轻松改变MySQL列类型(mysql修改列类型)
- MySQL多表修改技巧:解决更高效率问题(mysql多表修改)
- MySQL体系架构:完美融合高性能与可扩展性(mysql体系架构)
- MySQL中实现整数除法运算(mysql整除)
- MySQL修改表属性的技巧(mysql修改表的属性)
- 修改MySQL数据库表:一步一步指南(mysql修改数据库表)
- 命令行修改MySQL编码:快速方便!(命令行修改mysql编码)
- MySQL字符编码:修改方法及注意事项(mysql字符编码修改)
- 如何修改MySQL的端口号?(如何修改mysql的端口)
- 结构MySQL数据库中新闻表结构介绍(mysql新闻表)
- MySQL分页查询:统计总数(mysql分页总数)
- 从结构使用MySQL数据库实现主主复制的最佳实践(mysql数据库主主)
- MySQL: 修改记录实践指引(mysql修改信息)
- 结构掌握MySQL库模式结构的秘籍(mysql的库模式)
- 优化查询性能:MySQL索引选用技巧(mysql如何选择索引)
- MySQL触发器:用注释进行更准确的操作(mysql 触发器 注释)
- MySQL 如何实现不使用事务处理(mysql不使用事务)
- MySQL中如何修改列类型(mysql中修改列的类型)
- MySQL主键长度限制及最佳实践(mysql中主键的长度)
- 使用CMD命令行修改MySQL密码(cmd更换mysql密码)
- MySQL中单引号的转义技巧(mysql中单引号的转义)
- MySQL 数据库实现两个字段拼接的方法(mysql 两字段拼接)
- MySQL修改表结构操作命令总结