视图
视图实际就是对表的连接展现出来的结果建成的虚拟表。简单来说,视图实际上就是一个虚拟的表,通过表与表之间的关系连接起来,方便查询时使用。
首先,将需要连接的语句存储到数据库中,定义新的视图名代替连接的这段语句;
然后,每次查询这个新的视图名的时候,实际上是执行了表连接的代码查询。
1、将两个表(student,score表)联合写成一个表来用,形成一个新的表。
(select student.Sno,Sname,Ssex,Sbirthday,Class,score.Cno,Degree from student
join score on student.Sno=score.Sno) as --作为一个新表,方便查询时使用
2、创建视图
方法一:通过视图---新建视图来操作。
步骤1:在“对象资源管理器” 选择想要建视图的数据库(xinxibiao)名下,点击“+”号后,
在子目录中选中“视图”,右键“新建视图”。
步骤2:在弹出的“添加表”对话框中,选择想要建立关系的表,然后点击“添加”,关闭即可。
步骤3:当两个或几个表建立好关系之后,发现它们之间存在主键与外键的关系,下图就是它们之间的关系表。
步骤4:建立好关系后,完成创建视图,就会显示想要的结果。
方法二:通过代码创建视图
书写格式:
create +(视图英文名)+创建的视图名称 ---类似表的创建格式
as
建立两个或多个表之间的关系的查询语句
go
例:create view studentscore ----创建视图
as
select student.Sno,Sname,Ssex,Sbirthday,Class,score.Cno,Degree from student
join score on student.Sno=score.Sno ---建立student,score 表的关系语句
go
select*from studentscore ----查询结果的语句
【注意事项】视图里面不存在order by, 聚合函数,in,not in 关系运算等语句,它不是一个真正的表,是虚拟的表,数据来源在student,score表中,只能使用表连接的join...on组合数据,方便查询使用。
练习题1:
3、删除视图
方法1:
方法2:通过代码删除
drop view+视图名称
例如: drop view studentscore
4、修改视图
alter view studentscore ---相当于删除视图重写
as
(
select student.Sno,Sname,Ssex,Sbirthday,Class,score.Cno,Degree from student
join score on student.Sno=score.Sno
)
go
【注意事项】同一个关系视图只能建一次,修改之后需重新建立关系,视图本身就是虚拟的不存在,只是为了查询方便使用。