作业2
一、填空题
1.数据库系统的外模式在SQL中称为(视图),它由(基本表)产生出来。。 2.在SQL中建立和删除数据库模式的命令分别为(create schema)和(dropschema)。 3.在SQL中,若一个完整性约束只涉及一个列,则该完整性约束既可以作为(列级)完整性约束定义,也可以作为(表级)完整性约束定义,两者只选其一。 4.在(列级)完整性约束中,每个约束只能涉及到一个属性;在(表级)完整性约束中,每个约束可以涉及多个属性。
5.在SQL中,create table、alter table和drop table命令分别为在数据库中(建立)(修改)和(删除)基本表结构的命令。
6. 向基本表插入数据时,可以在命令中例用关键字(Valves)引出记录值,或者在命令中通过(Select)子句得到一个结果表。
7. 在SQL中,每个视图中的列可以来自不同的(表),它是在原有表的基础上(建立)的逻辑意义上的新关系。
8.在SQL中通过使用视图,能够使在关系规范化时被分解的关系(连接)起来,能够增强数据库的(安全)性。
9.当建立的删除一个视图时,对相应的基本表(没有影响);当修改一个视图时,则对相应的基本表(有影响)。
10. 在SQL新版的查询语句中,(Select)选项实现投影运算,(from)选项实现连接运算,(where)选项实现选择运算。
11.在SQL的查询语句中,(group by)选项实现分组统计功能,(order by)选项实现对结果表的排序功能。。
12.一个数据库应用系统的开发过程大致相继经过(需求分析)、(概念设计)、逻辑设计、物理设计、机器实现、运行维护等六个阶段。
13.需求分析阶段的主要目标是画出(数据流图)、建立(数据字典)和编写(需求说明书)。
14.概念设计阶段的主要任务是根据(需求分析)的结果找出所有数据实体,画出相应的(ER图)。
15.在列举的购物活动中,存在着三个实体,分别称为(商品实体)、(销售实体)和(收款实体)。
16.设计数据库的逻辑结构模式时,首先要设计好(全局模式),然后再设计好各个(外模式)。
17.由概念设计进入逻辑设计时,原来的(1对1)联系或(1对多)联系通常不需要被转换为对应的基本表。
18.机器实现阶段的目标是在计算机系统中得到一个满足设计要求的、功能完善和操作方便的数据库应用系统。
19.在旅店管理中,涉及到的基本表有四个,它们分别为客房表、住宿表、旅客登记表和消费卡表。
20.在旅店管理中,由消费卡表派生出的视图有四个,它们分别为住宿费表伙食费表、娱乐费表和催补款表。
21.在旅店管理中,客房表只派生出一个视图,该视图被称为客房空闲表。
二、根据主教材第四章所给的商品库和教学库,按照下列所给的每条SQL查询语句写出相应的功能。(共20小题) 1.select x.商品代号,分类名,数量,品牌 from 商品表1 x,商品表2 y
where x.商品代号=y.商品代号
从商品库中查询出每一种商品的商品代号、分类名、数量和品牌等信息。 2.select count(distinct 产地) as 产地数 from 商品表2
从商品库中查询出所有商品的不同产地的总数。
3.select 课程.课程号,课程.课程名,count(*) as 选课人数 from 课程,选课
where 课程.课程号=选课.课程号 group by 课程.课程号,课程.课程名
从教学库中查询出每门课程被选修的学生数。
4.select x.学生号,y.学生号,y.课程号 from 选课 x,选课 y
where x.学生号=@s1 and y.学生号=@s2 and x.课程号=y.课程号
从教学库中查询出学生号为@s1的学生和学生号为@s2的学生所选修的共同课程的课程号。
5.select * from 课程
where exists (select * from 选课
where 课程.课程号=选课.课程号 )
从教学库中查询出所有已被学生选修的课程。
6.select * from 学生
where 学生号 in (select 学生号 from 选课
group by 学生号 having count(*)<=2) or not exists (select *
from 选课
where 学生.学生号=选课.学生号 )
从教学库中查询出最多选修了2门课程(含未选任何课程)的全部学生。
7.select x.*,课程名,课程学分,成绩 from 学生 x,课程 y,选课 z
where x.学生号=z.学生号 and y.课程号=z.课程号
order by x.学生号,z.成绩
从教学库中查询出每个学生选课的全部情况,并依次按学生号和成绩排序。
8.select * from 学生 where not exists (select y.课程号
from 学生 x inner join 选课 y on x.学生号=y.学生号
where x.姓名=@a and not exists (select * from 选课
where 学生.学生号=选课.学生号 and y.课程号=选课.课程号 ) )
从教学库中查询出选修了姓名为@a的学生的全部选课的所有学生。
三、根据教材第四章所给的商品库和教学库,按照下列所给的每种功能写出相应的查询语句。(共16小题)
1.从商品库中查询出数量在10和20之间的商品种数。 select * from 商品表1
where 数量 between 10 and 20 (或where 数量>=10 and 数量<=20) 2.从商品库中查询出每类(即分类名相同)商品的总数量。 select 分类名,sum(数量) as 总数量 from 商品表1 group by 分类名
3.从商品库中查询出比所有商品单价的平均值要高的全部商品。
select * from 商品表1 where 单价>all(select avg(单价) from 商品表1) 4.从商品库中查询出同一产地的商品只有一种的所有商品。
select 商品表1.*,产地 from 商品表1,商品表2
where 商品表1.商品代号=商品表2.商品代号 and 产地 in (select 产地 from 商品表1 x,商品表2 y where x.商品代号=y.商品代号
group by 产地 having count(*)=1)
5.从教学库中查询出至少选修了姓名为@m1学生所选课程中一门课的全部学生。
select distinct 学生.* from 学生,选课
where 学生.学生号=选课.学生号 and 课程号=any(select 课程号 from 学生,选课 where 学生.学生号=选课.学生号 and 姓名=@m1 )
相关推荐: