约束和索引, 前者是用来检查数据的正确性,后者用来实现数据查询的优化,目的不同。
唯一性约束与唯一索引有所不同:
(1).创建唯一约束会在Oracle中创建一个Constraint,同时也会创建一个该约束对应的唯一索引。
(2).创建唯一索引只会创建一个唯一索引,不会创建Constraint。
也就是说其实唯一约束是通过创建唯一索引来实现的。
在删除时这两者也有一定的区别:
删除唯一约束时可以只删除约束而不删除对应的索引,所以对应的列还是必须唯一的,
而删除了唯一索引的话就可以插入不唯一的值。
唯一性约束与唯一索引有所不同:
(1).创建唯一约束会在Oracle中创建一个Constraint,同时也会创建一个该约束对应的唯一索引。
(2).创建唯一索引只会创建一个唯一索引,不会创建Constraint。
也就是说其实唯一约束是通过创建唯一索引来实现的。
在删除时这两者也有一定的区别:
删除唯一约束时可以只删除约束而不删除对应的索引,所以对应的列还是必须唯一的,
而删除了唯一索引的话就可以插入不唯一的值。
2016-10-27
我对这一节的理解方式,如有错前辈请拍砖
1.一旦我们动用连接(join)这个操作,其实就在虚空之中生成了一张连接而成的大表,而select只是从这个表里提取数据。所以,select不会影响虚空之中的那张连接大表的结构。因此最终结果的不同只可能是父表与子表的左右造成
2.父 left join 子 = 子 right join 父,因为这都意味着父表是主体;同理反过来就是子表是主体
3.父为主体,则连接的方式为展开。因为一个父可能对应多个子。就好像下拉菜单一样,所以最后表变成了个长表
4.子为主体,则连接的方式为溯回,因为一个子只有一个父,因此表长度不会有变化
1.一旦我们动用连接(join)这个操作,其实就在虚空之中生成了一张连接而成的大表,而select只是从这个表里提取数据。所以,select不会影响虚空之中的那张连接大表的结构。因此最终结果的不同只可能是父表与子表的左右造成
2.父 left join 子 = 子 right join 父,因为这都意味着父表是主体;同理反过来就是子表是主体
3.父为主体,则连接的方式为展开。因为一个父可能对应多个子。就好像下拉菜单一样,所以最后表变成了个长表
4.子为主体,则连接的方式为溯回,因为一个子只有一个父,因此表长度不会有变化
2016-10-27
提一个小小的意见行不,每次我暂停之后想看看代码,就被视频下面的进度条挡住了,而且一直挡着,直到我取消暂停后才能看见代码,体验很不好啊,希望攻城狮能改动一下哦
2016-10-26