数据库习题Word文档下载推荐.docx

上传人:b****5 文档编号:19448728 上传时间:2023-01-06 格式:DOCX 页数:18 大小:68.65KB
下载 相关 举报
数据库习题Word文档下载推荐.docx_第1页
第1页 / 共18页
数据库习题Word文档下载推荐.docx_第2页
第2页 / 共18页
数据库习题Word文档下载推荐.docx_第3页
第3页 / 共18页
数据库习题Word文档下载推荐.docx_第4页
第4页 / 共18页
数据库习题Word文档下载推荐.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

数据库习题Word文档下载推荐.docx

《数据库习题Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据库习题Word文档下载推荐.docx(18页珍藏版)》请在冰豆网上搜索。

数据库习题Word文档下载推荐.docx

典型习题

2、分析题

1.学生与教师教学模型

(1)有若干班级,每个班级包括:

班级号、班级名、专业、人数、教室

(2)每个班级有若干学生,学生只能属于一个班,学生包括:

学号、姓名、性别、年龄

(3)有若干教师,教师包括:

编号、姓名、性别、年龄、职称

(4)开设若干课程,课程包括:

课程号、课程名、课时、学分

(5)一门课程可由多名教师任教,一名教师可任多门课程。

(6)一门课程有多名学生选修,每名学生可选多门课,但选同一门课时,只能选其中一名教师。

解题要求:

(1)画出每个实体及其属性关系、实体间实体联系的(E-R)图。

(2)根据试题中的处理要求:

完成数据库逻辑模型,包括各个表的名称和属性。

 

(1)

(2)

班级(班级号,班级名,专业,人数,教室),主键:

班级号

学生(学号,姓名,性别,年龄,班级号),主键:

学号

教师(编号,姓名,性别,年龄,职称),主键:

编号

课程(课程号,课程名,课时,学分),主键:

课程号

选课(课程号,学号,成绩),主键:

课程号,学号

任课(课程号,编号,时间),主键:

课程号,编号

五.对于学生选课关系,其关系模式为:

student(sno,sname,sex,age);

course(cno,cname,teacher);

sc(sno,cno,grade)。

用关系代数完成以下查询:

1查询“李通”老师所教授课程的课程号和课程名;

2查询学号为“95002”学生选修的课程号、课程名、任课教师、和成绩;

3查询选了“王海”老师所教授课程的学生姓名;

4查询女生选修课程的课程号、课程名和任课教师;

5查询选了全了课程的学号和姓名。

请用关系代数完成如下查询:

(3分共15分)

答:

1∏cno,cnameσteacher=‘李通’(course)

2∏cno,cname,teacher,gradeσsno=’95002’(student∞sc)

3∏snameσteacher=’王海’(student∞sc∞course)

4∏cno,cname,teacher(σsex=‘女‘(student∞sc∞course)

5.∏sno,sname((∏sno,cnosc÷

∏cnocourse)∞student))

六.

请设计一个基于数据库管理的应用软件系统—学生学生信息处理系统模型,要求完成下列功能(本题共15分,每小题3分)

1.画出学生,课程,选课的ER图

2.设计该系统中可能要用到的数据表(写出各个表及其包含的各个字段)

3.画出该系统的功能模块图

4.由此设计模型来简述一下数据库设计的基本步骤。

5.请你来为这一软件选择一种数据库,说出数据库的名字,并简单说明一下选择的理由。

结果A=4,B=2

1

七.设T1,T2是如下两个事务:

T1:

A:

=A+3,B=B*3

T2:

=A*3,B=B+3

问1.若这个事务允许并发执行,则有多少种可能的正确结果?

2.请给出一个可串行化的调度,并给出执行结果?

3.若这2个事务都遵守两段锁协议,请给出一个产生死锁的调度。

答1.有两种可能的正确结果:

T1T2

T2T1

2.可串行化的调度

XlockAXlockA

XlockBwait

读A=0…

读B=0XlockA

A=A+3=3XlockB

B=B*3=3读A=3

Commit读B=9

UnlockAA=A*3=9

UnlockBB=B+3=12

Commit

UnlockA

UnlockB

结果:

A=9,B=12

3.产生死锁的例子:

XlockAXlockB

Waitwait

XlockBXlockA

Waitwait

八.SQL命令题

所有上机题目,请点击题目编号可查看答案

1001

查询全体信息系男同学信息情况 

select*fromstudentwheresdept='

信息系'

andsex='

男'

1002

查询选修了3号课的学生的学号和成绩

selectsno,gradefromscwherecno='

3'

1003

查询1989年以前出生的学生学号和姓名和出生日期(提示请用year(csrq)函数来取出生年号)

selectsno,sname,csrqfromstudentwhereyear(csrq)<

1989

1004

查询信息系所有女生的学号,姓名,及所在系

selectsno,sname,sdeptfromstudentwheresex='

女'

andsdept='

1005

查询课程名是数据库的课程号和学分

