视图和SELECT查询之间的区别

时间:2009-07-10 09:44:40

标签: sql view

如果使用视图向用户显示所选列,则可以使用

完成相同的操作
SELECT col1, col2
FROM   xyz

,使用视图有什么意义?

8 个答案:

答案 0 :(得分:13)

  • 使用视图可以节省您复制和粘贴查询的过程,并增加代码的可重用性,因此您可以在代码的不同位置更改单个视图,而不是10个查询。
  • 可以对视图和表格授予不同的权限,以便您只能向用户显示部分数据
  • 可以实现视图,这意味着缓存基础查询的结果

答案 1 :(得分:8)

正如Quassnoi所说,它对于授予表中某些行的权限很有用。

例如,假设一所大学的讲师需要获取课堂上学生的信息。她不应该访问“学生”表,因为她可以查找或修改整个大学中任何学生的信息。数据库管理员创建的视图仅显示讲师课程中的学生,并为讲师提供适当的视图权限。现在,讲师可以访问自己学生的数据,但不能访问整个“学生”表。

答案 2 :(得分:2)

视图可以描述为虚拟表,它是根据存储在数据库中的SQL查询创建的。

因此,以下是使用VIEWS时要考虑的方面

  • 性能:它可以提高数据访问性能,因为涉及多个表的查询会生成已交换的事务以生成视图。

  • 简单性:我使用的大多数视图都是来自4个以上表格的列的数据排列,一组内部联接。创建视图后,应用程序开发人员必须使用同一视图中的列处理SELECT语句,因此称为虚拟表。

  • 安全性:或者只是将其称为访问控制。大多数关系数据库管理系统允许视图对象中的属性控制访问类型。例如,可以允许用户更新视图,但只有DBA可以对构成视图的表进行修改。

答案 3 :(得分:1)

视图使SQL更容易编写(和读取)。

您还可以使用视图来控制访问权限。

答案 4 :(得分:0)

视图可能比仅显示某些列更复杂。这是一个存储的查询。 Wikipedia has much more detail

答案 5 :(得分:0)

请参阅此链接,您了解有关视图的更多信息 http://www.sql-server-performance.com/articles/dev/views_in_sql_server_p1.aspx

答案 6 :(得分:0)

视图对于访问权限非常有用。还有其他许多优点(如上面提供的那些链接所述),但对我来说,主要优点是可重用性。正如Quassnoi所写,您可以在一个点上编辑查询,而不是编辑方法列表。

完美!

答案 7 :(得分:0)

<强>查看: 1.视图不会存储任何数据 2.用于安全目的 3.删除基表后,将无法再访问该视图 4.可以直接在视图上执行DML操作

物化视图 1.物化视图不存储数据 2.它用于提高性能 3.删除基表后,仍可访问实例化视图 4.无法对物化视图执行DML操作。

参考:https://www.youtube.com/watch?v=8ySsyZlixuE