数据库系统原理实验讲义newWord格式文档下载.docx

上传人:b****6 文档编号:17706141 上传时间:2022-12-08 格式:DOCX 页数:49 大小:514.69KB
下载 相关 举报
数据库系统原理实验讲义newWord格式文档下载.docx_第1页
第1页 / 共49页
数据库系统原理实验讲义newWord格式文档下载.docx_第2页
第2页 / 共49页
数据库系统原理实验讲义newWord格式文档下载.docx_第3页
第3页 / 共49页
数据库系统原理实验讲义newWord格式文档下载.docx_第4页
第4页 / 共49页
数据库系统原理实验讲义newWord格式文档下载.docx_第5页
第5页 / 共49页
点击查看更多>>
下载资源
资源描述

数据库系统原理实验讲义newWord格式文档下载.docx

《数据库系统原理实验讲义newWord格式文档下载.docx》由会员分享,可在线阅读,更多相关《数据库系统原理实验讲义newWord格式文档下载.docx(49页珍藏版)》请在冰豆网上搜索。

数据库系统原理实验讲义newWord格式文档下载.docx

Updata学生

Set系编号#=002

Where姓名=“张三”and系编号#=001

(5)统计学生总人数。

Selectcount(学号#)

From学生

(6)显示计算机系的学生的信息。

Select*

From教师,任课,课程

Wher课程名=”数据库原理”and课程.课程编号#=任课.课程编号#and任课.教师编号#=教师.教师编号#

(7)查找法律系的系办电话。

Select系办电话

From院系

Where系名=“法律系”

(8)删除2000级的学生记录。

Deletefrom学生

Where年级=“2000级”

(9)将计算机系教师张明的职称升为教授。

Updata教师

Set职称=“教授”

Where姓名=”张明”and教师编号#=(select教师编号#

Where系名=“计算机系”)

(10)统计计算机系教师张明的任课门数。

