数据库基础及其应用第四章课后作业.doc

上传人:啊飒飒 文档编号:10779346 上传时间:2021-06-03 格式:DOC 页数:6 大小:62KB
返回 下载 相关 举报
数据库基础及其应用第四章课后作业.doc_第1页
第1页 / 共6页
数据库基础及其应用第四章课后作业.doc_第2页
第2页 / 共6页
数据库基础及其应用第四章课后作业.doc_第3页
第3页 / 共6页
数据库基础及其应用第四章课后作业.doc_第4页
第4页 / 共6页
数据库基础及其应用第四章课后作业.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《数据库基础及其应用第四章课后作业.doc》由会员分享,可在线阅读,更多相关《数据库基础及其应用第四章课后作业.doc(6页珍藏版)》请在三一文库上搜索。

1、第四章 结构化查询语言SQL一、填空题1.数据库系统的外模式在SQL中称为(视图),它由(基本表)产生出来。2.SQL是高度(非过程化)和面向(集合)操作的语言。3.由create schema KUCUN authorization LIU命令建立的一个数据库为(KUCUN),所有者为(LIU)。4.在SQL中,若一个完整性约束只涉及到一个列,则该完整性约束既可以作为(列级)完整性约束定义,也可以作为(表级)完整性约束定义,两者只选其一。5.在列级和表级完整性约束中同时存在的约束分别为(主码)、(单值)、(外码)和(检查)等四种约束。6.在SQL中,主码约束的关键字为(primary key

2、),外码约束的关键字为(foreign key)。7.在SQL中,create table、alter table和drop table命令分别为在数据库中(建立)、(修改)和(删除)基本表结构的命令。8.向基本表中插入数据有两种命令格式,一种称为(单行)插入格式,另一种称为(多行)插入格式。9.在SQL中,insert、update和delete分别为对基本表进行(插入)、(修改)和(删除)记录操作的命令。10.在SQL中,每个视图中的列可以来自不同的(表),它是在原有表的基础上(建立)的逻辑意义上的新关系。11.当建立一个视图后,通常只对它做(修改)和(查找)这两种操作。12.在(基本表)

3、中,通常不应包括由计算可以得到的属性,而在(视图)中,为了用户查询数据的方便,则需要包含它们。13.当建立和删除一个视图时,对相应的基本表(没有影响),当修改一个视图时,则对相应的基本表(有影响)。14.在SQL中,建立视图、修改视图内容和删除视图的命令分别为(create view)、(update)和(drop view)。15.在SQL新版的查询语句中,select选项实现(投影)运算,from选项实现(连接)运算,where选项实现(选择)运算。16.在SQL的查询语句中,(group by)选项实现分组统计功能,(order by)选项实现对结果表的排序功能。17.在新版的SQL中,

4、表之间的连接共有三种方式,对应的关键字分别为(inner join)、(left join)和(right join)。18.在实际的数据库管理系统中,对数据库的操作方式有(命令交互)、(程序执行)和(窗口界面)三种。19.在SQL中建立和删除数据库模式的命令分别为(create schema)和(dropschema)。20.在SQL中完整性约束分为(列级)完整性约束和(表级)完整性约束两个方面。21.在SQL中,列级完整性约束分为(6)各情况,表级完整性约束分为(4)种情况。22.在列级和表级完整性约束中同时存在的约束分别为(主码)(单值)(外码)和(检查)四种约束。23.在(列级)完整性

5、约束中,每个约束只能涉及到一个属性;在(表级)完整性约束中,每个约束可以涉及多个属性。24.在SQL中,单值约束的关键字为(Unique),检查约束的关键字为(check)。25.向基本表插入数据时,可以在命令中例用关键字(Values)引出记录值,或者在命令中通过(Select)子句得到一个结果表。26.在SQL中,对基本表进行插入、修改和删除记录的命令分别为(insert)、(update)和(delete)。27.基本表属于全局模式的表,它是(实表),而视图则属于局部模式中的表,它是(虚表)。28.在SQL中通过使用视图,能够使在关系规范化时被分解的关系(连接)起来,能够增强数据库的(安

6、全)性。29.在(基本表)中,通常不应包括由计算可以得到的属性;而在(视图)中为了用户查询数据的方便,则需要包含它们。30.在SQL中,根据基本表建立一个视图时,包括建立了该视图的(结构)和(内容)两个方面。31.在SQL中,create view、update和drop view命令分别为(建立)(修改)和(删除)视图的命令。32.在SQL中,建立视图、修改视图内容和删除视图的命令分别为(create view)(update)和(drop view)。33.在SQL的查询语句中,group by选项实现(分组统计)功能,order by选项实现对结果表的(排序)功能。34.在新版的SQL中

