数据库应用实验_第1页
数据库应用实验_第2页
数据库应用实验_第3页
数据库应用实验_第4页
数据库应用实验_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 实验1 、熟悉实验环境,并建立数据库一、实验目的:1 熟悉SQL SERVER 环境;2 使用SQL SERVER建立数据库;3理解关系数据库的基本概念二、考察知识点:关系数据库的基础知识1关系-表2主码(主键),外码(外键)3关系的完整性(1) 实体完整性(主码)(2) 参照完整性 (外码)(3) 用户定义的完整性(规则,默认)三、实验内容:1进入企业管理器建立一个教学管理数据库.包含以下表: 学生(学号,姓名 ,性别,年龄,所在系) 课程(课程号,课程名,先行课,学分)选课(学号,课程号,成绩)教师(教师号,姓名,职称)任课(教师号,课程号,时间)并为各表选择主键和外键2建立规则rule

2、_sex,和rule_age 使学生的性别只能为男或女 使学生的年龄在10 到 40 之间.3 建立默认值default_department 使所在系的默认值为计算机。4 输入一些数据 5检验实体完整性,参照完整性,规则,及默认(1) 在学生表中输入(95004,何键,男,20,计算机)。如果数据无法保存,解释数据无法保存的原因(2) 在选课表中输入(01002,1,70)。如果数据无法保存,解释数据无法保存的原因。(3) 在学生表中输入(95005,何键,male,20,计算机)。如果数据无法保存,解释数据无法保存的原因(4) 在学生表中输入(95005,何键,男,20)。保存数据,并查看

3、数据库中该记录。与输入比较该记录有何不同。三、实验步骤:u 建立数据库和表1在程序中选择MICROSOFT SQL SERVER2进入服务管理器,点击开始/继续3再进入企业管理器,点击MICROSOFT SQL SERVERS 点击SQL SERVER组,点击服务器,点击数据库 4 在数据库文件夹下列出了服务器上的所有数据库 右键点击数据库,选择新建数据库,输入教学管理,并确定 5点击数据库文件夹下的教学管理,用右键点击表,选择新建表. 为表建立字段选择数据类型,选定关键字,最后保存表并命名。 6重复5建立多张表。 7 右键点击关系图,选择新建,从教学管理数据库中选择出课程,学生选课,教师,任

4、课五张表。 8 在关系图中用右键点击选课表,并选择关系,点击新建,从主键表和外键表中选择相应字段构造外键关系。 同理建立任课与教师,任课与课程的外键关系。保存关系图,并保存它对数据库的修改。 9 点击数据库文件夹下表,并用右键点击你新建的表,选择打开表,再选择返回所有行,输入一些数据。u 建立规则 1 从教学管理数据库下选择右键规则,并新键规则,在规则名中输入rule_sex,在文本中输入col=男 or col=女.确定 (col 表变量名,在SQL SERVER中变量名必须以开头) 2 右键点击规则rule_sex,选择属性,绑定列,从表中选择学生,再将未绑定的列中的性别添加到绑定列。 3

5、 同样可建立其它规则u 建立默认 1 从教学管理数据库下选择右键默认,并新键默认,在默认名中输入default_department,在文本中输入cs,确定 2 点击默认default_department,选择属性,绑定列,从表中选择学生,再将未绑定的列中的所在系添加到绑定列。 3同样可以建立其它默认。实验2 、SQL 一、实验目的:熟悉SQL二、考察知识点 SQL 语法三、实验内容:1进入SQL SERVER 中的查询分析器。2 利用CRETAE DATABASE 建立教学管理数据库。 3 使用CREATE TABLE 建立表 学生(学号,姓名 ,性别,年龄,所在系) 课程(课程号,课程名

6、,先行课,学分)选课(学号,课程号,成绩)教师(教师号,姓名,职称)任课(教师号,课程号,时间)(1)通过语句PRIMARY KEY ,FOREIGN KEY建立主键和外键 (2)通过语句CHECK 使学生表中的性别为男或女,年龄为10到40。(3)通过语句 DEFAULT使所在系的默认值为计算机4 练习使用INSERT INTO输入各表数据;用SELECT语句进行查询,利用DELETE语句删除记录,利用UPDATE语句对数据进行修改。四 实验步骤: 1进入查询分析器 2输入服务器名(你的计算机名),用户名:sa ,口令: (无)3 在界面上输入附:可将创建数据库表和插入数据在一段sql语句里

