有些人何时以及为什么决定需要在数据库中创建视图?为什么不运行一个普通的存储过程或 Select ?

推荐答案

视图提供了几个好处.

1. Views can hide complexity

如果有一个查询需要连接多个表,或者有复杂的逻辑或计算,可以将所有这些逻辑编码到一个视图中,然后像 Select 表一样从视图中进行 Select .

2. Views can be used as a security mechanism

视图可以从一个或多个表中 Select 某些列和/或行,以及在视图而不是基础表上设置的权限.这只允许显示用户需要查看的数据.

3. Views can simplify supporting legacy code

如果需要重构一个会 destruct 大量代码的表,可以用同名视图替换该表.视图提供了与原始表完全相同的模式,而实际的模式已经更改.这样可以防止引用表的遗留代码被 destruct ,从而允许您在空闲时更改遗留代码.

这些只是视图如何有用的众多示例中的一部分.

Sql相关问答推荐

Postgresql -如何计算刷卡和刷卡时间

为什么在postgres中,横向连接比相关子查询快?

我希望以正确的升序获取SQL结果.怎样才能得到它们?

从日期开始向前填充重复项

SQL:如何将相应位置的两个数组中的元素组合在一起

从字符串中删除";1、";和";2,";,而不删除";11、";和";12、";

用户购买平台及金额统计

在SQL Server中设置关联对象的有效JSON格式

Redshift PL/pgSQL循环中的参数化列名

IF NOT EXISTS子查询的性能瓶颈

我需要一个regexp_like来只验证字母D或T、数字和管道

按连续相等值分组排序

显示十进制列,但尽可能显示为整数

如何在sparksql查询中使用日期值?

IN子句使用的表值用户定义函数参数

如何将输出转换为二维格式?

带有数组输入参数的Snowflake UDF优化

插入行时的行安全策略问题

在 postgresql 中保存带有时间戳的几何类型数据

在 PostgreSQL 中使用重音敏感排序进行重音不敏感搜索