
数据库基雅与应用第四章缘合练习及参考答案 中央电大徐凯 第四章镀合旅习愿 一、填空题 1,数据库系饶的外棱式在S,中称为 一·它由 产生出米。 2。在实际的数据库管理系统中,对数据降的操作方式有 和 等三种。 3,S0L是高度 和面向 操作的语言。 4.在5L中建立和到除数据库模式的命令分别为 和 5.由create scher国CWa如thorizatioe LIU命令建立的一个数据库为 所有者为。 6,在SL中完整性约束分为完整性约束和完整性约束两个方面。 7.在5中,若一个完整性约束贝涉及到一个列,则该完整性钩束低可以作为 完整性约束定义,也可以作为完整性约束定义,两者只选其一, 8,在SL中,列级完整性约束分为种情况,表级完整性约束分为种情况。 9,在列级和表级完整性钓束中同时存在的约束分别为一· 和等四种约束。 10。在完整性约束中,每个钓束只能涉及到1个属性,在 光整性钓束 中,每个约束可以沙及到多个属性。 1山.在S如中,主码约束的关健字为 ,外码的束的关健字为 12.在SqL中,单值约束的关键字为 检在约束的关健字为 I3.在SqL中,create tahle、alter table和drop table命令分别为在数据库中 和 基本表结构的命令。 14.在SqL中,建立,修政和酬除数据岸中基本表结构的命令分别为 和 命令。 15,向基本表中插入数据有两种命令格式,一种移为 插入格式,另一种称为 插入格式 6.向基本表插入数据时,可以在命令中使用关键字 引出记录值,或者在命 ◆中 子句得到一个结果表
数据库基础与应用第四章综合练习及参考答案 中央电大 徐孝凯 第四章综合练习题 一、填空题 1.数据库系统的外模式在 SQL 中称为________,它由________产生出来。 2.在实际的数据库管理系统中,对数据库的操作方式有__________、__________和 __________等三种。 3.SQL 是高度__________和面向________操作的语言。 4.在 SQL 中建立和删除数据库模式的命令分别为_______________和_______________。 5.由 create schema KUCUN authorization LIU 命令建立的一个数据库为________, 所有者为________。 6.在 SQL 中完整性约束分为________完整性约束和________完整性约束两个方面。 7.在 SQL 中,若一个完整性约束只涉及到一个列,则该完整性约束既可以作为________ 完整性约束定义,也可以作为________完整性约束定义,两者只选其一。 8.在 SQL 中,列级完整性约束分为____种情况,表级完整性约束分为____种情况。 9.在列级和表级完整性约束中同时存在的约束分别为________、________、________ 和________等四种约束。 10.在________完整性约束中,每个约束只能涉及到 1 个属性,在________完整性约束 中,每个约束可以涉及到多个属性。 11.在 SQL 中,主码约束的关键字为____________,外码约束的关键字为____________。 12. 在 SQL 中,单值约束的关键字为__________,检查约束的关键字为__________。 13.在 SQL 中,create table、alter table 和 drop table 命令分别为在数据库中 ________、________和________基本表结构的命令。 14.在 SQL 中,建立、修改和删除数据库中基本表结构的命令分别为________、________ 和________命令。 15.向基本表中插入数据有两种命令格式,一种称为________插入格式,另一种称为 ________插入格式。 16. 向基本表插入数据时,可以在命令中使用关键字__________引出记录值,或者在命 令中__________子句得到一个结果表