selectcno,ccreditfromcoursewherecname='

数据库'

1006

查询先行课号为5的课程号和课程名 

selectcno,cnamefromcoursewherecpno='

5'

1007

查询英语系90后的学生情况(注90年后出生的含90年)

英语系'

andyear(csrq)>

=1990

1008

查询计算机系或信息系中年龄超过21岁的同学情况.(设当前年为2010年,提示用当前年减去出生年再与21岁比较) 

计算机系'

and2010-year(csrq)>

21orsdept='

21

1009

请将3号课及4号课中成绩大于80分的学生的学号,课程号及成绩显示出来

select*fromscwherecno='

andgrade>

80orcno='

4'

80

1010

查询所有先行课程号为0且学分为2的课程名,先行课程号,及学分

selectcname,cno,cpno,ccreditfromcoursewhereccredit=2andcpno='

0'

2001

查询年龄在20-23岁之间(含20与23岁)的学生姓名,系别,年龄(用age表示)(请不要用between语句提交)当前年2010 

selectsname,sdept,2010-year(csrq)asagefromstudentwhere2010-year(csrq)<

=23and2010-year(csrq)>

=20

2002

查询选修过课程且成绩大于80分的所有学生的学号(不许重复) 

selectdistinctsnofromscwheregrade>

2003

请将选修了1号课或3号课课程的同学按课程号升序,成绩降序排序 

1'

orcno='

orderbycno,gradedesc

2004

请将选了1号课程且成绩在60分以上的同学按成绩降序排序 

60orderbygradedesc

2005

查询选修了1号课的,成绩大于60分,学号后2位数字含8的学号和成绩 

