大学数据库考试复习试题带答案 下载本文

1.查询年龄大于20岁的职工姓名和性别。

2.查询参加社会团体编号为101的所有职工的姓名和年龄。 3.查询负责人为刘刚,活动地点在北二区小礼堂的社会团体的名称。 4.查询在西三环居住、工资在1000元以上职工参加社团的编号。 5.查询参加健美社团、活动时间在周六的职工的姓名和职工号。

1. П姓名,性别(σ年龄>20(职工)) 2. П姓名,年龄 (σ编号=101 (职工∞参加))

3. П名称(σ负责人=‘刘刚’∧活动地点=‘北二区小礼堂’(社会团体)) 4. П编号 (σ住址=‘西三环’∧工资>1000 (职工∞参加))

5. П姓名,职工号 (σ名称=‘健美’∧参加时间=‘周六’ (职工∞参加∞社会团体)) 用SQL语句实现下列6—12小题: 6.定义职工表,职工号不能为空,其值唯一。

答案. CREAT TABLE职工(职工号CHAR(l0)NOT NULL UNIQUE,

姓名CHAR(8)NOT NULL, 年龄SMALLINT, 性别CHAR(2)); 7.建立视图:参加人情况(职工号,姓名,社团编号,社团名称,参加日期) 答案. CREAT VIEW参加人情况(职工号,姓名,社团编号,社团名称,参加日期)

AS SELECT参加.职工号,姓名,社会团体编号,名称,参加日期 FROM职工,社会团体,参加

WHERE职工.职工号=参加.职工号AND参加.编号=社会团体.编号; 8. 查找参加唱歌队或篮球队的职工号和姓名。

答案. SELECT职工号,姓名

FROM 职工,社会团体,参加

WHERE职工.职工号=参加.职工号AND参加.编号=社会团体.编号 AND社会团体.名称IN(‘唱歌队’,‘篮球队’); 9.求每个社会团体的参加人数。

答案: SELECT 编号, COUNT(职工号) FROM 参加

GROUP BY编号; 或者:

SELECT 社会团体.名称, COUNT(职工号)

FROM 参加, 社会团体

WHERE社会团体.编号=参加. 编号 GROUP BY 名称;

.. ..

10. 查询名字中第二个字为“明”字的职工的姓名和职工号。 答案: SELECT职工号,姓名 FROM 职工

WHERE 姓名 LIKE ‘_ _阳%’; 11.将职工号=6887的年龄改为45岁。 答案: UPDATE 职工 SET 年龄=45

WHERE 职工号='6887 ' ;

12. 把对社会团体和参加两个表的数据查看、插入和删除数据的权力赋给用户李平,并允许他再将此权力授予其他用户。

答案:. GRANT select,insert ,delete ON TABLE 社会团体,参加 TO 李平 WITH GRANT OPTION ;

现有关系数据库如下

学生(学号,姓名,性别,专业,奖学金)课程(课程号,名称,学分)学习(学号,课程号,分数)用关系代数表达式实现下列1—2

1. 检索“英语”专业学生的学号、姓名、性别。

2.检索课程号为“10031”,课程成绩高于90分的所有学生的学号。

1. П学号,姓名,性别(σ专业='英语'(学生))

2. П学号 (σ分数>90∧课程号='10031'(学习))

用SQL语言实现下列3—103. 检索姓王学生的姓名、专业。

答案:SELECT姓名,专业FROM 学生 WHERE 姓名 LIKE“王%” ;

4. 检索奖学金在200元以下的学生姓名和专业。

答案:SELECT姓名,专业

FROM 学生

WHERE 奖学金<200;

5. 检索选修课程号为“C135”课程的学生信息,包括学号,姓名和专业

答案:SELECT 学号,姓名,专业FROM 学生,学习

WHERE 课程号='C135' and 学生.学号=学习.学号;

6. 检索学习‘C1’号课程的学生最高分。

答案:SELECT MAX(分数)

FROM 学习

WHERE 课程号='C1' ;

7. 向学生表中插入一个记录(‘980810’,‘王东’,‘男’,‘计算机’,150)

.. ..

答案:.INSERT INTO 学生

VALUES(‘980810’,‘王东’,‘男’,‘计算机’,150);

8. 定义“英语”专业学生所学课程的信息视图AAA,包括学号、姓名、课程号和分数

答案:CREATE VIEW AAA(学号,姓名,课程号,分数)

AS SELECT 学号,姓名,课程号,分数 FROM 学生,学习

WHERE 学生.学号 =学习.学号 AND 专业=’英语’ ;

9. 检索所有有成绩的学生学号和课程号。

答案:SELECT 学号,课程号

FROM 学习

WHERE 成绩 IS NULL;

10. 检索选修C56 课程的学生学号和成绩,检索结果按分数的降序排列。

答案:.SELECT 学号,成绩 FROM 学习

WHERE 课程号=‘C56’ ORDER BY 成绩 DESC;

有如下三个关系表

st(sno,sn,sa,ss): 学生表格,sno:学号 sn:姓名 sa:年龄 ss:性别

sc(sno,cno,score): 学生选择课程表格,sno:学号 cno:课程号 score:成绩 c(cno,cn,ct): 课程表格,cno:课程号 cn:课程名 ct:课程学时 1. 用关系代数写出下面查询的表达式(每题4分)

?SNO,SN,SA(?SS?'女'(ST))(1)查找所有女生的学号、姓名和年龄。

(2)查找选修了“数据库技术” 的学生学号和成绩。

.. ..

?SNO,SCORE(?CN?'数据库技术'(SC??C))

(3)查找选修了“软件工程” 的男生姓名和年龄。

?SN,SA(?CN?'软件工程'?SS?'男(ST??SC??C))

'2. 请按以下题目的要求写出相应的SQL语句(每题4分) (1) 定义学生关系表,要求学号属性非空,取值唯一; create table st(sno char(10) not null unique, sn char(20) , sa int, ss char(2));

(2) 查询年龄大于26岁的男生学号和姓名;

select sno, sn from st where sa>26 and ss=’男’; (3) 查询全体学生的姓名和出生年份; select sn, 2018-sa from st;

(4) 查询年龄18到30岁之间的学生姓名和年龄; select sn, sa from st where sa between 18 and 30; (5) 查询所有姓孙的学生学号、姓名; select sno,sn from st where sn like ‘孙%’; (6)查询男女学生的平均年龄;

select ss , avg(sa) from st group by ss; (7)查询学习5号课程的最高分和最低分。 select max(score),min(score) from sc; 综合题:

.. ..