先创建一个数据表
再创建一张数据表,让其属性pid参照上一个provinces数据表的id
主要代码为:FOREIGN KEY (pid) REFERENCES provinces(id)
查看province以及users的表索引,就可以看到两个约束,一个是主键id另一个就是pid
接下来了解外键约束的参照操作
CASCAD:从父表删除或更新且自动删除或更新子表中匹配的行
SET NULL:从父表删除或更新行,并设置子表中的外键列为NULL。如果使用该选项,必须保证子表列没有指定NOT NULL
RESTRICT:拒绝对父表的删除或更新操作
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