60and(snolike'

_______8'

orsnolike'

______8_'

2006

查询所有李姓的09级同学情况 

select*fromstudentwheresnamelike'

李%'

andsnolike'

09%'

2007

查询所有两字姓名的张姓85年后出生同学的姓名,性别与系别 

selectsname,sex,sdeptfromstudentwhereyear(csrq)>

1985andsnamelike'

张_'

2008

查询名字中第3个字为铃4月4号出生的学生的姓名和学号 

selectsname,snofromstudentwheresnamelike'

__铃%'

andmonth(csrq)=4andday(csrq)=4

2009

查询信息系所有不姓刘的同学的学号和姓名

selectsno,snamefromstudentwheresdept='

andsnamenotlike'

刘%'

2010

查询学分为3以上(不含3),且课程名中包含着'

数据'

二字的所有课程名及学分 

selectcname,ccreditfromcoursewhereccredit>

3andcnamelike'

%数据%'

3001

查询所有选修过数据库或信息系统课的学生的姓名,课程名及成绩 

selectsname,cname,gradefromstudent,course,scwherestudent.sno=sc.snoando=oand(cname='

orcname='

信息系统'

3002

查询选修了1号课且成绩大于80分的的同学的姓名,课程号及成绩 

selectsname,cno,gradefromstudent,scwherestudent.sno=sc.snoandcno='

3003

查询选了2号课的张姓,孙姓,女生姓名,课程号及成绩,并将成绩按降序排序 

2'

and(snamelike'

张%'

orsnamelike'

孙%'

)orderbygradedesc

3004

查询计算机系选修了数据库课的所有男生的姓名及该课的成绩 

selectsname,gradefromstudent,sc,coursewherestudent.sno=sc.snoando=oandsex='

andcname='

3005

查询09级选修了数据库课的最高成绩.最低成绩和平均成绩(注用as来表示最低,最高及平均成绩 

selectmax(grade)as最高成绩,min(grade)as最低成绩,avg(grade)as平均成绩fromsc,coursewhereo=oandsnolike'

3006

查询李勇同学选修的成绩在80分以上的课程的学分总和 

selectsum(ccredit)as学分总和fromstudent,sc,coursewherestudent.sno=sc.snoando=oandsname='

李勇'

3007

查询09级末位学号在15之前的选修过的课程中至少有一门课为4个学分的同学的姓名,课程名,学分(提示请考虑用右截取函数right(sno,2))

selectsname,cname,ccreditfromstudent,sc,coursewherestudent.sno=sc.snoando=oandstudent.snolike'

andccredit>

=4andright(student.sno,2)<

15

3008

查询计算机系所有选了数据库成绩在80分以上的同学的姓名及成绩 

selectsname,gradefromstudent,sc,coursewherestudent.sno=sc.snoando=oandsdept='

3009

查询李勇同学所学课程的学分为2学分以上课程的学分总和及成绩总和(注用as总学分)

selectsum(ccredit)as总学分,sum(grade)as总成绩fromstudent,sc,coursewherestudent.sno=sc.snoando=oandsname='

2

3010

查寻选了1号课,计算机系,女生的人数.

selectcount(*)as女生人数fromstudent,sc,coursewherestudent.sno=sc.snoando=oandsex='

ando='

4001

查询同时选修了1号课和3号课的李姓同学的姓名及系

selectsname,sdeptfromsc,studentwheresc.snoin(selectsnofromscwherecno='

)andcno='

andstudent.sno=sc.snoandsnamelike'

4002

查询同时选修了数据库及数学的同学的学号

selectdistinctsnofromscwheresnoin(selectsnofromscwherecnoin(selectcnofromcoursewherecname='

))andcnoin(selectcnofromcoursewherecname='

数学'

4003

查询选修了全部课程的同学的姓名

selectsnamefromstudent,scwherecno=all(selectcnofromcourse)andstudent.sno=sc.sno

4004

查询与李勇同在一个系,且年龄比他小的同学的姓名(提示用year(csrq)来进行比较)

selectsnamefromstudentwheresdeptin(selectsdeptfromstudentwheresname='

)andyear(csrq)>

(selectyear(csrq)fromstudentwheresname='

4005

查询比计算机系平均年龄都大的其它系学生姓名,系和年龄。

(注意不含计算机系的学生)提示设当前年为2010,平均年龄可用avg(2010-year(csrq))表示

selectsname,sdept,(2010-year(csrq))as年龄fromstudentwhere(2010-year(csrq))>

all(selectavg(2010-year(csrq))fromstudentwheresdept='

)andsdept<

>

'

4006

查询王名同学没有选的课程名(提示:

就是查询那课程表中所有的但是王名没有选过的课程)

selectcnamefromcoursewherecnonotin(SELECTcnoFROMSCwheresnoin(selectsnofromstudentwheresname='

王名'

))

4007

查询选修了1号课并且成绩比全班1号课平均成绩低的同学学号及成绩 

selectsno,gradefromscwheresnoin(selectsnofromscwherecno='

)andgrade<

(selectavg(grade)fromscwheresnoin(selectsnofromscwherecno='

4008

查询选修的学分总数超过8个的学生的姓名 

selectsnamefromstudentwheresnoin(selectsnofromsc,coursewhereo=ogroupbysnohavingsum(ccredit)>

8)

4009

查询选修了比王名学分数低的其它同学姓名 

selectsnamefromstudentwheresnoin(selectsnofromsc,coursewhereo=ogroupbysnohavingsum(ccredit)=(selectsum(ccredit)fromsc,coursewhereo=oandsnoin(selectsnofromstudentwheresname='

))andsname<

4010

查询比平均成绩比李勇的平均成绩高的同学李姓或王姓姓名 

selectsnamefromstudentwheresnoin(selectsnofromscgroupbysnohavingavg(grade)>

(selectavg(grade)fromscwheresnoin(selectsnofromstudentwheresname='

)))and(snamelike'

orsnamelike'

王%'

5001

查询所有选修课平均成绩大于85分并且单科成绩大于80分的同学的学号和平均成绩。

selectsno,avg(grade)as'

平均成绩'

fromscgroupbysnohavingavg(grade)>

85andmin(grade)>

5002

查询至少选修过2门课程且平均成绩在80分以上的的信息系学生学号,及平均成绩 

80andsnoin(selectsnofromstudentwheresdept='

)andcount(*)>

=2

5003

查询各系90后的女生人数,分别按系,女生人数表示出来。

selectsdept,count(*)as'

90后女生人数'

fromstudentwhereyear(csrq)>

=1990andsex='

groupbysdept

5004

查询各门课程所选的人数,然后按照选课人数降序排序,并用课程号及所选人数表示出来 

selectcno,count(*)as'

所选人数'

fromscgroupbycnoorderbycount(*)desc

5005

查询计算机系所选课程中每个同学的平均成绩,最低成绩,最高成绩,并用学号和平均成绩\最低成绩,最高成绩表示出来 

min(grade)as'

最低成绩'

max(grade)as'

最高成绩'

fromscwheresnoin(selectsnofromstudentwheresdept='

)groupbysno

5006

查询选修的学分数超过8个学分并且每门课的学分大于等于2的同学姓名学分数和 

selectsname,sum(ccredit)fromstudent,sc,coursewheresc.sno=student.snoando=ogroupbysnamehavingsum(ccredit)>

8andmin(ccredit)>

5007

查询个人平均成绩比王名平均成绩高的,同学姓名及平均成绩 

selectsname,avg(grade)as'

fromstudent,scwherestudent.sno=sc.snogroupbysnamehavingavg(grade)>

5008

查询信息系仅选过一门课且成绩在80分以上(含80)的的同学学号 

=80andsnoin(selectsnofromstudentwheresdept='

)andcount(*)=1

5009

查询数据库,数学,信息系统这三门课的选课人数,并用课程名和选课人数表示出来 

selectcname,count(*)as'

选课人数'

fromsc,coursewhereo=oandcnamein('

'

)groupbycname

5010

查询每位同学选修课的平均成绩,最低成绩,最高成绩,并按平均

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

当前位置:首页 > 幼儿教育 > 唐诗宋词

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

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