I7.在SqL中,insert,update和delete分别为对基本表进行 记录操作的命令。 18.在S.中,对基本表进行插入、修改和制除记录的命令分别为 和 19,在S刘L中,每个视图中的列可以来白不同的一,它是在原有表的基础上 的逻辑意久上的新关系。 20.基本表属于全局横式中的表。它是 而视图则属于局部模式中的表,它是 21.当建立一个视图后,通常只对它做 和 这两种操作。 22.在S风.中,通过使用视图。能够使在关系规范化时被分解的关系 起米。能 够增强数据库的性。 3.在中,通常不应包括由计算可以得到的属性,而在 中,为了用户 查询数据的方便,则需要包含它们: 24,在S中,根据基本表建立一个视图时,包括建立了该视图的 和 两个方而。 25.当建文和制除一个祝图时,对相应的基本表,当修改一个视图时,则对 相应的基本表 26.在SqL中,create view、pdate和drop view命令分别为 和 视图的金令。 27,在SL中,建立视图,修改视图内容和副除视图的命令分别为 和 8.在SL新版的查询语句中, 选项实现投影运算, 选项实现连接运 算, 选项实民选择运算。 9,在SqL新版的直询语句中,select选项实现 运算,r0用选项实现 运算,小here选项实现 运算。 30在SL的查询语句中,gr0upby选项实现 功能,order b时选项实现对 结果表的 功能: 31.在Sq的查询语句中, 老项实现分组饶计功能, 选项实现对 结果表的排序功能。 32.在新版的SqL中,查面所涉及到的表及表之间的连接是在f■选项中实现的,表
17.在 SQL 中,insert、update 和 delete 分别为对基本表进行________、________和 ________记录操作的命令。 18.在 SQL 中,对基本表进行插入、修改和删除记录的命令分别为________、________ 和________。 19. 在 SQL 中,每个视图中的列可以来自不同的______,它是在原有表的基础上 ________的逻辑意义上的新关系。 20.基本表属于全局模式中的表,它是________,而视图则属于局部模式中的表,它是 ________。 21.当建立一个视图后,通常只对它做________和________这两种操作。 22.在 SQL 中,通过使用视图,能够使在关系规范化时被分解的关系________起来,能 够增强数据库的________性。 23.在________中,通常不应包括由计算可以得到的属性,而在________中,为了用户 查询数据的方便,则需要包含它们。 24.在 SQL 中,根据基本表建立一个视图时,包括建立了该视图的________和________ 两个方面。 25.当建立和删除一个视图时,对相应的基本表__________,当修改一个视图时,则对 相应的基本表__________。 26.在 SQL 中,create view、update 和 drop view 命令分别为________、________和 ________视图的命令。 27.在 SQL 中,建立视图、修改视图内容和删除视图的命令分别为__________、 __________和__________。 28. 在 SQL 新版的查询语句中,________选项实现投影运算,________选项实现连接运 算,________选项实现选择运算。 29. 在 SQL 新版的查询语句中,select 选项实现________运算,from 选项实现________ 运算,where 选项实现________运算。 30. 在 SQL 的查询语句中,group by 选项实现__________功能,order by 选项实现对 结果表的__________功能。 31.在 SQL 的查询语句中,__________选项实现分组统计功能,__________选项实现对 结果表的排序功能。 32.在新版的 SQL 中,查询所涉及到的表及表之间的连接是在 from 选项中实现的,表

之间的连接共有三种方式,分别称为 和 33.在新版的S中。表之间的连接共有三种方式,对应的关健字分别为 和 二、根据主敏材第四章所给的商品库和散学库,按隔下列所给的每条S心查询请句写 出相应的功能, 在名称为商品库的数据库中包含有商品表1和商品表2,它们的定文分别为: 商品表1(商品代曼char(8),分类名chnr8),单价f1mt,数量int) 商品表2(商品代号char(8),产地char(6份),品牌char6份,) 在名称为教学岸的数据库中包含有学生、课程和选课三个表,它们的定文分别为: 学生(学生曼char(7),姓名char(6).性别char(2),出生日期datetine, 专业char(10),年级imt) 误程(误程号char(4),课程名char(1o),课程学分int) 选课(学生号char(7)提程号char(4),成锁int) 1.select x.商品代号,分类名,数量,品牌 增商品表1多,商品表2y here x.自品代号-y.商品代号 2.select distinct产地 foa商品表2 3.select distinct品牌 froa商品表2 4,select c0nt(d1 stinct产地)as产地数 foa商品表2 5.select x.商品代号,分类名,产地品牌 frm商品表1黑,商品表2y here x,商品代号=y.商品代号and(品伸='塘猫”or品牌='春兰”) 6.select学生.学生号,count()as选课门数 froa学生,选课 here学生,学生号=选误.学生号
之间的连接共有三种方式,分别称为__________、__________和__________。 33.在新版的 SQL 中,表之间的连接共有三种方式,对应的关键字分别为__________、 __________和__________。 二、根据主教材第四章所给的商品库和教学库,按照下列所给的每条 SQL 查询语句写 出相应的功能。 在名称为商品库的数据库中包含有商品表 1 和商品表 2,它们的定义分别为: 商品表 1(商品代号 char(8),分类名 char(8),单价 float,数量 int) 商品表 2(商品代号 char(8),产地 char(6),品牌 char(6),) 在名称为教学库的数据库中包含有学生、课程和选课三个表,它们的定义分别为: 学生(学生号 char(7),姓名 char(6),性别 char(2),出生日期 datetime, 专业 char(10),年级 int) 课程(课程号 char(4),课程名 char(10),课程学分 int) 选课(学生号 char(7),课程号 char(4),成绩 int) 1.select x.商品代号,分类名,数量,品牌 from 商品表 1 x,商品表 2 y where x.商品代号=y.商品代号 2.select distinct 产地 from 商品表 2 3.select distinct 品牌 from 商品表 2 4.select count(distinct 产地) as 产地数 from 商品表 2 5.select x.商品代号,分类名,产地,品牌 from 商品表 1 x,商品表 2 y where x.商品代号=y.商品代号 and (品牌='熊猫' or 品牌='春兰') 6.select 学生.学生号,count(*) as 选课门数 from 学生,选课 where 学生.学生号=选课.学生号

