sas中的sql(7)创建视图,更新视图,删除视图

本文详细介绍了SAS中的视图概念及其应用场景,包括视图如何帮助节省存储空间、简化复杂查询,并确保数据集实时更新。此外,还讲解了创建、描述及管理视图的方法。

什么是视图?

视图是一系列的查询语句,在使用时被执行,用来从其他的数据集或视图中获取想要的子集(subset)或者超集(superset)。

The view contains only the logic for accessing the data, not the data itself

视图能用在哪些地方?

几乎在sas程序中任何真实表用的地方(不能用的地方暂未列出)。

使用视图的好处?

1:节约空间,视图往往比真实表要小很多。

2:防止用户经常进行表查询而忽略默写列,视图写好后每次调用就行,而inline-view需每次重写

3:保证数据集能进行实时更新。

4:掩盖其他表中的不想展现的列

5:对用户掩盖复杂的连接或查询

 

使用视图应该注意什么问题?

1:查询子句中尽量避免order by,使用view的用户的目的可能不同,是否使用order by应由不同的用户决定

2:避免创建基于容易变动的表的视图

3:如果同样的data要用很多次,那么最好不要创建视图而是直接创建静态表。

 

 

创建视图

 

创建视图时,系统并不会执行select的语句,只会编译并将其储存在视图类型的文件中。

 

 描述视图

如果建立的视图基于另一个视图上,那要用feedback选项才能描述出内容。

 

管理视图

如果view后面的视图指定了库名,那么from后的如果不指定库名则默认为在sasuser中。

proc sql;
    create view sasuser.payrollv as
        select *
            from payrollmaster;    
quit;

 

更灵活点的方式,using clause

libname airline 'SAS-library one';
proc sql;
create view sasuser.payrollv as
select*
    from airline.payrollmaster
    using libname airline 'SAS-library two';
quit;

sql中的libname语句不会影响外面的,可以看成局部语句

 

 

更新视图(语法和table一样)

1:You can only update a single table through a view. The table can not be joined or linked to another table, nor can it contain a subquery.

2:You can update a column using the column's alias, but you can not update a derived column

3:You can update a view that contains a WHERE clause. The WHERE clause can be,specified in the UPDATE clause or in the view. You cannot update a view that contains any other clause such as an ORDER BY or a HAVING clause.

4:You cannot update a summary view (a view that contains a GROUP BY clause). 

 

删除视图

 

 

转载于:https://www.cnblogs.com/yican/p/4104715.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值