11-10SQLserver基础--数据库之视图

时间:2024-03-12 12:49:34

视图

视图实际就是对表的连接展现出来的结果建成的虚拟表。简单来说,视图实际上就是一个虚拟的表,通过表与表之间的关系连接起来,方便查询时使用。

首先,将需要连接的语句存储到数据库中,定义新的视图名代替连接的这段语句;

然后,每次查询这个新的视图名的时候,实际上是执行了表连接的代码查询。

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

【注意事项】同一个关系视图只能建一次,修改之后需重新建立关系,视图本身就是虚拟的不存在,只是为了查询方便使用。