购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

4.3 视图

面试题10:视图的概念

【题目】

(1)什么是视图?

(2)视图有哪些使用场景?

【解题思路】

(1)什么是视图?

视图其实是一个SQL语句,定义视图的SQL语法如下:

例如,下面的SQL语句定义了一个视图,视图名称是myview,as后面跟的是SQL查询语句:

定义好的视图,如何使用呢?

我们可以像使用真实表一样,对视图进行查询(select)操作。从某视图中查询出指定结果的SQL语句的书写方法如下:

视图可以理解为一个虚拟表,为什么是虚拟表呢?

这是因为数据库中存放的是定义视图的SQL语句,视图中不存放真实的数据,视图运行结果表中的数据来自真实源表(也就是视图定义中SQL查询语句中的表)。真实源表、视图的关系如图4.11所示。

图4.11 视图的运行逻辑

(2)视图有哪些使用场景?

既然视图只是一个虚拟的表,实际数据还是存储在真实源表中,那我们直接使用真实源表就行了,为什么还要用视图呢?

视图常起到保证数据安全的作用,下面举一个例子。

“公积金缴纳表”存储在数据库中,里面记录了缴纳公积金者的姓名、身份证号、缴纳金额、就职公司等。

因为业务需求,其他人员需要经常从数据库中查询这个表,而缴纳人员的身份证号、就职公司属于私密信息,不宜公开。

如何使这个人既能查看这个表,又能隐去缴纳人员的身份证号、就职公司等私密信息呢?

答案是用视图就可以实现,保证数据安全。

定义一个视图,该视图只取“公积金缴纳表”中的“姓名”和“缴纳金额”列。

SQL语句的书写方法如下:

将定义好的视图(视图名称为公积金)的查询权限分配给需要的人,这些人便可以通过视图来查看使用数据了,SQL语句的书写方法如下:

这样,查看的人便不会接触到缴纳人员的身份证号、就职公司等私密信息。

【本题考点】

考查视图的概念,要理解什么是视图及视图有什么用。

面试题11:with...as语句和视图的区别

【题目】

请你说一下with...as语句与视图的区别。

【解题思路】

with...as语句与视图的区别如下。

(1)with...as语句创建的是一个临时表,使用后即释放,不存放在数据库中,不需要删除;视图存储在数据库中,创建的是虚拟表,若要释放存储空间,则需要进行删除。

(2)with...as语句不能使用语句结束符“;”;创建视图的语句是一条完整的SQL语句,需要使用语句结束符“;”。

(3)with...as语句定义的临时表只能使用在紧跟其后的select语句中;视图则可以在不同的SQL语句中反复多次调用。

(4)with...as语句的作用主要是提高SQL语句的易读性;视图除了可以提高SQL语句的易读性,也有保证数据安全的作用。

【本题考点】

考查with...as语句和视图的概念,要理解with...as语句的用法和视图的用法。 232dqBn/jhwAucgDNJophUIrAxyPVwZy0BEsh7g+SBk0itR39TCwaxuL1KRj3UF0

点击中间区域
呼出菜单
上一章
目录
下一章
×