• 修改表


    修改表是指修改数据库中已存在的表的定义。比重新定义表简单,不需要重新加载数据,也不会影响正在进行的服务。MySQL 中通过ALTER  TABLE语句来修改表。修改表包括修改表名、修改字段数据类型、修改字段名、增加字段、删除字段、修改字段的排列位置、更改默认存储引擎和删除表的外键约束等。

    先查看example0表,之后的操作都针对这张表,我们可以观察其中变化。

    mysql> DESC example0;

     

    也可以使用语句: mysql> SHOW CREATE TABLE example0 G

    1、修改表名

    表名可以在一个数据库中唯一的确定一张表。数据库系统通过表名来区分不同的表。

    语法形式:  ALTER  TABLE  旧表名  RENAME  [TO]  新表名;

    mysql> ALTER TABLE example0 RENAME user;  example0表改名为user

    2、修改字段的数据类型

    字段的数据类型包括整数型、浮点数型、字符串型、二进制类型、日期和时间类型等。数据类型决定了数据的存储格式、约束条件和有效范围。

    基本语法: ALTER TABLE  表名  MODIFY  属性名  数据类型;

    其中,表名 参数指所要修改的表的名称;属性名  参数指需要修改的字段的名称; 数据类型 参数指修改后的新数据类型。

    mysql> ALTER TABLE user MODIFY name VARCHAR(30); user表中name字段的数据类型变为VARCHAR(30)

    3、修改字段名

    字段名可以在一张表中唯一的确定一个字段。数据库系统通过字段名来区分表中的不同字段。

    基本语法: ALTER  TABLE  表名  CHANGE  旧属性名  新属性名  新数据类型;

    其中,旧属性名 参数指修改前的字段名;新属性名 参数指修改后的字段名;新数据类型 参数修改后的数据类型,如不需要修改,则将新数据类型设置与原来一样

    mysql> ALTER TABLE user CHANGE id stu_id INT(2); user表中id字段名改为stu_id,数据类型改为INT(2)

    如果只修改字段的数据类型,可以把旧属性名和新属性名都写成旧属性名。

    4、增加字段

    在创建表时,表中的字段就已经定义完成。如果增加新的字段,可以通过 ALTER TABLE 语句进行增加。

    基本语法: ALTER  TABLE  表名  ADD  属性名1  数据类型  [完整性约束条件]  [FIRST  |  AFTER  属性名2];

    其中, 属性名1  参数是指需要增加的字段的名称; 数据类型  参数指新增加字段的数据类型; 完整性约束条件  是可选参数,用来设置新增字段的完整性约束条件; FIRST  可选参数,作用是将新增字段设置为表的第一个字段; ALTER 属性名2  参数也是可选参数,作用是将新增字段添加到  属性名2  所指的字段后。如果没有 FIRST AFTER 属性名2  参数指定新增字段的位置,新增字段默认为表的最后一个字段。

    mysql> ALTER TABLE user ADD num INT(8) PRIMARY KEY FIRST; user表的第一个位置增加字段

    mysql> ALTER TABLE user ADD address VARCHAR(30) NOT NULL AFTER num;   user表的num字段后增加address字段

    对于一个表而言,其中字段排列顺序对表不会有什么影响。但对于创建人来说,将某种直接或间接关系的字段放一块,更好理解。

    5、删除字段

    删除字段是指删除已经定义好的表中的某个字段。

    基本语法:  ALTER  TABLE  表名  DROP  属性名; 其中,属性名  参数指需要从表中删除的字段的名称。

    mysql> ALTER TABLE user ADD phone VARCHAR(20) NOT NULL; user表中增加一个字段,默认为表的最后一个字段。

    mysql> ALTER TABLE user DROP phone; user表中删除字段phone

    6、修改字段的排列位置

    创建表的时候,字段在表中的排列位置就已经确定,如果要改变字段在表的排列位置,使用 ALTER  TABLE  语句来处理。

    基本语法: ALTER  TABLE  表名  MODIFY  属性名1  数据类型  FIRST | AFTER 属性名2;

    其中,属性名1  参数指需要修改位置的字段的名称; 数据类型  参数指  属性名1 的数据类型;FIRST  参数指定位置为表的第一个位置; AFTER 属性名2  参数指定  属性名1  插入在  属性名2  之后。

    mysql> ALTER TABLE user MODIFY name VARCHAR(30) FIRST; user表中将字段user修改到第一个位置

    mysql> ALTER TABLE user MODIFY sex TINYINT(1) AFTER name; user表中将字段sex修改到name字段后面

    7、更改表的存储引擎

    MySQL存储引擎是指MySQL数据库中表的存储类型。MySQL存储引擎包括InnoDBMyISAMMEMORY等。不同的表类型有着不同的优缺点。在创建表时,存储引擎就已经设定好了,使用ALTER  TABLE 语句可以更改表的存储引擎的类型。

    基本语法:  ALTER  TABLE  表名  ENGINE=存储引擎名; 其中,存储引擎名  参数指设置新的存储引擎的名称。

    mysql> ALTER TABLE user ENGINE=MyISAM; user表存储引擎改为MyISAM

     注意:使用ALTER语句可以改变表的存储引擎,避免重新创建表,但如果表中数据很多,改变存储引擎可能会造成一些意料之外的影响,如果一个表中已经存在很多数据,最好不要轻易更改其存储引擎。

    8、删除表的外键约束

    外键是一个特殊的字段,其将某一表与其父表建立关联关系。在创建表的时候,外键约束就已经设定好了。由于特殊需要,与父表之间的关联关系需要去除时,要求删除外键约束,使用 ALTER TABLE 语句删除表的外键约束。

    基本语法: ALTER  TABLE  表名  DROP  FOREIGN  KEY  外键别名; 其中,外键别名  参数指创建表时设置的外键的代号

    mysql> SHOW CREATE TABLE example3 G 查看example3表详细结构

    *************************** 1. row ***************************

           Table: example3

    Create Table: CREATE TABLE `example3` (

      `id` int(11) NOT NULL,

      `stu_id` int(11) DEFAULT NULL,

      `course_id` int(11) DEFAULT NULL,

      PRIMARY KEY (`id`),

      KEY `c_fk` (`stu_id`,`course_id`),

      CONSTRAINT `c_fk` FOREIGN KEY (`stu_id`, `course_id`) REFERENCES `example2` (`stu_id`, `course_id`)

    ) ENGINE=InnoDB DEFAULT CHARSET=utf8

    1 row in set (0.00 sec)

    从查询结果中可以看出,example3表的外键别名为 c_fk

    mysql> ALTER TABLE example3 DROP FOREIGN KEY c_fk; 删除example3表的外键(FOREIGN KEY)约束

  • 相关阅读:
    精通javascript、javascript语言精粹读书笔记
    javascript语言精粹。3、对象;4、函数;深入原型链,对象的原理!
    权限管理
    javascript碎碎念(面向对象备忘)
    几个JavaScript面试题
    JavaScript类属性的定义方法和区别
    j
    Java调用SQL存储过程 输入输出参数(转)
    Java中文乱码解决
    js中eval详解
  • 原文地址:https://www.cnblogs.com/uphold/p/11221253.html
Copyright © 2020-2023  润新知