77范文网 - 专业文章范例文档资料分享平台

数据库习题

来源:网络收集 时间:2020-05-24 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

习 题 二(Page 54)

/*14. 针对以上表2-5中的四个表,用 SQL 语言完成以下各项操作: ① 给学生表增加一属性Nation(民族),数据类型为Varchar(20); */ ALTER TABLE Student ADD Nation VARCHAR (20); /*② 删除学生表中新增的属性Nation;*/

ALTER TABLE Student DROP COLUMN Nation; /*③ 向成绩表中插入记录(\,\,80);*/ INSERT INTO Grade VALUES ('2001110','3',80); /*④ 修改学号为\的学生的成绩为70分;*/

UPDATE Grade SET Gmark=70 WHERE Sno='2001110'; /*⑤ 删除学号为\的学生的成绩记录;*/ DELETE FROM Grade WHERE Sno='2001110';

/*⑥ 为学生表创建一个名为IX_Class的索引,以班级号的升序排序;*/ CREATE INDEX IX_Class ON Student(Clno) ; /*⑦ 删除IX_Class索引。*/

DROP INDEX Student.IX_Class;

/*15. 针对以上表2-5中的四个表,用 SQL 语言完成以下各项查询: ① 找出所有被学生选修了的课程号;*/ select DISTINCT Cno from Grade;

/*② 找出01311班女学生的个人信息;*/

select * from Student where Clno='01311' and Ssex='女';

/*③ 找出01311班、01312班的学生姓名、性别、出生年份;*/

select Sname,Ssex,2006-Sage 出生年份 from Student where Clno in ('01311', '01312'); /*④ 找出所有姓李的学生的个人信息;*/

select * from Student where Sname like ('李%'); /*⑤ 找出学生李勇所在班级的学生人数;*/

select Number from Class where Clno= (select Clno from Student where Sname='李勇'); /*⑥ 找出课程名为操作系统的平均成绩、最高分、最低分; */

select Avg(Gmark), Max (Gmark), Min (Gmark) from Grade where Cno in (select Cno from Course where Cname='操作系统');

/*⑦ 找出选修了课程的学生人数;*/

select COUNT( DISTINCT Sno) from Grade; ⑧ 找出选修了课程操作系统的人数

Select count( distinct sno) from grade Where cno in

(select cno from course where cname =’操作系统’) ⑨ 找出2000级计算机软件班的成绩为空的学生姓名 Select sname from student where cno in

(select clno from class where speciality=’计算机软件’ and inyear=’2000’) And sno in

(select sno from grade where gmark is null)

/*16. 针对以上表2-5中的四个表, 用SELECT的嵌套查询完成以下各项查询: ① 找出与李勇在同一个班级的学生信息;*/

select * from Student where Clno in (select Clno from Student where Sname='李勇');

② 找出所有与学生李勇有相同选修课程的学生信息;

select * from Student where Sno in (select Sno from Grade where Cno in (select Cno from Grade where Sno in (select Sno from Student where Sname='李勇')));

③ 找出年龄介于学生李勇的年龄和25岁之间的学生信息;

select * from Student where Sage BETWEEN (select Sage from Student where Sname='李勇') and 25;

④ 找出选修了课程操作系统的学生学号和姓名;

select Sno, Sname from Student where Sno in (select Sno from Grade where Cno in (select Cno from Course where Cname='操作系统'));

⑤ 找出所有没有选修1号课程的学生姓名

Select sname from student where sno not in (select sno from grade where cno=’1’) ⑥ 找出选修了全部课程的学生姓名

Select sname from student where sno in

(select sno from grade where cno > = all (select cno from course ))

SELECT sname FROM student WHERE NOT EXISTS ( SELECT * FROM course WHERE NOT EXISTS ( SELECT * FROM Grade

WHERE Sno=Student.Sno AND Cno=Course.Cno ) );

对Student中的每个元组依次取Course中的每个元组, 每次按Student的Sno和Course的Cno

在grade中找相应元组; 若每次的结果都不为空, 则Student中对应的SNAME 为所选. 逐行扫描Student表中的每条记录,对每一个Sno,都顺序扫描Couse表, 读取每一个Cno;对于每一个Sno的(Sno,Cno),都在grade表中查找有没有与之对应的行。 如果某一个Sno,对于Couse表中的每一个Cno,都在grade表中都有一个相应的行与之对应,则这个Sno所对应的SNAME被显示。

17. 针对以上表2-5中的四个表,用 SQL 语言完成以下各项查询: ① 查询选修了3号课程的学生学号及其成绩,并按成绩的降序排列; select Sno,Gmark from Grade where Cno='3' ORDER BY Gmark DESC; ② 查询全体学生信息,要求查询结果按班级号升序排列,同一班级学生按年龄降序排列;

select * from Student ORDER BY Clno,Sage DESC; ③ 求每个课程号及相应的选课人数;

select Cno,COUNT(Sno) 选课人数 from Grade GROUP BY Cno; ④ 查询选修了3门以上课程的学生学号。

select Sno from Grade GROUP BY Sno HAVING COUNT(*)>3;

(cno)>3

18. 针对以上表2-5中的四个表, 用 SQL 语言完成以下各项操作: ① 对每个班, 求学生的平均年龄, 并把结果存入数据库; ALTER TABLE Class ADD Avg_age int; UPDATE Class SET Avg_age=

(select AVG(Sage) from Student

GROUP BY Clno HAVING Student.Clno=Class.Clno);

② 将01311班的全体学生的成绩置零;

