1、基本用表
studentinfo 表
recruitinfo 表
department 表
2、创建视图
创建简单视图
eg1:创建一个与studentinfo具有相同信息的视图
查询的结果和studentinfo表一致。当然也可以给studentinfo表的列名更改名称,只需要在相应的视图名称后给出相应的新列名即可。
创建视图的视图
eg2:为视图studentinfo包含的所有的男生信息创建一个视图boy_view
查询结果:
PS:查询的速度非常非常慢。。。。
利用视图简化复杂连接
eg3:创建一个视图join_view,包含studentinfo表中的sname字段,recruitinfo中的dname字段, department表中的dnum字段
PS:速度也是非常非常的慢哪。。。。
利用视图简化复杂查询:
eg4:查找录取分手高于630分的男同学的姓名和所在的系名
step1:基于studentinfo表,创建boy_view,包含所有男同学信息
step2:基于recruitinfo表和studentinfo表,创建score_view 视图,包括录取分数高于630的学生信息
step3:基于前面两个视图,创建boyscore_view视图,包含所有高于630的所有男同学信息
step4:基于boyscore_view 视图和表department,创建视图result_view,包含录取分数高于630的男同学姓名和所在系信息。
3、视图的销毁
eg:销毁studentinfo_view 视图
说明一点:视图在物理上是不存在的,它实际上是只是一个查询结果,是一个被存储的查询,即只保留了视图的定义。所以删除视图时,也只是删除视图的定义,对实际表中的数据没有任何影响。、
4、使用视图注意事项:
- 和表一样视图必须有名字,且不能与已有表或者视图同名
- 视图创建个数不限
- 创建视图必须从数据库管理员获得创建权限
- 视图可以嵌套
- 一些数据库管理系统(比如SQL SERVER)不允许用户在查询语句中使用order by 子句