3.5.3 查询视图

3.5.3 查询视图

视图定义后,用户就可以像对基本表一样对视图进行查询操作了。

【例3.70】 在例3.65中建立的Jsj_Student视图中查找年龄小于20岁的学生。

SELECT Sno SNO,Sname SNAME,YEAR(GETDATE())-YEAR(Sbirthday)AGE

FROM Jsj_Student

WHERE YEAR(GETDATE())-YEAR(Sbirthday)<20;

系统执行对视图的查询时,首先进行有效性检查,检查查询中涉及的表、视图是否存在。如果存在,则从数据字典中取出视图的定义,把定义中的子查询和用户的查询结合起来,转换成等价的对基本表的查询,然后再执行修正了的查询。这一转换过程称为视图消解。例3.70转换后的查询语句为:

SELECT Sno SNO,Sname SNAME,YEAR(GETDATE())-YEAR(Sbirthday)AGE

FROM Student

WHERE Sdept=计算机AND YEAR(GETDATE())-YEAR(Sbirthday)<20;