循序渐进学习Power Builder 6.0(4-3)

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-03-16 22:59:33

4.3 对视图的操作

上面介绍了对数据库中的表的操作,下面要介绍的是数据库中一个很重要的对象--视图的有关操作。视图并不是真正的表,也没有自己的数据。它的数据可以来自一个或多个数据库中的表和视图。

使用视图的好处在于隐藏数据库中表的真正结构,只向用户提供需要的并且有访问权限的字段,这样既方便了用户,同时也可以保证数据库中表的安全性。接下来就来创建基于我们以前创建的表MYTELEBOOK的视图,虽然这里创建的视图是基于一个表的,比较简单,但还是能说明对视图的基本操作。

首先确定当前系统连接的数据库为先前创建的TELEBOOK,然后单击PAINTERBAR工具条上的CREATE VIEW画板,系统在打开名为VIEW的窗口之后,又弹出一个名为SELECT TABLES的对话框,用来选择要创建的视图所基于的表和视图。

选择一个以前创建的表MYTELEBOOK,然后单击OPEN按钮,系统关闭对话框并回到打开的VIEW窗口(图4-6),在这个窗口中就可以定义具体的视图了。观察VIEW窗口,其中的表正是刚才选中的用来创建视图的表MYTELEBOOK。前面已经说了,视图是逻辑上的表,它的字段来自创建它的表和视图,比如单击表MYTELEBOOK上的NUMBER字段,它就出现在窗口上部的SELECTION LIST栏中,表示这个字段已经被选中作为视图的一个字段,用类似的方法可以选择其它的表中的字段加到视图中。

循序渐进学习Power Builder 6.0(4-3)(图一)

4-6

要注意的是视图的字段可以是表中的若干字段通过运算后得到的结果,我们叫它计算字段,下面就来为视图定义一个计算字段,单击窗口下部的COMPUTE标签,在COMPUTED COLUMNS栏中输入计算字段的计算表达式,这里不妨输入“HOME-ADDRESS+STRING(POSTCODE)”,输入的内容的意思是使用STRING函数把数值型的邮政编码字段POSTCODE转换为字符串类型后与同样是字符串类型的家庭地址字段HOME-ADDRESS的值相连,作为计算字段的值。然后我们在ALIAS栏中给这个新建的计算字段起个字段名为ADDRESS 。事实上创建一个视图就是使用SQL语言的SELECT语句从表中过滤出有效的字段和记录作为视图的数据。

使用窗口的下部的SORT,WHERE,GROUP,HAVING等标准的SELECT查询语句的语法标签可以设置查询条件。这里就不再为视图添加查询条件了,单击SYNTAX标签,标签下面的工作区中列出的就是系统按照刚才的要求自动生成的创建视图所需要的SQL语句。

单击PAINTERBAR工具条上的RETURN画板,弹出SAVE VIEW DEFINITION对话框,为新创建的视图起个名字,这里不妨给它起名为MYTELEVIEW,然后单击CREATE按钮,本地数据库管理系统SYBASE SQL ANYWHERE就根据SQL语句自动生成视图MYTELEVIEW,创建好的视图显示在数据库窗口中,它有四个字段直接来自表MYTELEBOOK,而字段ADDRESS则来自得到的计算字段。这样一个数据库中的视图就创建好了。

对程序员而言,操作数据库中的表和视图没有多大的区别,但由于视图中并没有数据,它的数据完全来自于它所基于的表和视图。所以对视图的操作最终将是对视图所基于的表的操作,由于一个表可以创建出多个视图,另外也由于要保持数据库中的数据的安全性和数据完整性,所以对视图的操作有一些限制,在刚创建的视图MYTELEVIEW的标题上单击鼠标右键,系统弹出一个菜单,其中的菜单项就是我们可以对视图可以进行的一些操作,我们可以删除,关闭视图,也可以对视图中的数据进行操作等。但与表不同的是,我们不可以重新定义一个视图的字段,如果确实需要的话,只能再重新创建一个视图。此外视图也没有表所具有的索引和外部码。事实上这些东西对于视图而言也是没有意义的。


Tags:

作者:佚名
分享到: 微信 更多