《数据库系统原理》(2)

2019-08-29 23:48

check (性别=‘男’或‘女’), )

(2) 建立教师表,主码为教师编号,外码为系编号。 Create table 教师

(教师编号# char(8) not null, 姓名 char(8) not null, 年龄 smallint, 职称 char(4), 系编号 integer,

primary key (教师编号#),

foreign key (系编号) references 院系 (系编号#), )

(3) 建立选课表,主码为学号和课程编号,外码为学号,课程编号。 Create table 选课

(学号# char(8),

课程编号# char(4), 成绩 smallint,

primary key (学号#, 课程编号#),

foreign key (学号#) references 学生(学号#),

foreign key (课程编号#) references 课程(课程编号#), check ((成绩 is null ) or (成绩 between 0 and 100 )), )

(4) 将学生张三从编号为001的系转到编号为002的系。

Updata 学生

Set 系编号# = 002

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

(5) 统计学生总人数。

Select count (学号#) From 学生

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

Select *

From 教师,任课,课程

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

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

Where 系名= “法律系”

第 6 页 共 17 页

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

Delete from 学生

Where 年级= “2000级”

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

Updata 教师

Set 职称= “教授”

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

From 院系

Where 系名= “计算机系”)

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

Select count (课程编号#) From 院系,教师,任课

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

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

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

Group by 系编号#

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

Select 教师.姓名

From 教师,任课,课程

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

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

Delete from 任课

Where 教师编号# = “1020”

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

Updata 课程 Set 学分 = 4

Where 课程名= 数据库原理

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

Select sum (学分)* 100 From 学生,课程,选课

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

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

Select count (age)

第 7 页 共 17 页

From 学生

Where 学生.年龄 = 20

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

secect 学生.姓名

from 学生,课程,选课

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

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

delete from 选课

where 学号# = “200030”

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

出选课门数。

Create procedure report @id char(8) as

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

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

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

Create procedure report @id char(8) as Select 教师.姓名,课程.课程名,院系.系名 From 院系,课程,教师,任课

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

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

Create procedure report @id char (8) as Select 学号#,姓名 From 学生

Where 系编号# = @id

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

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

Create table 销售明细 (销售编号# char(4), 商品编号# char(4), 会员号# char(4), 数量 integer, 时间 time,

primary key (销售编号#),

foreign key (商品编号#) references 商品(商品编号#),

第 8 页 共 17 页

foreign key (会员号#) references 会员(会员号#), )

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

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

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

Select *

From 销售明细

Where 商品编号# = 00695

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

Select sum (数量) From 销售明细

Where 商品编号# = 00695

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

Delete from 会员

Where 会员号# = 104095

(6)建立一个黄金会员视图。(消费总金额高于5000的会员为黄金会员)

create view 黄金会员 as (select *

from 会员

where 消费总金额 > 5000 )

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

Create trigger triname On 销售明细 For insert as Updata 会员

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

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

三、 POWER BUILDER编程 1、

(1)对w_data的open事件编程,使w_data一打开dw_1中就显示数据。 Dw_1. settransobjict (splca) Dw_1. retrieve( )

(2)添加 int I

第 9 页 共 17 页

I= dw_1. insertrow (0) Dw_1. scrolltorow (i) Dw_1. setfocus ( ) 删除

dw_1 . deleterow (0) 保存 int j

j= dw_1 . updata ( ) if I= -1 then

messagebox (“information” , “数据无法保存”) end if 关闭

close (parent )

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

If dw_1.modifiedcount ( ) + deletedcount ( )>0 then M = messagebox (“信息”“数据已改变,是否保存”,question!YesNoCance!) If m=1 then

If dw_1.updata ( )= -1 then

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

Messagebox (“information”,”已保存数据”) End if Return 0

Elseif m=2 then Return 0

Elseif m=3 then Return 1

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

String outname

Declare namecur cursor for Select distinct department From 学生

Where department = :ddlb_1.text Open namecur ;

If sqlca.sqlcode = -1 then

Messagebox ( “sql error “, sqlca ,sqlerrtext ) Else

Fetch namecur into :outname ;

第 10 页 共 17 页


《数据库系统原理》(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:小学数学奥数测试题-圆与扇形-2015人教版

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: