数据库第三章习题.docx

上传人:b****4 文档编号:24307673 上传时间:2023-05-26 格式:DOCX 页数:17 大小:24.18KB
下载 相关 举报
数据库第三章习题.docx_第1页
第1页 / 共17页
数据库第三章习题.docx_第2页
第2页 / 共17页
数据库第三章习题.docx_第3页
第3页 / 共17页
数据库第三章习题.docx_第4页
第4页 / 共17页
数据库第三章习题.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

数据库第三章习题.docx

《数据库第三章习题.docx》由会员分享,可在线阅读,更多相关《数据库第三章习题.docx(17页珍藏版)》请在冰豆网上搜索。

数据库第三章习题.docx

数据库第三章习题

第3章SQL语言习题

一、单项选择题

1.SQL语言是()的语言,易学习。

A.过程化B.非过程化C.格式化D.导航式

2.SQL语言是()语言。

A.层次数据库B.网络数据库C.关系数据库D.非数据库3.SQL语言具有()的功能。

A.关系规范化、数据操纵、数据控制B数据定义、数据操纵、数据控制

C.数据定义、关系规范化、数据控制D.数据定义、关系规范化、数据操纵

4.关于SQL语言,下列说法正确的是()。

A数据控制功能不是SQL语言的功能之一

BSQL采用的是面向记录的操作方式,以记录为单位进行操作

CSQL是非过程化的语言,用户无须指定存取路径

DSQL作为嵌入式语言语法与独立的语言有较大差别

5.对表中数据进行删除的操作是()。

D.DELETEA.DROPB.ALTER

C.UPDATE

6.SQL语言的数据操纵语句包括SELECT,INSERT,UPDATE和DELETE等。

其中最重要的,也是使用最频繁的语句是()。

A.SELECTB.INSERT

C.UPDATED.DELETE

7.SQL语言具有两种使用方式,分别称为交互式SQL和()。

解释式SQLA.提示式SQLB.用户式SQLC.嵌入式SQL

D.8.SQL语言中,实现数据检索的语句是()。

C.UPDATE

B.INSERT

D.DELETEA.SELECT

9.下列SQL语句中,修改表结构的是()。

B.CREATEC.UPDATED.DELETEA.ALTER

10.在SQL中,用户可以直接操作的是()。

B视图D基本表和视图C存储文件A基本表

11.在SQL的查询语句中,对应关系代数中“投影”运算的语句是()。

BFROMAWHERECSELECT

DHAVING

12.在SELECT语句中,需对分组情况满足的条件进行判断时,应使用()。

BGROUPBYCORDERBYAWHEREDHAVING13.SQL中,与“NOTIN”等价的操作符是()。

D<>ALLB<>ANYC=ALLA=ANY

14.视图建立后,在数据字典中存放的是()。

A查询语句B组成视图的表的内容

D产生视图的表的定义视图的定义C

它们,SC和学生选课表C课程表、S题基于这样的三个表即学生表18到第15第

的结构如下:

S(S#,SN,SEX,AGE,DEPT)

C(C#,CN)

SC(S#,C#,GRADE)

其中:

S#为学号,SN为姓名,SEX性别,AGE为年龄,DETP为系别,C#为课程号,CN为课程名,GRADE为成绩。

15.检索所有比“王华”年龄大的学生姓名、年龄和性别。

正确的SELECT语句是()。

A.SELECTSN,AGE,SEXFROMSWHEREAGE>(SELECTAGEFROMSWHERESN='王华')

B.SELECTSN,AGE,SEXFROMSWHERESN='王华'

C.SELECTSN,AGE,SEXFROMSWHEREAGE>(SELECTAGEWHERESN='王华')

D.SELECTSN,AGE,SEXFROMSWHEREAGE>王华.AGE

16.检索选修课程“C2”的学生中成绩最高的学生的学号。

正确的SELECT语句是()。

A.SELECTS#FROMSCWHEREC#='C2'ANDGRADE>=(SELECTGRADEFROMSC

WHEREC#='C2')

B.SELECTS#FROMSCWHEREC#='C2'ANDGRADEIN(SELECTGRADEFROMSC

WHEREC#='C2')

C.SELECTS#FROMSCWHEREC#='C2'ANDGRADENOTIN(SELECTGRADEFROM

SCWHEREC#='C2')

(SELECTGRADEFROMSC

>=ALLANDGRADESELECTS#FROMSCWHEREC#='C2'.DWHEREC#='C2')语句是SELECT17.检索学生姓名及其所选修课程的课程号和成绩。

正确的()。

,SC.C#,FROMSWHERES.S#=SC.S#SC.GRADEA.SELECTS.SNSC.GRADEFROMSCWHERES.S#=SC.GRADEB.SELECTS.SN,SC.C#,

FROMS,SCWHERES.S#=SC.S#C.SELECTS.SN,SC.C#,SC.GRADE

FROMS,SCD.SELECTS.SN,SC.C#,SC.GRADE

,并要求按总.检索选修四门以上课程的学生总成绩(不统计不及格的课程)18的语句是()。

成绩的降序排列出来。

正确的SELECTA.SELECTS#,SUM(GRADE)FROMSCWHEREGRADE>=60GROUPBYS#ORDER

BY2DESCHAVINGCOUNT(*)>=4B.SELECTS#,SUM(GRADE)FROMSCWHEREGRADE>=60GROUPBYS#HAVING

COUNT(*)>=4ORDERBY2DESCCOUNTWHERESUMC.SELECTS#,(GRADE)FROMSCGRADE>=60HAVING

(*)>=4GROUPBYS#ORDERBY2DESCDESC2BYORDERGRADE>=60WHERESCFROM(GRADE)SUMS#,SELECTD.

GROUPBYS#HAVINGCOUNT(*)>=4

19.假定学生关系是S(S#,SNAME,SEX,AGE),课程关系是C(C#,CNAME,TEACHER),学生选课关系是SC(S#,C#,GRADE)。

要查找选修“COMPUTER”课程的:

“女”学生姓名,将涉及到关系()。

A.SB.SC,CC.S,SCD.S,C,SC

20.下面的数据库的表中,若职工表的主关键字是职工号,部门表的主关键字是部门号,SQL操作()不能执行。

职工表部门表

职工号职工名部门号工资

主任部门名部门号

01李红580001人事处01高刘00067蒋0财务

072王020许教务65张030学生杜04王(‘025',‘删中除行A.从职工表',‘03',720)芳将行插入到职工表中(‘005',‘乔兴',‘04',750)B.

的工资改为700‘001'C.将职工号为的部门号改为D.将职工号为‘038'‘03'CREATETABLEstudent(NOCHAR(4)21student语句创建一个表:

.若用如下的SQL表,NOTNULL,NAMECHAR(10)NOTNULL,SEXCHAR

(2),AGEINT)可以插到student)。

中的是(

)NULL,NULL,,男,,‘1031'‘曾华'23)曾华,B.(‘1031'‘'(A.),,曾华,C.(NULL‘'‘男'‘23'‘‘1031'D.(,NULL,男23',)

)22.数据库中建立索引的目的是为了(

AD提高安全性C加快建表速度节省存储空间加快存取速度B

)23.视图是数据库系统三级模式中的(A外模式内模式CD模式映像B模式)。

24.下列说法不正确的是(

A基本表和视图一样,都是关系

B可以使用SQL对基本表和视图进行操作

C可以从基本表或视图上定义视图

D基本表和视图中都存储数据

二、综合题

1.已知关系R如图所示

R

CBA

97b184

92b297

9897b372b198

84b2989598b388b199

94b299

图关系R

试用SQL语言实现下列操作:

(1)按属性A分组,求出每组中在属性C上的最大值和最小值,且将它们置于视图RVE中。

CreateviewRVE(A,CMAX,CMIN)

As

Selectmax(C),min(C)

FromR

GroupbyA;

(2)在视图RVE中查询属性A=‘98'的记录。

Select*

FromRVE

WhereA=‘98';

2.已知学生表S和学生选课表SC其关系模式如下:

S(SNO,SN,SD,PROV);SC(SNO,CN,GR),其中SNO为学号,SD为系名,PROV为省区,CN为课程名,GR为分数。

试用SQL语言实现下列操作:

(1)查询“信息系”的学生来自哪些省区。

SelectDISTINCTPROV

FromS

WhereSD=‘信息系';

(2)按分数降序排序,输出“英语系”学生选修了“计算机”课程的学生的姓名和分数。

SelectSN,GR

FromS,SC

WhereS.SNO=SC.SNOANDSD=‘英语'ANDCN=‘计算机'

GroupbyGRDESC;

3.设有学生表S(SNO,SN)(SNO为学生号,SN为姓名)和学生选修课程表SC(SNO,CNO,CN,G)(CNO为课程号,CN为课程名,G为成绩),试用SQL语言完成以下各操作:

(1)创建一个视图V-SSC(SNO,SN,CNO,CN,G)。

CreateviewV-SSC(SNO,SN,CNO,CN,G)

AS

SelectS.SNO,S.SN,SC.CNO,SC.CN,SC.G

FromS,SC

WhereS.SNO=SC.SNO

(2)从视图V-SSC上查询平均成绩在90分以上的SNO和平均分。

SelectSNO,AVG(G)

FromV-SSC

GroupbySNO

HavingAVG(G)

4.设有关系模式:

S(SN,SNAME,CITY)其中,S代表供应商,SN,代表供应商号,SNAME为供应商名字,CITY为供应商所在城市,主关键字为SN;

P(PN,PNAME,COLOR,WEIGHT)其中P代表零件,PN代表零件号,PNAME代表零件名,COLOR为零件颜色,WEGHT为零件重量,主关键字为PN;

J(JN,JNAME,CITY)其中J表示工程,JN为工程编号,JNAME为工程名,CITY为工程所在城市,主关键字为JN。

如下图所示表示供应商(S)-零件(P)-工程(J)数据库表,写出实现以下各题功能的SQL语句:

SSPJ

QTYPNJNSN

CITYSNSNAME

S1N1上海P1S1J1200

S2700S1P1北京J4N2400S2J1P3S3北京N3200P3J2S2S4上海N4200J3P3S2S5南京N5500S2P3J4P600J5S2P3

WEIGHTPNPNAMECOLOR400S2P3J612P1PN1红800S2J7P318绿P2PN10PJS2PPN20SJP1PPN50JPS1PNP30SJP1PPN30JSPJ20SPJ

CITJNAMJ10SPJ

JJN上50PSJ

JJN广10JPS5200J2P6S5JN3J3南京1000P1S5J4J4JN4南京1200P3J4S5J5JN5上海800P4S5J4J6JN6武汉400J4S5P5J7JN7上海500J4P6S5

(1)取出工程的全部细节。

Select*

FromJ

(2)取出所在城市为上海的所有工程的全部细节。

Select*

FromJ

WhereCITY=‘上海';

(3)取出重量最轻的零件代号。

SelectPN

FromP

WhereWEIGHT=

(SelectMIN(WEIGHT)

FromP);

提供零件的供应商代号。

J1取出为工程)4(.

SelectSN

FromSPJ

WhereJN='J1';

(5)取出为工程J1提供零件P1的供应商代号。

S(SN,SNAME,CITY)SelectSNP(PN,PNAME,COLOR,WEIGHT)

J(JN,JNAME,CITY)FromSPJSPJ(SN,PN,JN,QTY);'WhereJN='J1'ANDPN=P1'提供零件的工程名称。

(6)取出由供应商S1SelectJ.JNAMEFromSPJ,JWhereSPJ.JN=J.JNANDSPJ.SN=‘S1';(7)取出供应商S1提供的零件的颜色。

SelectDistinctP.COLORFromSPJ,P;S1'WhereSPJ.PN=P.PNANDSPJ.SN='J2提供零件的供应商代号。

J1)取出为工程或(8SelectDistinctSNFromSPJ'ORJN='J2;WhereJN='J1'取出为工程J1提供红色零件的供应商代号。

(9)SelectDistinctSPJ.SNFromSPJ,P‘红';.PNANDSPJ.JN=WhereSPJ.PN=P‘J1'ANDP.COLOR=取出为所在城市为上海的工程提供零件的供应商代号。

(10)

SelectDISTINCTSPJ.SNFromJ,SPJWhereJ.JN=SPJ.JNANDJ.CITY=‘上海';取出为所在城市为上海或北京的工程提供红色零件的供应商代号。

)(11SelectSPJ.SNFromP,J,SPJAND‘红'P.PN=SPJ.PNWhereJ.JN=SPJ.JNOANDPAND.COLOR=‘北京'‘上海'(J.CITY=ORJ.CITY=);取出供应商与工程所在城市相同的供应商提供的零件代号。

)(12SelectDISTINCTSPJ.PNFromS,J,SPJ

ANDS.SN=SPJ.SNANDWhereJ.JN=SPJ.JNJ.CITY=S.CITY)13(取出上海的供应商提供给上海的任一工程的零件的代号。

SelectSPJ.PN

FromS,J,SPJ

WhereJ.JN=SPJ.JNANDS.SN=SPJ.SNANDJ.CITY=‘上海'ANDS.CITY=‘上海';

(14)取出由供应商S1提供零件的工程的代号。

SelectDistinctSPJ.JN

FromS,P,SPJ

WhereS.SN=SPJ.SNANDP.PN=SPJ.PNANDS.SN=‘S1';

(15)取出所有这样的一些二元组,使得第1个城市的供应商为第2个城市的工程提供零件。

SelectDistinctS.CITY,J.CITY

FromS,J,SPJ

WhereS.SN=SPJ.SNANDJ.JN=SPJ.JN;

(16)把零件P2的重量增加5,颜色改为黄色。

UPDATEP

SETWEIGHT=WEIGHT+5,COLOR=‘黄'

WherePN=‘P2';

(17)将没有供货的所有工程项目从J表中删除。

Delete

FromJ

WhereJNnotin

(Select*

FromSPJ);

(18)查询提供全部零件的供应商名。

SelectSNAME

FromS

WhereSNOIN(

SELECTSNO

FROMSPJ);

(19)查询这样的工程项目号:

该工程项目使用P1零件的平均使用量大于工程项目J1使用的任何一种零件的最大数量。

SELECTJNO

FROMSPJ

WHERESPJ.PNO=P1

GROUPBYJNO

HAVINGAVG(QTY)>ALL

(SELECTQTY

FROMSPJ

WHERESPJ.JNO=‘J1');

(20)定义一个视图,它由所有这样的工程项目(工程项目号与所在城市名称)。

P1供货且使用零件S1组成:

它们由供应商.

CREATVIEWJN,JCITY

AS

SelectJ.JN,J.CITY

FromJ,SPJ

WhereJ.JN=SPJ.JNANDSPJ.SN='S1'ANDSPJ.PN='P1';

5.假设有如下4个样本表:

student(学生信息表)

NONAMESEXBIRTHDAYCLASS

9503309/曾华01男/771089503110510/匡明02/75男

95030/2王/7109503李1020/7609503王100/10/7950306陆100/74

teacher教师信息表

NOPROFNAMEBIRTHDAYSEXDEPART李成0212/804/58男计算机系副教授

69男03张旭/12/856讲师电子工程系05//72助教计算机系女王萍05825

/1408/77助教刘冰831女电子工程系course(课程表)score(成绩表)

CNAMECNOTNOCNONODEGREE计算机导论3-105825

3-24586103操作系统3-245804753-245105数字电路6-1668569-888100高等数学

(1)列出至少有2名男生的班号。

Student(NO,NAME,SEX,BIRTHDAY,CLASSelectCLASSS)Teacher(NO,NAME,SEX,BIRTHDAY,PROFFromstudent

DEPART)WhereSEX='男'Course(CNO,CNAME,TNO)GROUPBYCLASSScore(NO,CNO,DEGREE)HAVINGCOUNT(*)>2

(2)显示student表中不姓“王”的同学记录。

SELECT*

FROMSTUDENT.

WHERENAMENOTLIKE‘王%';

(3)显示student表中每个学生的姓名和年龄。

SELECTNAME,2017-YEAR(birthday)

FROMSTUDENT;

(4)显示student表中最大和最小的birthday日期值。

SELECTNAME,MAX(BIRTHDAY),MIN(BIRTHDAY)

FROMSTUDENT;

(5)以班号和年龄从大到小的顺序显示student表中的全部记录。

SELECT*

FROMSTUDENT

ORDERBYCLASS,2017-YEAR(BIRTHDAY)DESC

(6)显示“男”教师及其所上的课程。

SELECTTEACHER.NAME,COURSE.NAME

FROMTEACHER,COURSE

WHERETEACHER.NO=COURSE.TNOANDTEACHER.SEX=‘男';

(7)列出最高分同学的no、cno和degree列。

SELECTNO,CNO,DEGREE

FROMSCORE

WHEREDEGREE=

(SELECTMAX(DEGREE)

FROMSCORE)

(8)列出和“李军”同性别的所有同学的name。

SELECTNAME

FROMSTUDENT

WHERESEX=

(SELECTSEX

FROMSTUDENT

WHERENAME=‘李军');

(9)列出和“李军”同性别并同班的同学name。

SELECTNAME

FROMSTUDENT

WHERESEX=

(SELECETSEX

FROMSTUDENT

WHRERNAME=‘李军')

ANDCLASS=

(SELECTCLASS

FROMSTUDENT.

WHERENAME=‘李军');

(10)列出所有选修“计算机导论”课程的“男”同学的成绩表。

SELECTSTUDENT.NO,COUSE.CNO,SCORE.DEGREE

FROMSTUDENT,COURSE,SCORE

WHERESTUDENT.NO=SCORE.NOANDCOURSE.CNO=SCORE.CNO

ANDCOURSE.CNAME=‘计算机导论'ANDSTUDENT.SEX=‘男';

6、设职工---社团数据库有三个基本表:

职工(职工号,姓名,年龄,性别);

社会团体(编号,名称,负责人号,活动地点);

参加(职工号,编号,参加日期);

试用SQL语句完成下列操作:

1)建立下列两个视图。

社团负责人(编号,名称,负责人职工号,负责人姓名,负责人性别);

参加人情况(职工号,姓名,社团编号,社团名称,参加日期)

CREATEVIEW社团负责人(编号,名称,负责人职工号,负责人姓名,负责人性别)

AS

SELECT编号,名称,负责人,姓名,性别

FROM社会团体,职工

WHERE社会团体.负责任号=职工.职工号

CREATEVIEW参加人情况(职工号,姓名,社团编号,社团名称,参加日期)

AS

SELECT参加.职工号,职工.姓名,社会团体.编号,社会团体.名称,参加。

参加日期

FROM职工,社会团体,参加

WHERE职工.职工号=参加.职工号AND参加.编号=社会团体.编号;

2)查找参加唱歌队或篮球队的职工号和姓名。

SELECT职工号,姓名

FROM职工,社会团体,参加

WHERE职工.职工号=参加.职工号AND参加.编号=社会团体.编号

AND社会团体.名称=‘唱歌队'OR社会团体.名称=‘篮球队';

3)查找没有参加任何团体的职工情况。

SELECT*

FROM职工

WHERENOTEXISTS

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

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

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

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