`
20386053
  • 浏览: 435271 次
文章分类
社区版块
存档分类
最新评论

视图初尝

 
阅读更多

我们八个人正在弄一个项目,自己的基础相当薄弱,总感觉自己在拉后脚,但是他们一直没有放弃我。正是他们,自己在这段时间内学到了很多东西。

由于这次表遇到一些复杂的查询操作,需要进行多表查询,组长要求大家去用视图。我之前只是听说过,并为真正用过,然后找资料学习了一下,必定首次接触,只能算是一次浅尝。


一、表关联

既然是多表查询,自然涉及到关联,所以先来简介一下表关联(join)。

举个例子:比如有班级表,学生表,现在要查询一个学生列表,要求把学生所属班级名称也查询出来,这时候简单的select查询就不行了,需要关联班级表,因为学生是一定属于某一个班级的,所以关联的示例需要自关联。

示例代码:

select t2.*         --表自关联
from Tree t1
inner join Tree t2
on t1.NO=t2.ParentNo
where t1.Name='Node1_2';
 
select * fromtree      --子嵌套查询
where ParentNo =(select NO from tree where Name = 'Node1_2');
 
select * from tree
where parentNo in(select no from tree where Name = 'Node1_2');

上面是表自关联,关键字inner,就是返回t1.NO=t2.ParentNo条件的所有t2表的数据

有表自关联,当然还有左关联,右关联,示例代码:

select t2.*         --左关联
from Tree t1
left join Tree t2
on t1.NO=t2.ParentNo
where t1.Name='Node1_2';
 
select t2.*         --右关联
from Tree t1
right join Tree t2
on t1.NO=t2.ParentNo
where t1.Name='Node1_2';


二、视图

简介了一下表关联,接下来就是视图View)了

视图的关键字是View,就是一个查询集合,方便我们去查询数据,视图其实就是表,多表连接的表,我们查询的时候不需要反复的去拼接语句,直接查询视图就可以,方便我们的操作,当然一些简单的查询操作就没必要去创建视图了。

示例代码:

create viewProduction.vw_Product
as
    select t1.* from Production.Product t1
    left outer join Production.ProductModel t2 on t2.ProductModelID=t1.ProductModelID
    left outer join Production.ProductSubcategory t3 on t3.ProductSubcategoryID=t1.ProductSubcategoryID
    left outer join Production.UnitMeasure t4 on t4.UnitMeasureCode=t1.SizeUnitMeasureCode and t4.UnitMeasureCode=t1.SizeUnitMeasureCode
    --order by t1.ProductID   

查询视图:

select * from Production.vw_Product

表关联和视图都是比较简单的数据库操作,但也是比较常用的。现在只是初尝,以后在学习及实践过程将不断深入。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics