一、连接
a)inner join中,on,可以用where替代,但用on来专门指定join条件,其它条件写在where中可读性更好。
b)outer join
对于连接字段为空的元祖,使用inner join时不会列出,outer join却不一样,left /right join会保留左(右)侧的连接字段为空的元祖。left join的过程可以理解为先执行inner join,然后再向结果集中添加左侧关系中剩余的元祖。
在outer join中,on和where就不能互换了
c)在SQL server中left outer join也是可以写的,但一般会省略inner、outer
二、视图
a)前面学习过程中接触的表都是在数据库中实际存在的,但有时用户并不需要一张表的全部信息;甚至有时候不想让用户拿到额外的信息,比如有时只允许用户查阅instructor表的id, name;或者有一些复杂的查询我们不希望每次都去重复写一遍。这时可以使用虚拟的表(virtual relation),即视图(view),视图不属于数据库的表,但可以被用户访问到。
b)视图的定义
写法为create view v as <query expression>;其中query expression可以是任何查询语句。比如之前的instructor视图可以这样定义:
create view faculty as
select ID, name
from instructor;
然后只为用户提供访问faculty视图的权限,就可以达成目的。
c)视图被定义后,就可以像真实的表一样被使
《数据库系统概念》5-连接、视图和事务
最新推荐文章于 2022-05-31 08:33:22 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)