今天用了一把数据库中的视图,事情是这样,实际要求从约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]