首页 > 代码库 > 约束以及修改数据表

约束以及修改数据表

    先创建一个数据表

技术分享

    再创建一张数据表,让其属性pid参照上一个provinces数据表的id

主要代码为:FOREIGN KEY (pid) REFERENCES provinces(id)

技术分享

    查看province以及users的表索引,就可以看到两个约束,一个是主键id另一个就是pid

技术分享

技术分享

    接下来了解外键约束的参照操作

  1. CASCAD:从父表删除或更新且自动删除或更新子表中匹配的行

  2. SET NULL:从父表删除或更新行,并设置子表中的外键列为NULL。如果使用该选项,必须保证子表列没有指定NOT NULL

  3. RESTRICT:拒绝对父表的删除或更新操作

  4. NO ACTION:标准SQL的关键字,在MySQL中与RESTRICT相同

    

    现在provinces表中插入几个元素

技术分享

    新建一个数据表users1,其pid参见provinces的id且受其CASCADE类型的外键约束

技术分享

    往users1中插入几个元素

技术分享

    可见当创建(‘John‘,7)这个元素时,由于provinces中的id没有7,所以导致创建失败

    

    删除provinces中id=3的元素看对users1有没有影响

    

技术分享

技术分享

    可见users1中pid为3的元素也跟着被删除了


    接下来修改数据表

    先查看users1的列,并给其添加一个age列

主要代码为:ALTER TABLE tablename ADD columnname;

技术分享

    再添加一些列,并通过FIRST 和AFTER代码来指定其位置

技术分享

    查看结果,然后删除列truename

技术分享

    查看结果并同时删除password 和age列

技术分享

    再创建一张表users2

技术分享

    查看users2的列,并将id设为主键,这个操作的名字为PK_users2_id(自己定的)

技术分享

    将username改为唯一标识

技术分享

    查看结果,并将pid的属性参照provinces的id属性

技术分享

    给users2增加age属性

技术分享

    给age设置默认值

技术分享

删除age的默认值

技术分享

    查看结果

技术分享

    取消pid的外键约束

技术分享

    查看结果

技术分享

    删除pid的唯一标识约束,注意只是删除约束,列还是存在的

技术分享

    将id的列设在第一位并查看结果

技术分享

    修改pid的名字和类型

技术分享

    给数据表更名

技术分享

约束

    按功能划为:NOT NULL,PRIMARY KEY,UNIQUE KEY,DEFAULT,FOREIGN KEY

按数据列的数目划为:表级约束,列级约束

修改数据表

    针对字段的操作:添加/删除字段、修改列定义,修改列名称等

    针对约束的操作:添加/删除各种约束

    针对数据表的操作:数据表更名(两种方式)




本文出自 “11828641” 博客,请务必保留此出处http://11838641.blog.51cto.com/11828641/1872214

约束以及修改数据表