《管理信息系统程序设计》实验指导书
随着数据库画笔的启动,与之相应的工具栏也同时显示在PowerBuilder的系统工具栏下面,共分为三组,具体如图1.9所示。
图 1.9 数据库画笔的工具栏
第一组,用于数据库和表的相关操作。各图标的具体功能如下:
Connect:连接数据库。
Disconnect:断开数据库连接。 Save:保存。
Create new Table:新建表。
Create new View:新建视图。
Create new Column:新建列。
Create new index for selected table:为当前表创建索引。
Create new primary key for selected table:为当前表创建主键。 Create new foreign key for selected table:为当前表创建外键。 Drop Object:删除对象。 Properties:显示对象属性。 Data manipulation(grid):以表格形式操纵当前所选表中的数据。 Data manipulation(Tabular):以列表形式操纵当前所选表中的数据。 Data manipulation(Freeform),以自由格式操纵当前所选表中的数据。 Pipeline:定义和执行数据管道。 Close:关闭数据库画笔。
第二组,用于SQL语句的编写。各图标的具体功能如下: ? Paste SQL:粘贴SQL语句。 ? Select All:全选。
? Comment:注释选择的语句。 ? ? ? ? ?
Uncomment:取消选择语句的注释。Find Text:查找文本。 Find Next:查找下一个。 Replace Text:替换文本。
Execute:执行当前SQL语句。
第三组,用于具体的数据操作。各图标的具体功能如下: ? ? ? ? ? ?
Retrieve:重新读取数据。Save Changes:更新数据。 Insert Row:插入数据行。 Delete Row:删除数据行。 First:移到首记录。 Prior:移到前一记录。
- 10 -
《管理信息系统程序设计》实验指导书
? Next:移到下一记录。 ? Last:移到尾记录。 (2)数据库画笔的工作区
数据库画笔的工作区的左侧一个树状列表视图,列出了所有能够操作的数据库对象,用户可以在其中选择需要操作的具体对象。右侧分为三个视图区:
Object Layout,对象显示和操作视图区。 Object Details,对象细节设置区; 其它设计视图区:
Columns,列设计视图。
ISQL Session,SQL语句编辑视图。 Results,表中数据编辑视图。 Activity Log,日志视图。
2)表的基本操作(注:若你在SQL SERVER中已经建好表,此处可作了解,但必须完成视图及数据的输入)
在了解了数据库画笔之后,接下来就可以使用数据库画笔对数据库进行表的具体操作。表的操作可以分为基本操作和高级操作。表的基本操作包括:创建表、修改表和删除表;表的高级操作包括:为表设置主键、外键、索引和表中列的扩充属性。
创建表
在使用数据库表之前需要首先创建表,表是数据存储的主要单元。数据库的表用行和列来表示数据,行就是记录,列就是字段,叫法虽然不同,本质完全一样。所以创建表的主要工作就是定义表的列属性。
创建表的方法有两种:(1)利用数据库管理系统本身提供的工具(Sybase Central)创建表;(2)使用PowerBuilder的数据库画笔创建表。第一种方法不属于本实验的讨论范围,
创建“院系信息表──College”,操作步骤如下:
a.启动数据库画笔:在树状视图中选中需要操作的数据库。这里我们对前面创建的“mydb”数据库进行操作,所以请先在“ODB ODBC”列表中选中“mydb”,并通过双击该项将其展开,然后选择其中的“Tables”列表项。因为还没有创建表,所以其下没有内容。
(1) 单击工具栏中的创建表图标:在画笔工作区的“Columns”视图中出现表的列属性定义界
面,如图1.10所示。此时,用户需要定义以下几项内容:
图 1.10 新建表
? ? ? ? ? ?
Column Name:表的列名,使用标识符作列名。
Data Type:指定列的数据类型,PowerBuilder 以列表形式列出当前数据库支持的所有类型,从中选择所需类型。
Width:指定列宽。有些数据类型的列宽是系统默认的,不需要设定,此时Width文本框将显示为灰色,表示不能操作。
Dec:小数位数,只有当列的数据类型选择为decimal(或numeric)时才需要输入这个值,它表示小数点后数字的位数。
Null:指定列是否允许空值,Yes表示允许,NO表示不允许。
Default:设置列的缺省值。当用户向表中插入数据但没有在该列输入任何值时,系统就
- 11 -
《管理信息系统程序设计》实验指导书
用缺省值填充该列。
(2) 定义列属性:请按表1.1所示内容输入具体的列信息。
定义完一列后,按【Enter】键添加新列,完成后,如图1.11所示。
图 1.11 学院信息表College
(3) 单击工具栏中的保存图标:系统打开“Create New Table”对话框,要求输入表的名称。这
里请保持“Owner Name”为“dba”,在“Table Name”文本框中输入表名“college”,如图1.12所示。
图 1.12 输入表的名称
(4) 单击“OK”按钮:系统将保存当前表,同时在“Object Layout”视图中显示新建的表,树状
列表中出现“College”项,如图1.13所示,至此表的创建操作结束。
图 1.13 保存后的表
注意: 创建表时,一旦用户进行了存盘操作,表中列的“数据类型”和“空值”就不能在进行修
改了,如图1.13所示,所以在创建表之前一定要对表的结构进行细致地分析,以避免再次修改的麻烦。 修改表
表创建之后,如果发现某些地方不合适,我们可以修改表的定义。 修改“院系信息表──College”,操作步骤如下:
(1) 选择要修改的表:在树状视图中选择表“Mydb/Tables/College”。
(2) 单击鼠标右键:在其快捷菜单中选择“Alter Table…”命令,系统将在“Columns”视图中显
示当前表的列定义。注意:此时“Data Type”和“Null”已经不能修改,显示为灰色,如图1.14所示。
- 12 -
《管理信息系统程序设计》实验指导书
(3) 可进行的修改操作如下:
? 单击相应的文本框:修改列名、列宽或者缺省值的定义。
? 单击列前面的小方格:小方格变成突出的三维状,表示当前列被选中,如图1.14所示,
此时单击鼠标右键,在其快捷菜单中选择“Insert Column”或“Delete Column”命令可以插入列或者删除列。
图 1.14 修改表
(4) 这里并不需要真正修改院系信息表的定义,仅作为演示。
(5) 如果进行了修改操作请单击保存图标:更新对当前表的修改如。
注意: 如果当前列被设置为主键值,其定义不能修改。修改表时新插入列的“Null”属性被系统
默认设为“Yes”,不能修改。如果表中已经存在数据记录,删除列时,这一列的相应数据也将被同时删除。 删除表
下面介绍删除表的方法。
删除“院系信息表──College”,操作步骤如下:
(1) 选择要删除的表:在树状视图中选择表“Mydb/Tables/College”。
(2) 单击鼠标右键:在其快捷菜单中选择“Drop Table”命令,系统弹出确认对话框,如图1.15
所示。
图 1.15 确认删除表对话框
(3) 如果确定要删除当前表请单击“是”,否则单击“否”。 (4) 这里单击“否”:我们并不是要真正删除院系信息表。
3)表的高级操作
在创建表时,只是简单定义表的结构是不够的。作为关系数据库中的表,必须通过为表设置主键、外键和索引等操作来明确表中各数据列以及表与表之间的关系,以确保表中数据的完整性和有效性。
设置主键
主键是用于唯一标识表中行的一个列或者一组列,主键不允许为空值。虽然可以创建一个没有主键的表,但设计良好的关系数据库要求定义主键,缺少主键,就不能保证表的引用完整性。一般情况下,应该把表中数据值不会重复的列定义为主键。下面介绍设置主键的具体方法。
为“院系信息表”设置主键。因为表中每个院系的编号是唯一的,所以将院系编号列设为主键,
- 13 -
《管理信息系统程序设计》实验指导书
操作操作如下:
(1) 选择表:在树状视图中选中院系信息表“college”。
(2) 单击鼠标右键:在其快捷菜单中选择“New / Primary Key”命令,系统在“Object Details”
视图中打开“Primary Key”对话框,如图1.16a所示。
(3) 设置主键:在相应列上单击鼠标左键,可将该列或多列设为主键。这里将“collegeid”列设
为主键,如图1.26a所示。设置后,“Object Layout”视图中的“college”表的“collegeid”列旁边出现绿线连接的 图标,如图1.26b所示。在树状视图表“college”的列“Columns”列表中,“collegeid”的图标变为,在“Primary Key”主键列表中出现列表项,具体如图1.16c所示。
(4) 修改主键:在图1.26c所示的“Primary Key”主键列表中双击“Primary Key”列表项,可以
在“Object Details”视图中打开“Primary Key”对话框,然后可以进行主键的调整。
a Object Details视图 b Object Layout视图 c 树状视图
图 1.16 设置主键
(5) 单击保存图标:更新对当前表的修改。
提示: 如果需要将某个表显示在“Object Details”视图中,可以先在树状视图中选中该表,然后
按下鼠标左键将其拖动到“Object Details”视图中。
采用同样的方法依次为成绩信息库中其它表设置主键,各表的主键列如下: ? 院系信息表:“collegeid” ? 专业信息表:“specialtyid” ? 课程信息表:“courseid” ? 学生信息表:“studentid” ? 成绩信息表:“studentid”和“courseid”(两个列构成复合主键,即一个学生的一门课程成绩
是唯一的) 设置外键
外部键是表中的一个或多个列,这些列与其它表中作为主键的列相对应。在关系数据库系统中,利用外部键连接多个表,建立数据库的参照完整性。通过使用主键与外部键,我们可以利用关系数据库系统本身保证数据输入的有效性,避免烦琐的编程。另外,在一个表上我们可以根据需要定义任意多个外部键。注意:一个表中能够被设为外键的列,该列一定是对应于另一个表的主键列。下面介绍设置主键的具体方法。
为“课程信息表”设置外键。课程信息表中含有一个“specialtyid”(专业编号)列,该列的值由专业信息表的主键列决定,所以需要将课程信息表中的“specialtyid”字段设置外键,操作步骤如下:
(1) 选择表:在树状列表视图中选择表“Course”。
(2) 单击鼠标右键:在其快捷菜单中选择“New / Foreign Key”命令,系统在“Object Details”视
图中打开“Foreign Key”对话框,如图1.17a所示。
- 14 -