zoukankan      html  css  js  c++  java
  • MySQL基础入门学习【5】修改数据表

    1.回顾--约束的分类:

    列级约束: 对一个数据列建立的约束;既可以在列定义时声明,也可以在列定以后声明

    表级约束: 对多个数据列建立的约束;只能在列定义后声明 

    按照功能可将约束分为: 非空约束、主键约束、唯一约束、外键约束、默认约束;

    其中,按照参照操作数目的多少来划分,非空约束和默认约束不存在表级约束,剩余三种既可以存在表级约束也可以存在列级约束)

    2. 修改数据表:

    (1) 添加单列:ALTER TABLE tbl_name ADD [COLUMN] col_name column_definition [FIRST | AFTER col_name] ; first: 插入列在第一列, after * :插入列置于指定列的后方, 省略: 插入列位于所有列的最下面

    (2) 添加多列: 不能指定位置关系,只能在原来数据表列的下方。ALTER TABLE tbl_name ADD [COLUMN] (col_name column_definition,...)

    (3)删除列: ALTER TABLE tbl_name DROP [COLUMN] col_name

    (4) 添加、删除约束

    a)添加主键约束(只能有一个): ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,...)

                               索引类型包括哈希索引和b-tree索引,默认为b-tree索引

    (b) 添加唯一约束(可以有多个): ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] UNIQUE [INDEX | KEY] [index_name] [index_type]  (index_col_name,...)

    (c) 添加外键约束: ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] FOREIGN KEY [index_name] (index_col_name,...) reference_definition

    (d) 添加或删除默认约束: ALTER TABLE tbl_name ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}

    (e) 删除主键约束: ALTER TABLE tbl_name DROP PRIMARY KEY

    (f) 删除唯一约束: ALTER TABLE tbl_name DROP {INDEX | KEY} index_name

    删除的是约束,而并非字段

    (g) 删除外键约束: ALTER TABLE tbl_name DROP FOREIGN KEY fk_symbol

    (删除FOREIGN KEY; 删除索引INDEX) 

    (5) 修改列定义:(数据列的名字不存在问题,但是数据列的类型可能存在问题时,也有可能位置上有问题)

    ALTER TABLE tbl_name MODIFY [COLUMN] col_name column_definition [FIRST | AFTER col_name]

    !!!由大类型修改到小类型有可能造成数据的丢失!!! 例如将SMALLINT UNSIGNED(0~65535) 改成TINYINT UNSIGNED(0~255)

    (6) 修改列名称:CHANGE除了可以修改列定义还可以修改列名称

    ALTER TABLE tbl_name CHANGE [COLUMN] old_col_name new_col_name column_definition [FIRST | AFTER col_name)

    (7) 修改数据表:

    (a)数据表更名: 

    方法一: ALTER TABLE tbl_name RENAME [TO | AS] new_tbl_name

    方法二: RENAME TABLE tbl_name TO new_tbl_name 

                 [, tbl_name2 TO new_tbl_name2]...   (可以为多张数据表更名)

    尽量少使用数据列的更名以及数据表的更名: 以后创建了索引或曾经使用过视图或存储过程、表名或列名被引用的情况下,表名列名被修改了可能导致某些视图或存储过程无法正常工作。

     [参考链接]   https://www.imooc.com/learn/122 

                   

  • 相关阅读:
    Dreamweaver采用utf8制作页面,到.net显示乱码问题解决
    看不完的风景,走不完的路
    整个世界都在返利
    Google 地图小工具:让别人找到你
    开心网
    提取国家地理图片总结
    [脚本收集]:在线词典
    提取国家地理图片总结之二
    [脚本收集]提取国家地理图片
    若我离去,后会无期
  • 原文地址:https://www.cnblogs.com/jade-91/p/8678037.html
Copyright © 2011-2022 走看看