7、,查询所涉及的表及表之间的连接是在from选项中实现的,表之间的连接共有三种方式,分别称为(中间连接)(左连接)和(右连接)。二、根据主教材第四章所给的商品库和教学库,按照下列所给的每条SQL查询语句写出相应的功能。在名称为商品库的数据库中包含有商品表1和商品表2,它们的定义分别为:商品表1(商品代号 char(8),分类名 char(8),单价 float,数量 int)商品表2(商品代号 char(8),产地 char(6),品牌 char(6),)在名称为教学库的数据库中包含有学生、课程和选课三个表,它们的定义分别为:学生(学生号 char(7),姓名 char(6),性别 char(2

8、),出生日期 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 x.商品代号,分类名,产地,品牌from 商品表1 x,商品表2 ywhere

9、x.商品代号=y.商品代号 and (品牌=熊猫 or 品牌=春兰)从商品库中查询出品牌为熊猫或春兰的所有商品的商品代号、分类名、产地和品牌。4. select 课程.课程号,课程.课程名,count(*) as 选课人数from 课程,选课where 课程.课程号=选课.课程号group by 课程.课程号,课程.课程名从教学库中查询出每门课程被选修的学生数。5. select *from 学生where 学生号 in (select 学生号 from 选课 group by 学生号 having count(*)=1)从教学库中查询出只选修了一门课程的全部学生。6. select x.*f

10、rom 课程 x,选课 ywhere x.课程号=y.课程号 and y.学生号=s1 and y.课程号 not in (select 课程号 from 选课 where 选课.学生号=s2 )从教学库中查询出学生号为s1的学生所选修、而学生号为s2的学生没有选修的全部课程。注:s1和s2分别是已保存相应学生号的字符型变量7. select *from 课程where exists (select * from 选课where 课程.课程号=选课.课程号)从教学库中查询出所有已被学生选修的课程。8. select *from 学生where exists (select * from 选课

11、where 学生.学生号=选课.学生号 group by 选课.学生号 having count(*)=3 )从教学库中查询出同时选修了3门课程的全部学生。9. select 专业,count(*) as 专业人数from 学生group by 专业order by 专业人数 desc从教学库中查询出每个专业的学生人数,并按人数多少降序排列。10. select x.*,课程名,课程学分,成绩from 学生 x,课程 y,选课 zwhere x.学生号=z.学生号 and y.课程号=z.课程号order by x.学生号,z.成绩从教学库中查询出每个学生选课的全部情况,并依次按学生号和成绩排

12、序。11. select distinct 产地from 商品表2从商品库中查询出所有商品的不同产地。12. select count(distinct 产地)as 产地数from 商品表2从商品库中查询出所有商品的不同产地总数。13.select 学生.学号,count(*)as 选课门数from 学生,选课where 学生.学生号选课.学生号group by 学生.学生号从教学库中查询出每个学生选课的门数。14. select distinct x.*from 学生 x,选课 y,选课 zwhere y.学生号z.学生号 and y.课程号z.课程号and x.学生号y.学生号从教学库中查

13、询出至少选修了两门课程的全部学生。15. select x.学生号,y.学生号,y.课程号from 选课 x,选课 ywhere x.学生号s1 and y.学生号s2 and x.课程号y.课程号从教学库中查询出学生号为s1的学生和学生号为s2的学生所选修的共同课程的课程号。16. select * from 课程 where not exists(select * from 选课 where 课程.课程号选课.课程号)从教学库查询出所有未被学生选修的课程。17.select * from 学生 where 学生号 in(select 学生号 from 选课 group by 学生号 hav

14、ing count(*)=2000 or 数量=155.从商品库中查询出比所有商品单价的平均值要高的全部商品。select * from 商品表1where 单价all(select avg(单价) from 商品表1)6.从商品库中查询出同一类商品多于一种的所有分类名。select distinct 分类名from 商品表1group by 分类名 having count(*)17.从商品库中查询出每种商品的总价值,并按降序排列出来。select *,单价*数量 as 总价值from 商品表1order by 总价值 desc8.从教学库中查询出至少选修了姓名为m1学生所选课程中一门课的全

15、部学生。select distinct 学生.* from 学生,选课where 学生.学生号=选课.学生号 and 课程号=any(select 课程号from 学生,选课where 学生.学生号=选课.学生号 and 姓名=m1 )7.从商品库中查询出数量大于10的商品种数。select count(*) as 数量from 商品表1where 数量108.从商品库中查询出每类(即分类名相同)商品的最高单价。select 分类名,max(单价) as 最高单价from 商品表1group by 分类名9.从商品库中查询出每类(即分类名相同)商品的总数量。select 分类名,sum(数量)

16、 as 总数量from 商品表1group by 分类名10.从商品库中查询出比所有电视机的单价都高的每种商品。select *from商品表1where单价all(select单价from商品表1where分类名=电视机) 11.从商品库中查询出数量最多的一种商品。select *from商品表1where数量some(selectmax(数量)from商品表1)12.从商品库中查询出同一产地的商品只有一种的所有商品。select 商品表1.*,产地from 商品表1,商品表2where 商品表1.商品代号=商品表2.商品代号and 产地 in(select 产地from 商品表1 x,商品表2 ywhere x.商品代号=y.商品代号group by 产地 having count(*)=1)13.从教学库中查询出每门课程被选修的学生人数,并按所选人数的升序排列出课程号、课程名和选课人数。select 课程.课程号,课程名,count(课程.课程号) as 人数from 课程,选课where 课程.课程号=选课.课程号 group by 课程.课程号,课程名order by 人数6

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

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1