SQL视图

简介: 通常我们在数据库中查询数据时用的是SELECT语句,我们可以用SELECT语句查询任何数据库中的信息,只要数据库有,只要你要。利用SELECT语句,你可以将一个个表通过一些特定的关键字、函数等连接起来,最后生成你想要的结果。

【前言】


通常我们在数据库中查询数据时用的是SELECT语句,我们可以用SELECT语句查询任何数据库中的信息,只要数据库有,只要你要。利用SELECT语句,你可以将一个个表通过一些特定的关键字、函数等连接起来,最后生成你想要的结果。但是,我们往往都知道,如果是利用SELECT语句查询到的数据只能作为临时的,不能将它存储起来,下一次再查询相同的信息时只能再次重新进行编写,大大降低了效率。那么,有没有一种方法能够让我将常用到的数据组成一张表并且存储起来,下次想要使用时就可以直接利用某个语句查询就可以呢?


视图,就可以做到这一点!


【正文】


我先来举个示例吧!


<**举例**>


现分别有客户信息表(MemberDetails)、电影类型信息表(Category)、客户最喜爱的电影类型信息表(FavCategory)三张表


  20200219193050886.png              

20200219193119387.png

20200219193147193.png


<要求>查询喜爱“Horror”电影类型的客户信息


<思路>顾名思义,要求我们查询包含两个点:喜爱“Horror”电影类型的客户有哪些?他们的基本信息(包括名,出生日期等)


<步骤>


1.查询“Horror”电影类型的Id是多少。查询,查询,那肯定是你不知道才要查询。从上图中我们可以看出电影类型的Id包含在Category表中


SELECT CategoryId 
FROM Category 
WHERE Category = 'Horror' 


生成结果如图:20200219195205764.png


2.查询喜爱“Horror”电影类型的客户MemberId。联合FavCategory表


SELECT MemberId FROM FavCategory 
WHERE CategoryId IN (SELECT CategoryId FROM Category 
                     WHERE Category = 'Horror' ))


生成结果:20200219195725384.png


3.查询喜爱“Horror”电影类型的客户具体信息。往往客户的信息一般都专门存储在一张客户信息表中,联合MemberDetails表


SELECT MemberId,FirstName, LastName FROM MemberDetails 
WHERE MemberId IN 
(SELECT MemberId FROM FavCategory WHERE CategoryId IN
(SELECT CategoryId FROM Category WHERE Category = 'Horror' ))


生成结果:20200219200014916.png


根据结果,我们完整完成了所要求的了:喜爱“Horror”电影类型的客户具体信息。那么,既然满足了,我们是不是就可以开始创建视图了呢?当然可以了!


4.创建视图。


执行下面语句,让数据库系统保存视图


CREATE VIEW table_Films AS
SELECT MemberId,FirstName, LastName FROM MemberDetails 
WHERE MemberId IN
(SELECT MemberId FROM FavCategory WHERE CategoryId IN
(SELECT CategoryId FROM Category WHERE Category = 'Horror' ))


现在,在左边的对象资源管理器中我们就能看到刚才创建的视图了


5.创建好一个视图可以在SELECT语句中使用它


SELECT *
From table_Films

20200219201438424.png


6.删除视图


DROP VIEW table_Films


以上步骤就是创建一个完整视图的过程了。就像我们所看到的一样,视图就是一种虚拟表,如果别人远程访问你的数据源,它只能允许用户看到所显示的数据,也正是因此加强了数据库的安全性。所查询出来的数据只能查看,不能修改。


通过上面所举的示例,来总结下视图的相关小知识吧!


【小知识】


视图是一种虚拟的表,它允许用户看到或者(有时)更新特定部分的数据。


通过视图为用户提供数据,并限制对用户不应当看到或更新的数据的访问。视图可以是从一个表中提取的记录行或者列的集合,或者可以包含多个表中的数据,这些表在其他的视图中被联合,视图可以包含经过计算的字段、分组过的字段和汇总字段。


好处:


加强了安全性


用户只能看到视图所显示的数据


简化数据访问操作


可以访问远程数据源


注意:


视图不能包含 ORDER BY 子句,除非SELECT语句的选择列表中还有一个 TOP 子句。


视图必须唯一命名


视图所查询出来的数据只能进行查看,不能删改!


创建的视图具有访问权限

相关文章
|
9月前
|
SQL 数据库
SQL使用视图的优缺点
SQL使用视图的优缺点
92 0
|
9月前
|
SQL 存储 数据库
sql事务、视图和索引
sql事务、视图和索引
|
9月前
|
SQL 算法 数据库
【数据库SQL server】关系数据库标准语言SQL之视图
【数据库SQL server】关系数据库标准语言SQL之视图
208 0
|
9月前
|
SQL 存储 关系型数据库
sql语句,索引,视图,存储过程
sql语句,索引,视图,存储过程
73 0
|
9月前
|
SQL 数据库 数据库管理
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(一)模式、表、索引与视图
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(一)模式、表、索引与视图
233 11
|
9月前
|
存储 SQL 缓存
4.2.1 SQL语句、索引、视图、存储过程
4.2.1 SQL语句、索引、视图、存储过程
|
4月前
|
SQL 存储 数据库
实验4:SQL视图操作与技巧
在SQL数据库管理中,视图(View)是一种虚拟表,它基于SQL查询的结果集创建,并不存储实际数据,而是存储查询定义
|
4月前
|
SQL 存储 数据库
实验4:SQL视图操作技巧与方法
在数据库管理系统中,视图(View)是一种虚拟表,它基于SQL查询的结果集创建,并不实际存储数据
|
4月前
|
存储 SQL 安全
|
4月前
|
SQL 数据库
SQL使用视图的优缺点
SQL使用视图的优缺点
128 0