今天用了一把数据库中的视图,事情是这样,实际要求从约10多个数据表中查询出5个结果集传递给另一个模块。开始准备直接用sql语句,但感觉很不好,一个一个的写sql语句,一个字累。很自然地想到了视图,过程很简单,这样做的好处是将程序中两个逻辑分开,视图定义好了,程序中直接select每个字段就好,省去了麻烦的inner join & outer join,而且看上去更为清晰。
另一个优点是:这样做极大的缩短了工作时间,一旦试图定义好了,哗哗哗几下结果就出来了;一旦出错马上可以找到错误的所在,清晰明朗,而且在定义视图的时候使用方便的isnull()等辅助函数,更减少了第二模块的工作量。
视图的定义方法:(形如.)
create view dbo.group_userjoin
as
select uu_groupuser.user_id, uu_groupinfo.group_name,
uu_registeruser.user_name, uu_groupuser.join_time
from uu_groupuser inner join
uu_groupinfo on
uu_groupuser.group_id = uu_groupinfo.group_id inner join
uu_registeruser on uu_groupuser.user_id = uu_registeruser.user_id
[with check option]