UPDATE Grade SET Gmark=0 where Sno in (select Sno from Student where Clno='01311'); /*加不加引号都可执行。*/

③ 删除2001级计算机软件的全体学生的选课记录;

DELETE from Grade where Sno in (select Sno from Student where Clno in (select Clno from Class where (Inyear='2001' and Speciality='计算机软件')));

④ 学生李勇退学,从数据库中删除有关他的记录 Delete from grade where sno=

(select sno from student where sname=’李勇’)

Delete from student where sname =’李勇’

20. 成绩管理数据库的表结构说明中加入了完整性约束说明, 如表2-6所示, 请用 SQL 语句完成图中约束的说明。

1)CREATE TABLE Student (Sno CHAR (7) NOT NULL, Sname VARCHAR (20) NOT NULL,

Ssex CHAR (2) NOT NULL CHECK (Ssex IN ('男', '女')) DEFAUlT ('男'), Sage SmallINT CHECK (Sage>14 AND Sage<65), Clno CHAR (5) NOT NULL, PRIMARY KEY (Sno),

FOREIGN KEY (Clno) REFERENCES Class (Clno)) ;

2)CREATE TABLE Course (Cno CHAR (1) NOT NULL PRIMARY KEY, Cname VARCHAR (20) NOT NULL,

Credit SmallINT CHECK (Credit in(1,2,3,4,5,6)));

3)CREATE TABLE Class (Clno CHAR (5) NOT NULL PRIMARY KEY, Speciality VARCHAR (20) NOT NULL, Inyear CHAR (4) NOT NULL,

Number INTeger CHECK (Number >1 AND Number <100), Monitor CHAR (7) REFERENCES Student (Sno));

4)CREATE TABLE Grade (Sno CHAR (7) NOT NULL, Cno CHAR (1) NOT NULL,

Gmark Numeric CHECK (Gmark >=0 AND Gmark <=100), PRIMARY KEY (Sno,Cno),

FOREIGN KEY (Sno) REFERENCES Student (Sno), FOREIGN KEY (Cno) REFERENCES Course (Cno));

习题三(page 76) 5.

1)找出所有被学生选修了的课程号 ∏cno(grade)

2)找出01311班女生的个人信息

σ

clno=’01311’∧ ssex=’女’ (student)

3)找出01311班、01312班的学生的姓名、性别、出生年份

∏sname,ssex,year(getdate())-sage(σclno=’01311’ ∨

clno=’01312’(student)

4)找出年龄介于14与20岁之间的学生的信息

σ

sage>14 ∧ sage <20 (student)

5)找出选修了课程操作系统的学生学号和姓名

∏sno,sname (σ cname=‘操作系统’(student

Grade course )

6)找出所有没有选修1号课程的学生姓名

∏ sname (student) - ∏sname (cno=’1’(student

Grade))

7) 找出选修了全部课程的学生姓名 ∏

sname (∏sno,cno(Grade) ÷∏cno(course)) student )

1.要保证数据库的数据独立性,需要修改的是( A )

A.三层模式之间的两种映射 B.模式与内模式 C.模式与外模式 D.三层模式

2.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,从职员到部门的联系类型是( C )

A.多对多 B.一对一 C.多对一 D.一对多 3.在视图上不能完成的操作是( C )

A.更新视图 B.查询

C.在视图上定义新的基本表 D.在视图上定义新视图

4.关系数据模型的三个组成部分中,不包括( C )

A.完整性规则 B.数据结构 C.恢复 D.数据操作

5.在关系模式中,视图是三级模式结构中的 ( D )

A. 内模式 B. 模式 C. 存储模式 D. 外模式 6.在数据库的三级模式中,内模式有 ( A )

A. 1 B. 2 C. 3 D. 多个

7.三个模式之间存在下列映射关系,将正确的填入括号中( B )

A.外模式/内模式 B.外模式/模式 C.模式/模式 D.内模式/外模式 8.数据的逻辑独立性是指( C )

A.存储结构与物理结构的逻辑独立性 B.数据与存储结构的逻辑独立性 C.数据与程序的逻辑独立性 D.数据元素之间的逻辑独立性

9.以下叙述中,属于结构冲突的是( B )

A.同一对象在相同应用中具有不同的抽象 B.同一对象在不同应用中具有不同的抽象

C.同一实体在不同分E-R图中所包含的属性个数和属性排列次序完全相同 D.以上叙述均不属于结构冲突

10、在下列关于关系的陈述中,错误的是(B )

A 表中任意两行的值不能相同 B 表中任意两列的值不能相同 C 行在表中的顺序无关紧要 D 列在表中的顺序无关紧要

11、关系数据库中,实现实体之间的联系是通过表与表之间的(D )

A 公共索引 B 公共存储 C 公共元组 D 公共属性

12、有一个关系:学生(学号,姓名,系别),规定学号的值域是8个数字组成的字符串,这一规则属于( C )

A 实体完整性约束 B 参照完整性约束

C 用户自定义完整性约束 D 关键字完整性约束

13、下面有关主键的叙述正确的是( B )

A 不同的记录可以具有重复的主键值或空值 B 一个表中的主键可以是一个或多个字段 C 在一个表中主键只可以是一个字段

D 表中的主键的数据类型必须定义为自动编号或文本 14、定义外键实现的是哪一(些)类完整性? ( B )

A 实体完整性 B 参照完整性

C 用户定义的完整性

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库数据库习题在线全文阅读。

数据库习题.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/1070986.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: