1、 1一、选择题1、SQL 语言是( )语言。 ( SQL 特点) (易)A)层次数据库 B)网络数据库 C)关系数据库 D)非数据库答案2、SQL 语言具有两种使用方式,分别称为交互式 SQL 和( ) 。( SQL 语言使用方式) (易)A) 提示式 SQL B)多用户 SQL C)嵌入式 SQL D)解释式 SQL答案3、 ( )包括数据库模式定义和数据库存储结构与存取方法定义。 ( )实现对 DB 的操作,包括查询、插入、删除、修改数据库中的数据。 ( )用于数据保护,包括数据的安全性,完整性,并发控制和恢复等。 (数据库语言 DDL DML DCL) (中)A) 数据控制子语言 B)数
2、据定义子语言 C)数据操纵子语言 D)数据库语言答案4、下列 SQL 语句中,实现数据检索的语句是( ) ,修改表结构的是( ) ,修改属性值的是( ) ,删除表结构的是( ) ,删除表记录的是( ) 。( DROP TABLE, ALTER TABLE,UPDATE, DELETE,SELECT 语句) (难)A)SELECT B)DROP C)UPDATE D)ALTER E)DELETE答案:答案:C;C ;B C A;A D C B E二、用关系代数表达式及 SQL 语句描述关系查询1、 设有如下关系表 R、S 和 T: (易)R(BH, XM, XB, DWH)S(DWH, DWM)
3、T(BH, XM, XB, DWH)写出实现下列关系代数的 SQL 语句:1) )(10RDWH2) XBM,3) DWH,)(女4) SR25) DWHXBMSR,)(男解:1) SELECT * FROM R WHERE DWH=100;2) SELECT XM,XB FROM R;3) SELECT XM,DWH FROM R WHERE XB=女;4) SELECT R.*,S.DWM FROM R, S WHERE R.DWH=S.DWH;5) SELECT XM,XB,DWH FROM R,S WHERE R.DWH=S.DWH AND XB=男;2、设有如下关系模式:studen
4、t(NO, NAME , SEX ,BIRTHDAY, CLASS)teacher(NO,NAME,SEX,BIRTHDAY,PROF,DEPART) PROF 为职称,DEPART 为系别course(CNO, CNAME, TNO)score(NO, CNO, DEGREE) DEGREE 为成绩写出实现以下各题功能的 SQL 语句:(1) 查询至少有 2 名男生的班号; (难)(2) 查询不姓“王”的同学记录; (易)(3) 查询每个学生的姓名和年龄; (难)(4) 查询学生中最大和最小的 birthday 日期值; (中)(5) 查询学生表的全部记录并按班号和年龄从大到小的顺序; (中
5、)(6) 查询男教师及其所上的课程; (中)(7) 查询最高分同学的学号,课程号和成绩; (中)(8) 查询和“李军”同性别并同班的所有同学的姓名; (中)(9) 查询选修“数据库系统概论”课程的男同学的成绩表; (中)(10) 查询所有未讲课的教师的姓名和所在系别; (难)(11) 查询“计算机系”教师所教课程的成绩表; (难)(12) 查询选修“3-105”课程的成绩高于 “109”号同学成绩的所有同学的记录; (难)(13) 查询最低分大于 70,最高分小于 90 的学生的学号; (中)(14) 查询成绩在 60 到 80 之间的所有记录; (中)(15) 查询成绩比该课程平均成绩低的同
6、学的成绩表; (相关子查询) (难)(16) 查询所有女教师和女同学的姓名、性别和生日; (中)(17) 查询“计算机系”和“无线电系”不同职称的教师的姓名和职称; (中)解:(1)SELECT CLASS FROM student WHERE SEX=男GROUP BY CLASS HAVING COUNT(*)=2; (2)SELECT * FROM student WHERE NAME NOT LIKE 王*;(3)SELECT NAME,year(date()-year(birthday) as age FROM student;(4)SELECT MAX(BIRTHDAY), MIN
7、(BIRTHDAY) FROM student ;(5)SELECT * FROM student ORDER BY CLASS,BIRTHDAY DESC;(6)SELECT x.name, ame FROM teacher x, course y WHERE x.no=y.tno and x.sex=男;(7)SELECT * FROM score WHERE degree=(SELECT max(degree) FROM score);3(8)SELECT name FROM student WHERE sex=(SELECT sex FROM student WHERE name=李军
8、 ) and class=(SELECT class FROM student WHERE name=李军);(9)SELECT * FROM score WHERE no IN(SELECT no FROM student WHERE sex=男) and cno=(SELECT cno FROM course WHERE cname=数据库系统概论);(10)SELECT name, depart FROM teacher t WHERE NOT EXIST (SELECT * FROM course c WHERE c.tno=t.no);(11)SELECT * FROM score
9、s, teacher t, course c WHERE t.depart=计算机系 and t.no=c.tno and o=o;(12)SELECT * FROM student s, score sc WHERE s.no=sc.no and cno=3-105 and degree(SELECT degree FROM sc WHERE no=109 and cno=3-105);(13)SELECT no FROM score GROUP BY no HAVING min(degree)70 and max(degree)90;(14)SELECT * FROM score WHER
10、E degree BETWEEN 60 AND 80;(15)SELECT * FROM score a WHERE degree (SELECT avg(degree) FROM score b WHERE o=o group by o);(16)SELECT name, sex, birthday FROM teacher WHERE sex=女UNION SELECT name, sex, birthday FROM student WHERE sex=女;(17) SELECT name, prof FROM teacher WHERE depart=计算机系 OR depart=无线电系 order by prof;