Selectcount(课程编号#)

From院系,教师,任课

Where院系.系名=“计算机系”and院系.系编号#=教师.系编号#

and教师.教师编号#=任课.教师编号#

(11)统计每个系的教师的人数。

Select系编号#,count(教师编号#)

From教师

Groupby系编号#

(12)查找教授数据库原理的教师的姓名。

Select教师.姓名

Where课程名=“数据库原理”and课程.课程编号#=任课.课程编号#and任课.教师编号#=教师.教师编号#

(13)删除1020号教师的任课记录。

Deletefrom任课

Where教师编号#=“1020”

(14)将课程数据库原理的学分设为4.

Updata课程

Set学分=4

Where课程名=数据库原理

(15)学生王明每选一个学分交费100元,统计它的选课总费用。

Selectsum(学分)*100

From学生,课程,选课

Where学生.学号#=选课.学号#and选课.课程编号=课程.课程编号#

(16)统计20岁的学生总人数。

Selectcount(age)

Where学生.年龄=20

(17)选修数据库原理的学生名单

secect学生.姓名

from学生,课程,选课

where课程.课程名=“数据库原理”and课程.课程编号#=选课.课程编号#and选课.学号#=学生.学号#

(18)删除20030号学生的选课记录

deletefrom选课

where学号#=“200030”

(19)建立一个存储过程,通过输入学号,显示学生的姓名,选课课程名,成绩,并统计出选课门数。

Createprocedurereport@idchar(8)as

Select学生.姓名,课程.课程名,选课.成绩,count(课程.课程编号#)

Where学生.学号#=@idand选课.学号#=学生.学号#and选课.课程编号#=课程.课程编号#

(20)建立一个存储过程,通过输入教师编号,显示教师的姓名,任课课程名,教师院系。

Createprocedurereport@idchar(8)as

Select教师.姓名,课程.课程名,院系.系名

From院系,课程,教师,任课

Where教师.教师编号#=@idand任课.教师编号#=教师.教师编号#and课程.课程编号#=任课.课程编号and教师.系编号=院系.系编号

(21)建立一个存储过程,输入系编号显示学生的学号,姓名。

Createprocedurereport@idchar(8)as

Select学号#,姓名

Where系编号#=@id

2、有一数据库,包含以下基本表:

(1)建立销售明细表,销售编号为主码,外码为商品编号,会员号。

Createtable销售明细

(销售编号#char(4),

商品编号#char(4),

会员号#char(4),

数量integer,

时间time,

primarykey(销售编号#),

foreignkey(商品编号#)references商品(商品编号#),

foreignkey(会员号#)references会员(会员号#),

(2)添加一条商品记录(00697,雕牌肥皂,浙江,2.00,日化)

insertinto商品values(00697,”雕牌肥皂”,”浙江”,2.00,”日化”)

(3)产生00695号产品的销售细帐。

From销售明细

Where商品编号#=00695

(4)根据商品编号00695查找该商品的销售总量。

Selectsum(数量)

(5)根据会员号104095删除其会员记录。

Deletefrom会员

Where会员号#=104095

(6)建立一个黄金会员视图。

(消费总金额高于5000的会员为黄金会员)

createview黄金会员

as(select*

from会员

where消费总金额>

5000)

(7)建立一个触发器,实现当输入一条销售记录时,将消费金额自动累加到会员的消费总金额。

Createtriggertriname

On销售明细

Forinsertas

Updata会员

Set消费总金额=消费总金额+sum(销售明细.数量*商品.单价)

Where销售明细.会员号#=会员.会员号#and商品.商品编号#=销售明细.商品编号#

实验二PowerBuilder编程基础

2、掌握PowerBuilder语法及函数的使用。

1、对w_data的open事件编程,使w_data一打开dw_1中就显示数据。

(1)显示数据

Dw_1.settransobjict(splca)

Dw_1.retrieve()

(2)添加intI

I=dw_1.insertrow(0)

Dw_1.scrolltorow(i)

Dw_1.setfocus()

删除dw_1.deleterow(0)

保存intj

j=dw_1.updata()

ifI=-1then

messagebox(“information”,“数据无法保存”)

endif

关闭close(parent)

(3)对w_data的closequery事件编程,使dw_1中的数据发生改变而又未保存就退出窗口时给用户一个消息框提示。

Integerm

Ifdw_1.modifiedcount()+deletedcount()>

0then

M=messagebox(“信息”“数据已改变,是否保存”,question!

YesNoCance!

Ifm=1then

Ifdw_1.updata()=-1then

Messagebox(“information”,”无法保存数据”)

Else

Messagebox(“information”,”已保存数据”)

Endif

Return0

Elseifm=2then

Elseifm=3then

Return1

2、ddlb_1中为各系名称,当选择了一个系后tv_1显示该系学生姓名,对ddlb_1的selectionchanged事件编程。

IntI

Stringoutname

Declarenamecurcursorfor

Selectdistinctdepartment

Wheredepartment=:

ddlb_1.text

Opennamecur;

Ifsqlca.sqlcode=-1then

Messagebox(“sqlerror“,sqlca,sqlerrtext)

Else

Fetchnamecurinto:

outname;

Dowheresqlca.sqlcode=0

Frtchnamecurinto:

I=tv_1.insertitemlast(),outname,2)

L00pwhilesqlca.sqlcode=0

Tv_1:

deleteitem(i)

Endif

Closenamecur;

3、ddlb_1为下拉列表框,st_1,st_2为静态文本框。

该窗口打开时,ddlb_1从数据库中的院系表中读出了所有系名,当选择了某系时st_1,st_2分别显示该系系领导和系办电话。

(1)在w_1的open事件下编程。

Ddlb_1.additem(outname)

L00p

(2)在ddlb_1的selectionchanged事件下编程。

Select系领导,系办电话

Where系名=:

:

st_1.text=系领导

st_2.text=系办电话

4、w_query上有控件ddlb_1和dw_1,在ddlb_1中选择系名后dw_1中显示该系的学生。

(1)如果通过带参数的数据窗口对象来完成,请问dw_1中的数据窗口对象的数据源为quickselect还是sqlselect。

答:

sqlselect。

(2)为ddlb_1的selectionchanged事件编程。

Dw_1.settransobject(sqlca)

Dw_1.retricve(ddlb_1.text)

5、当选择了某单选框并输入选择条件,按回车后,dw_1中显示满足条件的记录。

请对以下控件编程。

(1)rb_1

sle_1.enabled=true

(2)sle_1

dw-1.setfilter(“姓名=‘”+sle_1.text+”‘”)

dw_1.filter()

cb_1.visible=true

(3)cb_1

rb_1.checked=false

rb_2.checked=false

rb_3.checked=false

rb_4.checked=false

sle_1.text=“”

sle_2.text=“”

sle_3.text=“”

sle_4.text=“”

sle_1.enable=false

sle_2.enable=false

sle_3.enable=false

sle_4.enable=false

6、lv_1为列表视图,报表风格,当w_list打开时lv_list中显示数据库中学生表的所有学生的信息。

请为w_1的open事件编程。

IntegerI,j,outage

Stringoutname,outsex,soutage

Lv_1.addcolumn(“姓名”,left!

800)

Lv_1.addcolumn(“性别”,left!

500)

Lv_1.addcolumn(“年龄”,left!

200)

Select姓名,性别,年龄

From学生;

Ifsqlca.sqlcode=1then

Messagebox(“sql.error”,sqlca.sqlerrtext)

Else

I=1

Do

outname,:

outsex,:

outage;

J=I

Lv_1.setitem(I,2,outname)

Lv_1.setitem(I,2,outsex)

Soutage=string(outage)

Lv_1.setitem(I,3,soutage)

I++

Loopwhilesqlca.sqlcode=0

Lv_1.deleteitem(j)

Endif

实验三计算器设计

2、掌握PowerBuilder数据窗口的创建及使用。

1、用PowerBuilder实现如下计算器(图1):

(图1)

(CTRL+C:

复制按钮及按钮中的代码;

CTRL+T:

复制按钮但不复制按钮中相应的代码)

(1)声明变量

decimaldata//保存中间结果

charstr//保存按下的运算符

intflag//flag=1表示按下的数字是前面数字的一部分,flag=0表示按下的数字是一个新的数字的开始

 

(2)十个数字按钮和小数点按钮代码

ifflag=0then

sle_1.text="

"

flag=1

sle_1.text=sle_1.text+this.text

(3)+、-、*、/运算按钮代码

choosecasestr

case'

*'

sle_1.text=string(dec(sle_1.text)*data)

/'

sle_1.text=string(data/dec(sle_1.text))

+'

sle_1.text=string(dec(sle_1.text)+data)

-'

sle_1.text=string(data-dec(sle_1.text))

endchoose

data=dec(sle_1.text)

str=this.text

flag=0

(4)“清除”按钮代码

sle_1.text="

data=0

str='

'

(5)“=”按钮代码

(6)“应用程序”open事件代码

open(w_calculator)

2、求一元二次方程的实根:

ax2+bx+c=0(如图2)

建六个静态文本框(st_1、st_2、st_3、st_4、st_5),五个单行编辑框(sle_1、sle_2、sle_3、sle_4、sle_5),三个命令按钮(cb_1、cb_2、cb_3)

(图2)

(1)“求解”按钮代码

deca,b,c,d,x1,x2

a=dec(sle_1.text)

b=dec(sle_2.text)

c=dec(sle_3.text)

d=b*b-4*a*c

ifd>

=0then

x1=(-b+sqrt(d))/(2*a)

x2=(-b-sqrt(d))/(2*a)

sle_4.text=string(round(x1,6))

sle_5.text=string(round(x2,6))

else

messagebox("

提示"

"

方程无实根"

(2)“清除”按钮代码

sle_2.text="

sle_3.text="

sle_4.text="

sle_5.text="

(3)“退出”按钮代码

close(w_aa)

(4)应用程序open事件代码

open(w_aa)

实验四数据窗口设计

1、建立数据库有数据表

(1)建立学生信息表s:

表1

sno

sname

sex

age

sedept

9801

李铭

19

计算机软件

9802

刘晓鸣

20

计算机应用

9806

刘成刚

21

9807

王铭

22

9808

宣明尼

18

9809

柳红利

9803

李明

9804

张鹰

9805

刘竟静

创建S表的SQL命令如下:

createtableS(snochar(4),snamechar(8),sexchar

(2),agechar

(2),sdeptchar(10));

insertintoSvalues('

9801'

'

李铭'

男'

19'

计算机软件'

);

9802'

刘晓鸣'

20'

计算机应用'

9806'

刘成刚'

21'

9807'

王铭'

22'

9808'

宣明尼'

女'

18'

9809'

柳红利'

9803'

李明'

9804'

张鹰'

9805'

刘竟静'

select*fromS;

(2)建立学生课程信息表c:

表2

cno

cname

cdept

tname

C1

PASCAL

王晓名

C2

数据结构

刘红

C6

WINDOW技术

吴志刚

C3

离散数学

李严劲

C4

计算机原理

C5

数据库原理

C9

系统结构

C8

编译原理

蒋莹岳

创建C表的SQL命令如下:

createtablec(cnochar(4),cnamechar(10),cdeptchar(10),tnamechar(8));

insertintocvalues('

c1'

PASCAL'

王晓名'

c2'

数据结构'

刘红'

c6'

WINDOW技术'

吴志刚'

c3'

离散数学'

李严劲'

c4'

计算机原理'

c5'

数据库原理'

insertintocvalues('

c9'

系统结构'

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1