zoukankan      html  css  js  c++  java
  • MySQL修改表结构

    在本教程中,您将了解并使用MySQL ALTER TABLE语句来更改现有表结构(如添加或删除列,更改列属性等)。

    MySQL ALTER TABLE语句简介

    可以使用ALTER TABLE语句来更改现有表的结构。 ALTER TABLE语句可用来添加列删除列,更改列的数据类型添加主键重命名表等等。 以下说明了ALTER TABLE语句语法:

    ALTER TABLE table_name action1[,action2,…]
    
    SQL

    要更改现有表的结构:

    • 首先,在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)
    );
    
    SQL

    使用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;
    
    SQL

    可以通过在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');
    
    SQL

    您可以查询数据以查看每次插入新行时task_id列的值是否增加1

    SELECT 
        task_id, description
    FROM
        tasks;
    
    SQL

    使用MySQL ALTER TABLE语句将新的列添加到表中

    由于新的业务需求,需要添加一个名为complete的新列,以便在任务表中存储每个任务的完成百分比。 在这种情况下,您可以使用ALTER TABLE将新列添加到tasks表中,如下所示:

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

    使用MySQL ALTER TABLE从表中删除列

    假设您不想将任务的描述存储在tasks表中了,并且必须将其删除。 以下语句允许您删除tasks表的description列:

    ALTER TABLE tasks
    DROP COLUMN description;
    
    SQL

    使用MySQL ALTER TABLE语句重命名表

    可以使用ALTER TABLE语句重命名表。请注意,在重命名表之前,应该认真考虑以了解更改是否影响数据库和应用程序层,不要因为重命名表之后,应用程序因未找到数据库表而出错。

    以下语句将tasks表重命名为work_items表:

    ALTER TABLE tasks
    RENAME TO work_items;
    
    SQL

    在本教程中,您学习了如何使用MySQL ALTER TABLE语句来更改现有的表结构并重命名表。



  • 相关阅读:
    MVC 下载相关
    中缀、前缀和后缀表达式
    什么是堆栈?
    为什么和其他语言相比C语言是快速的语言
    什么是回溯法?
    产生n bit所有可能的序列
    讨论汉诺塔之谜
    递归和内存分配(可视化)
    关于递归
    随机数产生函数的范围转换
  • 原文地址:https://www.cnblogs.com/borter/p/12452693.html
Copyright © 2011-2022 走看看