7、完成,代码参考如下: -创建和删除数据库时,当前数据库应是master数据库use mastergo- 如该数据库存在,则删除drop database 教学管理- 创建数据库 CREATE DATABASE 教学管理ON (NAME=MANAGER_DAT, FILENAME='D:MANAGERDAT.MDF', SIZE=10MB, MAXSIZE=50MB, FILEGROWTH=5)LOG ON (NAME=MANAGER_LOG, FILENAME='D:MANAGERLOG.LDF', SIZE=5MB, MAXSIZE=50MB, FILEGRO

8、WTH=5MB);GO USE 教学管理; GO- 创建数据表CREATE TABLE 学生(学号 CHAR(6) not null, 姓名 CHAR(10), 性别 char(2), 年龄 int, 所在系 char(16), primary key(学号)GOCREATE TABLE 课程(课程号 CHAR(6) not null, 课程名 char(16), 先行课 char(6), 学分 int, primary key(课程号)GOCREATE TABLE 选课(学号 CHAR(6) not null, 课程号 CHAR(6) not null, 成绩 int, primary ke

9、y(学号,课程号)GOCREATE TABLE 教师(教师号 CHAR(6) not null, 姓名 char(10), 职称 char(10), primary key(教师号)GOCREATE TABLE 任课(教师号 CHAR(6) not null, 课程号 char(6) not null, 时间 char(16), primary key(教师号,课程号)gocreate table 用户(用户编号 char(10) not null, 口令 char(10), 脚色 char(16), primary key(用户编号)use 教学管理;go- INSERT INTO 为各表输

10、入数据。insert into 学生 values('02001','张红','女',20,'计算机');insert into 学生 values('02002','王小红','女',20,'计算机');insert into 学生 values('02003','张平','男',19,'计算机');insert into 学生 values('02004','李健康',

11、'男',20,'计算机');insert into 学生 values('02005','廖兵','男',18,'计算机');insert into 学生 values('02006','贺红生','男',20,'计算机');insert into 学生 values('02007','丁辉','女',19,'计算机');insert into 学生 values('

12、;02008','肖明','男',21,'计算机');insert into 学生 values('02009','黄朋','女',20,'计算机');insert into 学生 values('02010','谭大兵','男',22,'计算机');insert into 课程 values('001','计算机基础','',2);insert into 课程 v

13、alues('002','数据结构','006',4);insert into 课程 values('003','数据库设计','005',4);insert into 课程 values('004','网络程序设计','007',4);insert into 课程 values('005','数据库原理','001',4);insert into 课程 values('006','

14、;PASCAL','001',3);insert into 课程 values('007','网络原理','001',4);insert into 选课 values('02001','001',78);insert into 选课 values('02001','002',86);insert into 选课 values('02002','003',87);insert into 选课 values('02002&#

15、39;,'004',75);insert into 选课 values('02003','001',80);insert into 选课 values('02003','003',67);insert into 选课 values('02004','002',58);insert into 选课 values('02004','005',49);insert into 选课 values('02005','004',80

16、);insert into 选课 values('02005','006',79);insert into 选课 values('02006','002',89);insert into 选课 values('02006','003',67);insert into 选课 values('02007','001',88);insert into 选课 values('02007','003',68);insert into 选课 val

17、ues('02008','001',63);insert into 选课 values('02008','004',60);insert into 选课 values('02009','003',73);insert into 选课 values('02009','004',72);insert into 选课 values('02010','001',57);insert into 选课 values('02010',

18、'002',76);insert into 教师 values('0001','肖新','助教');insert into 教师 values('0002','杨宾','讲师');insert into 教师 values('0003','王平','工程师');insert into 教师 values('0004','李进','副教授');insert into 教师 values(&#

19、39;0005','张建','教授');insert into 任课 values('0001','001','星期三第一讲');insert into 任课 values('0002','002','星期四第二讲');insert into 任课 values('0003','003','星期一第四讲');insert into 任课 values('0004','004',&#

20、39;星期五第三讲');insert into 任课 values('0005','005','星期三第三讲');insert into 任课 values('0002','006','星期六第一讲');insert into 任课 values('0003','007','星期二第一讲');insert into 用户 values('02001','02001','student');inse

21、rt into 用户 values('02002','02002','student');insert into 用户 values('admin','admin','admin');insert into 用户 values('0001','0001','teacher');-GO 起分隔作用 -USE 使其下命令在其后数据库下运行4点击工具栏上的 执行SQL 语句5如果执行成功,保存代码。(例如可命名为CREATE.SQL,以后要再建立此数据库使用

22、可直接打开该文件执行)。6 重开一个新窗口。完成 三.4。 实验3 、用PB建立登录界面及注册界面一、实验目的:1 掌握使用SQL SERVER专用接口连接数据库2 熟悉PB程序开发过程3 熟悉在PB中嵌入SQL。二、考察知识点:1 POWER BUILDER 连接数据库2 PB程序开发过程3 窗口的建立和编程(POWER BUILDER 8.0实用教程第四章)4 应用对象的建立和编程(POWER BUILDER 8.0实用教程第二章)5 嵌入SQL的使用 (POWER BUILDER 8.0实用教程第八章第八节)三、实验内容与步骤:1 在SQL SERVER 中打开教学管理数据库,并在其中增

23、加一个表:用户(用户编号,口令,角色),用以记录用户信息。输入几条记录。例如(111,123456,ADMIN),(1120,123,TEACHER),(95001,123,STUDENT)*如果用户是学生则用户编号为该学生学号.如果用户是教师则用户编号为该教师的教师号2 进入POWER BUILDER ,点击工具栏上的 database进入数据库画板。3 选择专用接口MSS MICROSOFT SQL SERVER,在其上击右键选择NEW PROFILE 。输入以下信息: PROFILE NAME:教学管理 SERVER :W3_xxx (你的计算机名) LOGID : SA PASSWOR

24、D: DATABASE : 教学管理 确定4 双击MSS MICROSOFT SQL SERVER下的教学管理。(连接该数据库)点击TABLES可以看见教学管理数据库中的所有表。右键点击表用户,选择EDIT DATA-GRID,则出现该表中的数据5 新建WORKSPACE。命名为STUDY.PBW参考POWER BUILDER 8.0实用教程PAGE 446 新建APPLICATION对象.命名为STUDY.PBL参考POWER BUILDER 8.0实用教程PAGE 45登录界面1 新建一个窗口W_LOGIN(POWER BUILDER 8.0实用教程PAGE 55)在窗口W_LOGIN放置

25、控件,界面如图。参考POWER BUILDER 8.0实用教程PAGE 632 对登录按钮编程:参考(POWER BUILDER 8.0实用教程PAGE 317)3 对APPLICATION对象编程(POWER BUILDER 8.0实用教程PAGE 52)在程序的最后加上OPEN(W_LOGIN)4 点击工具栏中的RUN图标,应用程序开始运行。 思考:新建三个窗口W_ADMIN,W_TEACHER,W_STUDENT。三个窗口上分别显示WELCOME ADMIN!,WELCOME TEACHER!,WELCOME STUDENT!。登录后如何根据角色不同而进入不同的窗口注册新用户界面1 建立

26、一个新窗口W_ADDUSER,并在窗口上放置控件, 界面如图.2 对确定按钮编程 参考(POWER BUILDER 8.0实用教程PAGE 207 ,INSERT INTO)3 将应用对象的OPEN事件程序的最后改为OPEN(W_ADDUSER,)4 点击工具栏中的RUN图标,运行应用程序。5 点击工具栏上的 database进入数据库画板 ,检查新数据是否进入用户表。 实验4 、菜单一、实验目的:1 熟悉菜单的建立2 熟悉窗口的类型3 熟悉OPENSHEET函数二、考察知识点MDI应用的建立 (POWER BUILDER 8.0实用教程第五章)三、实验内容与步骤:1 进入POWER BUIL

27、DER 打开工作空间STUDY.PBW。2 建立一个菜单对象,每个菜单项包含工具条和快捷键。命名为M_MAIN菜单如图。参考(POWER BUILDER 8.0实用教程PAGE 91)3 建立新窗口W_MAIN,在其属性WidowType下选择MDI。参考(POWER BUILDER 8.0实用教程PAGE 57)4 将菜单M_MAIN挂在窗口W_MAIN.参考(POWER BUILDER 8.0实用教程PAGE 98)5 打开菜单M_MAIN,在菜单项注册新用户的CLICKED事件下输入:OPENSHEET(W_ADDUSER,W_MAIN,6,ORIGINAL!)通过POWER BUILD

28、ER中的帮助查找OPENSHEET函数的使用说明。6 在菜单M_MAIN的菜单项层叠 的CLICKED事件下输入 W_MAIN.ARRANGESHEETS(CASCADE!).通过POWER BUILDER中的帮助查找ARRANGESHEETS函数的使用说明。并为菜单项平铺,陈列 的CLICKED事件编程。7 在菜单M_MAIN的退出 的CLICKED事件下输入close(parentwindow)8 通过popmenu()建立弹出式菜单。 参考(POWER BUILDER 8.0实用教程PAGE 99)9 将W_MAIN与W_LOGIN结合,使通过检测的合法用户可以进入W_MAIN。(1)

29、如果登录用户为ADIMN 则只能使用菜单管理员(2) 如果登录用户为student则只能使用菜单学生。(3) 如果登录用户为 TEACHER则只能使用菜单教师。 (提示:根据不同登录用户,决定菜单的ENABLED属性为TRUE 或 FALSE)10 运行应用程序。 菜单第一层退出 管理员 学生 教师 窗口 报表 帮助平均成绩人员统计图形统计层叠平铺陈列信息查询提交成绩修改密码学生选课成绩查询数据维护用户管理信息查询菜单第二层:管理员 :数据维护 学生信息 课程信息 用户管理 注册新用户 修改密码信息查询 学生查询 课程查询 实验5 、TreeView控件和游标一、实验目的:1 熟悉treevi

30、ew控件的属性,事件和函数。2 熟练使用游标二、考察知识点 1 treeview控件的使用。POWER BUILDER 8.0实用教程第四章) 2 游标的使用。POWER BUILDER 8.0实用教程第八章) 三、实验内容:1 新建一个窗口W_ENROLL,放置一个treeview控件,并选中该控件的CHECKBOXS属性,再放置其他控件。通过此窗口实现学生选课。该窗口如图: treeview控件为tr_1, 确定按钮为cb_1St_3St_42对窗口W_ENROLL的OPEN事件编程使数据所有课程罗列在树形视图中参考代码: string outname declare namecur cu

31、rsor for select 课程名 from 课程; open namecur; fetch namecur into :outname; do while sqlca.sqlcode=0 i=tv_1.insertitemlast(0,outname,1) fetch namecur into :outname; loop close namecur;注:(1)关于游标参考POWER BUILDER 8.0实用教程PAGE 208 (2)函数 insertitemlast的使用说明请通过POWER BUILDER中的帮助查找。(3) i定义为实例变量, 变量定义参考POWER BUILD

32、ER 8.0实用教程PAGE 1953 将窗口W_ENROLL与菜单M_AMIN连接。 打开菜单M_MAIN,在菜单项学生选课的CLICKED事件下输入:OPENSHEET(W_ENROLL,W_MAIN,6,ORIGINAL!)4 如果某学生通过W_LOGIN进入系统则将该学生的学号和姓名显示在静态文本编辑框st_3,和st_4中。为完成这一功能请在窗口W_ENROLL的OPEN事件增加程序。提示:SELECT 学号,姓名INTO :st_3.TEXT,st_4.TEXT FROM 学生 WHERE 5 对确定按钮编程。参考代码: int jstring course_idtreeviewi

33、tem tr_ifor j=1 to i tv_1.getitem(j,tr_i) if tr_i.statepictureindex=2 then select 课程号 into :course_id from 课程 where 课程名=:tr_i.label; insert into 选课(学号,课程号) values(:st_3.text,:course_id);end ifnext/当TreeView的CheckBoxes属性为True时,每个节点包含一个复选框。选中复/选框时,StatePictureIndex属性为2,未选中则为1。6 运行程序问题:如何避免同一学生多次选择同一课程

34、。 实验6 、数据窗口对象与数据窗口控件一、实验目的:1 熟悉数据窗口对象的建立2 熟练使用数据窗口控件5 熟悉数据窗口控件常用函数二、考察知识点:1 数据窗口对象2 数据窗口控件 POWER BUILDER 8.0实用教程第七章三、实验内容: 1 建立一个数据窗口对象D_S_DATA,使其包含学生表的所有数据。 POWER BUILDER 8.0实用教程PAGE 123显示风格:FREEFORM (显示风格POWER BUILDER 8.0实用教程PAGE 140)数据源:QUICK SELECT(数据源POWER BUILDER 8.0实用教程PAGE 127)3 新建一个窗口W_S_DA

35、TA,并放置数据窗口控件(DW_1)和命令按扭。界面如图 将数据窗口对象D_S_DATA与数据窗口控件DW_1关联。 POWER BUILDER 8.0实用教程PAGE 1264 对窗口W_DATA的OPEN事件,CLOSEQUERY事件和各命令按扭编程。参考POWER BUILDER 8.0实用教程PAGE 318通过POWER BUILDER中的帮助查找程序中出现的函数的使用说明。或在POWER BUILDER 8.0实用教程第九章查找。5 将窗口W_S_DATA与菜单M_AMIN连接。 打开菜单M_MAIN,在菜单项学生信息的CLICKED事件下输入:OPENSHEET(W_S_DATA

36、,W_MAIN,6,ORIGINAL!)6 运行程序。通过该界面对学生信息进行操作。并检查数据库中的数据是否变化。7 同样方式数据窗口对象D_C_DATA使其包含课程表的所有数据通过继承W_S_DATA,建立窗口W_C_DATA。参考POWER BUILDER 8.0实用教程PAGE 878 将数据窗口对象D_C_DATA与窗口W_C_DATA上的数据窗口控件DW_1关联。9 将窗口W_C_DATA与菜单M_AMIN连接。10 运行程序 实验7、查询一、实验目的:1 熟悉数据窗口控件的过滤函数2 熟悉带检索参数的数据窗口对象。二、考察知识点:1 数据窗口控件的过滤函数2 带检索参数的数据窗口对

37、象 POWER BUILDER 8.0实用教程第七章三、实验内容与步骤: 过滤函数1. 功能如图:窗口W_S_GRID,可分别按学号,姓名,所在系对学生信息进行查询。2. 建立一个数据窗口对象D_S_GRID,使其包含学生表的所有数据。显示风格:GRID数据源:QUICK SELECT3. 新建一个窗口W_S_GRID,并放置数据窗口控件,单选按扭及单行文本编辑框。界面如图。4. 对窗口W_S_GRID的OPEN事件编程。Dw_1.settransobject(sqlca)Dw_1.retrieve()5. 对rb_1的clicked事件编程。if this.checked=true then

38、sle_1.enabled=trueelsesle_1.enabled=falseend if同样对rb_2,rb_3的clicked事件编程。6. 对sle_1的MODIFIED事件编程。 dw_1.setfilter("学号="+"'"+this.text+"'")dw_1.filter()同样对sle_2,sle_3的modified事件编程。通过POWER BUILDER中的帮助查找setfilter函数的使用说明. Sle_1rb_17 将窗口W_S_GRID与菜单M_AMIN的学生查询关联。8 运行程序9

39、同理建立窗口课程查询,能实现对课程信息的查询。 带检索参数的数据窗口对象1 建立窗口W_S_GRADE。功能:学生登录进入系统,点击成绩查询,出现窗口W_S_GRADE,该窗口的数据窗口控件(DW_1)中显示该学生的所有所选课程成绩。3 建立数据窗口对象D_S_Grade.显示风格:GRID数据源:SQL SELECT。选择出选课表中的学号,成绩,和课程表中的课程名。参考POWER BUILDER 8.0实用教程PAGE 1294 设置参数SID。 (STRING类型)。将其放在学生.学号字段。参考POWER BUILDER 8.0实用教程PAGE 1354将数据窗口对象D_S_Grade与窗

40、口W_S_GRADE的数据窗口控件(DW_1)关联。5 对窗口W_S_GRADE的OPEN事件编程。Dw_1.settrnsobject(sqlca)Dw_1.retrieve(uid)*uid 为存放用户登录号的全局变量。5将窗口W_S_GRADE与菜单M_AMIN中的成绩查询关联。6运行程序实验8、数据窗口对象的update属性一、实验目的: 熟悉数据窗口对象的upadte属性设置。二、考察知识点: 数据窗口对象的upadte属性 POWER BUILDER 8.0实用教程第七章三、实验内容:1建立窗口W_T_GRADE。功能:教师登录进入系统,点击提交成绩,出现窗口W_T_GRADE,输入课程号,数据窗口控件(DW_1)中显示该课程的选课情况。其中成绩下的列可以输入成绩。2 建立数据窗口对象D_T_Grade.显示风格:GRID数据源:SQL SELECT。选择任课,学生,选课,三张表选择出选课表中学号,课程号,成绩,选择出学生表中姓名,所在系。3 设置参数Tid,Cid (STRING类型)。Tid

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论