Sql server 为什么使用视图而不是Sql语句
可能重复:Sql server 为什么使用视图而不是Sql语句,sql-server,Sql Server,可能重复: 写视图而不是写sql语句的原因是什么?是的,有很多原因 安全性:当您想要限制某个用户可以从表中看到的内容时,您可以只授予对视图的访问权,而不是对基础表的访问权 简单性:需要对子查询使用查询/视图时。或者当您不想重复多次输入同一复杂查询时 物化视图(如果您的RDBMS支持):可以提高某些分析查询(数据仓库)的性能 分区:如果您想要一个仅表示其他关系(表)子集的关系(视图)。也就是说,您可以创建发票\u 2011视图,仅使用表发票中的2011年发票 更新: 关于这个例子,他问: 假设您
写视图而不是写sql语句的原因是什么?是的,有很多原因
发票\u 2011
视图,仅使用表发票
中的2011年发票create table customers (
customer_id integer primary key,
name varchar(200) not null,
dob date
);
您希望用户bart
只查看1980年以前出生的客户的name
和dob
。您不能将客户
表的访问权限授予巴特
,因为他可以看到表中存储的任何内容
而是创建一个视图:
create view customers_1980 as
select name, dob from customers
where dob < '1980-01-01';
这样,
bart
将只能访问customers
表的受限视图子集。在您希望向用户提供受限访问权限的地方,使用视图是合适的
可以将经常使用的查询创建到索引视图中,从而为您提供高性能提升
请通读这篇文章你好,帕布罗,非常感谢,但是你能用一个关于安全的例子向我解释一下如何给出。用一个例子更新了这个问题。
grant select on customers_1980 to bart;