【摘要】联接查询、视图
【正文】
本文转自——学领未来
联接查询主要有:交叉联接、内联接、外联接(左联接和右联接)
交叉联接:在逻辑上,交叉联接是一种最简单的联接,只实现一个逻辑查询步骤(笛卡尔积)。
在数据库新建Student表和Teacher表
使用交叉联接得出结果:
从结果可以看出,交叉联接的结果就是student表中每行数据与teacher表中每行数据的循环结合,结果是5*4=20条数据
内联接:会应用两个逻辑查询处理步骤,首先像交叉联接进行笛卡尔积运行,然后再根据给定条件进行过滤
过滤后只有满足条件4条数据
外联接:
在外联接中,把一个表标记为“保留的”表,如左联接中left关键字左边表的行是保留的,而右联接中right关键字右边表的行是保留的。
左联接:
从结果可以看出,左联接会先满足left关键字左边表的行,就算是右边表没有数据也会以null填充,这里的null只是占位符
右联接:
右联接和左联接是一样的原理是一样的,不同的是先满足右边表,值得注意的是红色框部分,当左边表有多条数据对应右边表一条数据的时候也会查出来。
视图View:是从一个或几个基本表(或视图)导出的虚拟表。
创建格式;go create view 视图名称 as 视图内容(一般是从其他表查询的数据 ) go
注意:创建视图必须在批处理里面,不允许存在同名列,如上面表我将teacher表的name列改为tname列,并且不查询ID才能成功查询
这时我们改变teacher表的数据内容
再来查询myview视图的数据
从结果可以看出视图的数据会根据源表数据的改变而改变,这正是视图的作用。
视图是虚拟表,只供查询数据用的,例如当我们需要从多张表中联接取数据时,我们可以将这复杂查询过程的结果生成一个view视图,那么在后面调用的时候就只需要通过最简单的查询语句select * from view名称就行了
参考《Microsoft SQL Server 2008技术内幕:T-SQL语言基础》
阅读(1792) | 评论(0) | 转发(0) |