MySQL学习入门教程:ALTER TABLE语句更改现有表结构

2018-11-3009:00:40数据库教程Comments2,950 views字数 1724阅读模式

了解并使用MySQL ALTER TABLE语句来更改现有表结构(如添加或删除列,更改列属性等)。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/8409.html

MySQL ALTER TABLE语句简介

可以使用ALTER TABLE语句来更改现有表的结构。 ALTER TABLE语句可用来添加列,删除列,更改列的数据类型,添加主键,重命名表等等。 以下说明了ALTER TABLE语句语法:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/8409.html

ALTER TABLE table_name action1[,action2,]
SQL

要更改现有表的结构:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/8409.html

  • 首先,在ALTER TABLE子句之后指定要更改的表名称。
  • 其次,列出一组要应用于该表的操作。操作可以是添加新列,添加主键,重命名表等任何操作。ALTER TABLE语句允许在单个ALTER TABLE语句中应用多个操作,每个操作由逗号()分隔。

让我们创建一个用于练习ALTER TABLE语句的新表。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/8409.html

我们将在示例数据库(yiibaidb)中创建一个名为tasks的新表。 以下是创建tasks表的脚本。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/8409.html

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)
);
SQL

使用MySQL ALTER TABLE语句更改列

使用MySQL ALTER TABLE语句来设置列的自动递增属性文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/8409.html

假设您希望在任务表中插入新行时,task_id列的值会自动增加1。那么可以使用ALTER TABLE语句将task_id列的属性设置为AUTO_INCREMENT,如下所示:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/8409.html

ALTER TABLE tasks
CHANGE COLUMN task_id task_id INT(11) NOT NULL AUTO_INCREMENT;
SQL

可以通过在tasks表中插入一些行数据来验证更改。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/8409.html

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');
SQL

您可以查询数据以查看每次插入新行时task_id列的值是否增加1文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/8409.html

SELECT 
    task_id, description
FROM
    tasks;
SQL

使用MySQL ALTER TABLE语句将新的列添加到表中文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/8409.html

由于新的业务需求,需要添加一个名为complete的新列,以便在任务表中存储每个任务的完成百分比。 在这种情况下,您可以使用ALTER TABLE将新列添加到tasks表中,如下所示:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/8409.html

ALTER TABLE tasks 
ADD COLUMN complete DECIMAL(2,1) NULL
AFTER description;
SQL

使用MySQL ALTER TABLE从表中删除列文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/8409.html

假设您不想将任务的描述存储在tasks表中了,并且必须将其删除。 以下语句允许您删除tasks表的description列:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/8409.html

ALTER TABLE tasks
DROP COLUMN description;
SQL

使用MySQL ALTER TABLE语句重命名表

可以使用ALTER TABLE语句重命名表。请注意,在重命名表之前,应该认真考虑以了解更改是否影响数据库和应用程序层,不要因为重命名表之后,应用程序因未找到数据库表而出错。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/8409.html

以下语句将tasks表重命名为work_items表:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/8409.html

ALTER TABLE tasks
RENAME TO work_items;
SQL

在本教程中,您学习了如何使用MySQL ALTER TABLE语句来更改现有的表结构并重命名表。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/8409.html

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/sjk/8409.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定