T即by学生.学生号 7.select课程.课程号,课程.课程名,count()as选课人数 fa课程,选课 ere课魁.课程号-选误.课程号 oa即by课程.误程号,误程.课程名 8.select distinct x.* fo通学生x,选误y,选课云 where y.学生号-气.学生号and.课程号Ox.误程号 nd无学生号=y,学生号 9.select* froa学生 here学生号in(select学生号 from选课 group b可学生号having count()-l 10.select x.学生号,y,学生号,y,课程号 froa透误x,选课y here x.学生号=s1andy.学生号=s2 and%,课程号=可.课程号 注:一个由字母开头的标识符再加上字符前缀,则表示为一个变量,假定已保存着一 个相应值。 11.select x. froa课程x,透课y dbere x.课程号y.课程号andy.学生号-sl andy.课程号not in( select课程号 fro面选课 here选课.学生号-s2 12.select率
group by 学生.学生号 7.select 课程.课程号,课程.课程名,count(*) as 选课人数 from 课程,选课 where 课程.课程号=选课.课程号 group by 课程.课程号,课程.课程名 8.select distinct x.* from 学生 x,选课 y,选课 z where y.学生号=z.学生号 and y.课程号<>z.课程号 and x.学生号=y.学生号 9.select * from 学生 where 学生号 in (select 学生号 from 选课 group by 学生号 having count(*)=1 ) 10.select x.学生号,y.学生号,y.课程号 from 选课 x,选课 y where x.学生号=@s1 and y.学生号=@s2 and x.课程号=y.课程号 注:一个由字母开头的标识符再加上@字符前缀,则表示为一个变量,假定已保存着一 个相应值。 11.select x.* from 课程 x,选课 y where x.课程号=y.课程号 and y.学生号=@s1 and y.课程号 not in ( select 课程号 from 选课 where 选课.学生号=@s2 ) 12.select *

froa课程 here not exists( select◆ froa选课 hee课程课程号=选课课程号 13.select* froa课程 bere exists《 select◆ fr用速课 here课程.课程号-选课.课程号 14.select froa课程 where exists select课程号 frea意课 here课程.课程号-选课.课程号 gre厚by误程号hav1 ng count()hetween2and4 15.select from学生 where exists select fren选课 here学生.学生号-选课.学生号 ro厚by透课,学生号having count()=3 l6.select◆
from 课程 where not exists ( select * from 选课 where 课程.课程号=选课.课程号 ) 13.select * from 课程 where exists ( select * from 选课 where 课程.课程号=选课.课程号 ) 14.select * from 课程 where exists ( select 课程号 from 选课 where 课程.课程号=选课.课程号 group by 课程号 having count(*) between 2 and 4 ) 15.select * from 学生 where exists ( select * from 选课 where 学生.学生号=选课.学生号 group by 选课.学生号 having count(*)=3 ) 16.select *

froa学生 re学生号im( select学生号 fr用这课 troup by学生号having count(《)(-2 or not exists select◆ froa选课 hee学生.学生号=这课.学生号 17.select专业,count(中)s专业人数 fra学生 oupb的专业 order by专业人数deso 18.select专业,性别,0ount()as人数 fom学里 To阳pb时专业,性别 order by专业 19.select x.表,课程名,课程学分,成姨 froa学生x,课程y,选课z bere x.学生号=z,学生号andy.课程号=2.误程号 order by.学生号,z.成锁 20.select* froa学生 where not exists s0l0ty,误程号 from学生x inner join选课yonx.学生号=.学生号 here x.姓名-a and not exists( select fro通选课
from 学生 where 学生号 in ( select 学生号 from 选课 group by 学生号 having count(*)<=2 ) or not exists ( select * from 选课 where 学生.学生号=选课.学生号 ) 17.select 专业,count(*) as 专业人数 from 学生 group by 专业 order by 专业人数 desc 18.select 专业,性别,count(*) as 人数 from 学生 group by 专业,性别 order by 专业 19.select x.*,课程名,课程学分,成绩 from 学生 x,课程 y,选课 z where x.学生号=z.学生号 and y.课程号=z.课程号 order by x.学生号,z.成绩 20.select * from 学生 where not exists ( select y.课程号 from 学生 x inner join 选课 y on x.学生号=y.学生号 where x.姓名=@a and not exists ( select * from 选课

h0re学生.学生号=遗课.学生号 ad头.课程号-透课.课程号 三、根据教材第四章所给的商品库和戴学库,按顾下列所给的年种功能写出相应的查 询语句, 在名称为商品库的数据库中包含有商品表1和商品表2,它们的定文分别为: 商品表1(查品代曼char(8),分类名char(8),单价float,.数量1t) 商品表2(盒品代曼char(8),产陆char(6),品伸char(6),) 在名称为教学岸的数据库中包含有学生、课程和选课三个表,它们的定文分别为: 学生(学生斐chnr(),姓名char(),性别char(2),出生日期datetimo, 专业char(1o),年级int) 课程(课程竖char(M),课程名char(10),课程学分int) 选误(学生受chnr),退程曼chr(4),成绩int) 1,从商品库中查询出每种商品的商品代号、单价,数量和产地。 2.从商品库中查询出数量大于10的商品种数。 3,从商品库中查询出数量在10和20之间的所有商品。 4.从商品库中查陶出每类(即分类名相同)商品的最高单价。 5,从商品库中查询出每类(即分类名相同)商品的平均数量。 6.从商品库中查询出每类(即分类名相同》商品的总数量。 7.从商品库中查询出单价大于等于2000元、或者数量大于等于15的所有商品 8。从商品库中查询出比所有电视机的单价都高的每种商品 9。从商品库中查陶出比所有育品单价的平均值要高的全部商品。 0.从商品库中查淘出数量最多的一种商品 11,从商品库中查询出同一类商品多于一种的所有分类名: 12。从商品岸中查陶出同一产地的商品只有一种的所有商品。 13.从商品库中查淘出每种商品的总价植,并按降序排列出米。 14,从教学库中查询出至少有两名学生所选修的全部课程
where 学生.学生号=选课.学生号 and y.课程号=选课.课程号 ) ) 三、根据教材第四章所给的商品库和教学库,按照下列所给的每种功能写出相应的查 询语句。 在名称为商品库的数据库中包含有商品表 1 和商品表 2,它们的定义分别为: 商品表 1(商品代号 char(8),分类名 char(8),单价 float,数量 int) 商品表 2(商品代号 char(8),产地 char(6),品牌 char(6),) 在名称为教学库的数据库中包含有学生、课程和选课三个表,它们的定义分别为: 学生(学生号 char(7),姓名 char(6),性别 char(2),出生日期 datetime, 专业 char(10),年级 int) 课程(课程号 char(4),课程名 char(10),课程学分 int) 选课(学生号 char(7),课程号 char(4),成绩 int) 1.从商品库中查询出每种商品的商品代号、单价、数量和产地。 2.从商品库中查询出数量大于 10 的商品种数。 3.从商品库中查询出数量在 10 和 20 之间的所有商品。 4.从商品库中查询出每类(即分类名相同)商品的最高单价。 5.从商品库中查询出每类(即分类名相同)商品的平均数量。 6.从商品库中查询出每类(即分类名相同)商品的总数量。 7.从商品库中查询出单价大于等于 2000 元、或者数量大于等于 15 的所有商品 8.从商品库中查询出比所有电视机的单价都高的每种商品。 9.从商品库中查询出比所有商品单价的平均值要高的全部商品。 10.从商品库中查询出数量最多的一种商品。 11.从商品库中查询出同一类商品多于一种的所有分类名。 12.从商品库中查询出同一产地的商品只有一种的所有商品。 13.从商品库中查询出每种商品的总价值,并按降序排列出来。 14.从教学库中查询出至少有两名学生所选修的全部课程

15.从教学岸中查询出至少选修了姓名为l学生所选课程中一门课的全部学生。 16.从教学库中查询出每门课程被选修的学生人数,并按所选人数的升序排列出限程号、 课程名和选误人数。 第四章参考解容 一、填空题 1,视图、基木表 2命令交互、程序执行、窗口界面 3非过程化、集合 4.create schena.drop schema 5CW、LIU 6列级、表级 7.列级、表领 86.4 9。主码,单值,外码,检查 1Q列级,表级 11.primary key,foreign key 12.unique、check 13建文、修政、副除 14.create table.alter table.drop table 15.单行(单值)、多行(多值) l6 values、select 17.插入、修政、剩除 18.insert,update.delete 19.表、建立 20.实表、虚表 21.修政、查找 22莲接、安全 23.基本表、视图 24.结构、内容 25,没有影响、有影响 公建立,修改,(更新)、到除 27.create viev,update.drop view 28.select.froa.where 29,投影、连接,选择 30分组统计、排序 3l.group by、order by 32.中间连接、左连接、右连接 33.inner join.left join,right join 二、根据生教材第四章所给的商品库和教学库,按丽下列所始的每条S风查询语句写 出相应的功能, 1,从商品库中查询出每一种商品的商品代号、分类名、数量和品神等信息。 2从商品库中查询出所有商品的不具产地。 3从商品库中查海出所有商品的不月品牌
15.从教学库中查询出至少选修了姓名为@m1 学生所选课程中一门课的全部学生。 16.从教学库中查询出每门课程被选修的学生人数,并按所选人数的升序排列出课程号、 课程名和选课人数。 第四章参考解答 一、填空题 1. 视图、基本表 2. 命令交互、程序执行、窗口界面 3. 非过程化、集合 4. create schema、drop schema 5. KUCUN、LIU 6. 列级、表级 7. 列级、表级 8. 6、4 9. 主码、单值、外码、检查 10. 列级、表级 11. primary key、foreign key 12. unique、check 13. 建立、修改、删除 14. create table、alter table、drop table 15. 单行(单值)、多行(多值) 16. values、select 17. 插入、修改、删除 18. insert、update、delete 19. 表、建立 20. 实表、虚表 21. 修改、查找 22. 连接、安全 23. 基本表、视图 24. 结构、内容 25. 没有影响、有影响 26. 建立、修改、(更新)、删除 27. create view、update、drop view 28. select、from、where 29.投影、连接、选择 30. 分组统计、排序 31. group by、order by 32. 中间连接、左连接、右连接 33. inner join、left join、right join 二、根据主教材第四章所给的商品库和教学库,按照下列所给的每条 SQL 查询语句写 出相应的功能。 1. 从商品库中查询出每一种商品的商品代号、分类名、数量和品牌等信息。 2. 从商品库中查询出所有商品的不同产地。 3. 从商品库中查询出所有商品的不同品牌

4从商品库中查询出所有商品的不月产地的总数。 及从商品库中查询出品牌为焦瑞减春兰的所有商品的商品代号,分类名,产陆和晶伸, 6从教学库中查询出每个学生选课的门数。 7。从教学库中查询出每门课程技选修的学生数: &从教学库中查询出至少透修了两门课程的全部学生。 9从教学库中查询出只遮修了一门误程的全部学生。 10.从教学岸中查陶出学生号为s1的学生和学生号为s2的学生所选修的共同课程的 课程号。 1山,从教学库中查询出学生号为增s1的学生所遮修,而学生号为2的学生没有选修的 全都误程。 12.从教学库中查询出所有未被学生透修的课程。 13,从教学库中查询出所有己被学生遗修的课程。 14从教学岸中查询出被2至4名学生选修的所有课程。 15.从教学库中查询出同时选修了3门课程的全部学生。 16,从教学库中查询出最多选修了2门课程(含未选任何课程)的全部学生: 17.从教学库中查询出每个专业的学生人数,并按人数多少降序排列。 18,从教学库中查询出每个专业每种性别的学生人数。并按专业升序排列。 19。从教学岸中查询出每个学生选跟的全部情况,并依次按学生号和成绩排序。 0,从教学库中查询出选修了姓名为购的学生的全部选误的所有学生。 三、根据教材第四章所给的商品岸和教学库,按丽下列所拾的每种功能马出相应的查 询语句。 1.select商品表1.商品代号,单价,数量,产地 fr0面商品表1,商品表2 here商品表L.商品代号-商品表2.商品代号 2 select count (# [rom商品表1 here数量)l0 3.select* from商品表1
4. 从商品库中查询出所有商品的不同产地的总数。 5. 从商品库中查询出品牌为熊猫或春兰的所有商品的商品代号、分类名、产地和品牌。 6. 从教学库中查询出每个学生选课的门数。 7. 从教学库中查询出每门课程被选修的学生数。 8. 从教学库中查询出至少选修了两门课程的全部学生。 9. 从教学库中查询出只选修了一门课程的全部学生。 10. 从教学库中查询出学生号为@s1 的学生和学生号为@s2 的学生所选修的共同课程的 课程号。 11. 从教学库中查询出学生号为@s1 的学生所选修、而学生号为@s2 的学生没有选修的 全部课程。 12. 从教学库中查询出所有未被学生选修的课程。 13. 从教学库中查询出所有已被学生选修的课程。 14. 从教学库中查询出被 2 至 4 名学生选修的所有课程。 15. 从教学库中查询出同时选修了 3 门课程的全部学生。 16. 从教学库中查询出最多选修了 2 门课程(含未选任何课程)的全部学生。 17. 从教学库中查询出每个专业的学生人数,并按人数多少降序排列。 18. 从教学库中查询出每个专业每种性别的学生人数,并按专业升序排列。 19. 从教学库中查询出每个学生选课的全部情况,并依次按学生号和成绩排序。 20. 从教学库中查询出选修了姓名为@a 的学生的全部选课的所有学生。 三、根据教材第四章所给的商品库和教学库,按照下列所给的每种功能写出相应的查 询语句。 1. select 商品表 1.商品代号,单价,数量,产地 from 商品表 1,商品表 2 where 商品表 1.商品代号=商品表 2.商品代号 2. select count(*) from 商品表 1 where 数量>10 3. select * from 商品表 1

here数量between10and20《或here数量>=10nd数量(=20) 4.select分类名,国x(单价)s最高单价 fro角商品表1 group b邮分类名 5.select分类名,avg(数量)s平均数量 fr00商品表1 croup by分类名 6.select分类名,sum(数量)as总数量 fr0通商品表1 group by分类名 7.select◆ froa商品表1 here单价>=2000or数量>=15 8.select fro面商品表1 here单价>all(select单价 froa商品表1 here分类名='电视机' 或: select● fro通商品表1 here单价>al1(select国r(单价) frea商品表1 here分类名-'电锐机 9.select◆ fro面商品表I where单价>all(select avg(单价)
where 数量 between 10 and 20 (或 where 数量>=10 and 数量=2000 or 数量>=15 8. select * from 商品表 1 where 单价>all(select 单价 from 商品表 1 where 分类名='电视机' ) 或: select * from 商品表 1 where 单价>all(select max(单价) from 商品表 1 where 分类名='电视机' ) 9. select * from 商品表 1 where 单价>all(select avg(单价)