【计算机类职业资格】关系数据库操作语言SQL(四)及答案解析.doc
《【计算机类职业资格】关系数据库操作语言SQL(四)及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】关系数据库操作语言SQL(四)及答案解析.doc(15页珍藏版)》请在麦多课文档分享上搜索。
1、关系数据库操作语言 SQL(四)及答案解析(总分:100.00,做题时间:90 分钟)一、B设计题/B(总题数:9,分数:100.00)在 SQL Server 2000 中,有教师表 Teachers(TeacherID,Name, LeaderID),其中 TeacherID 是主码,类型是长度为 4 的普通编码定长字符串,且每位是09 的数字字符;Name 的类型是长度为 10 的普通编码可变长字符串;LeaderID 是每个教师的领导的 TeacherID。(分数:10.00)(1).写出创建 Teachers 表的 SQL 语句,要求语句中包含所有的约束。(分数:2.50)_(2).
2、现要查询 TeacherID 为“1234”的教师的领导的领导的 TeacherID,请给出相应的 SQL 语句,要求只使用一条 SQL 语句实现,且此语句中不允许包含子查询。(分数:2.50)_(3).如下两个关系表: Emp(eid, ename, age, did, salary),其各列含义为:职工号,姓名,年龄,部门号,工资。 Dept(did, dname, mgr_id),其各列含义为:部门号,部门名称,部门经理职工号。 写出一条 SQL 语句,查询工资大于 10000,且与其所在部门的经理年龄相同的职工姓名。(分数:2.50)_(4).写出创建下述关系表的 SQL 语句。 SB
3、tudent 表结构/B列名 含义 数据类型 约束Sno 学号 普通编码定长字符串,长度为 7 主码Sname 姓名 普通编码定长字符串,长度为 10 非空Ssex 性别 普通编码定长字符串,长度为 2 取值范围为:男,女Sage 年龄 微整型 大于等于 14Sdept 所在系 普通编码不定长字符串,长度为 20BCourse 表结构/B列名 含义 数据类型 约束Cno 课程号 普通编码定长字符串,长度为 10 主码Cname 课程名 普通编码不定长字符串,长度为 20 非空Periods 学时数 小整型 大于 0Property 课程性质 普通编码定长字符串,长度为 4 取值范围为:必修,选
4、修(分数:2.50)_存在如下表结构: BStudent 表结构/B列名 含义 数据类型 约束Sno 学号 普通编码定长字符串,长度为 7 主码Sname 姓名 普通编码定长字符串,长度为 10 非空Ssex 性别 普通编码定长字符串,长度为 2 取值范围为:男,女Sage 年龄 微整型 大于等于 14Sdept 所在系 普通编码不定长字符串,长度为 20BCourse 表结构/B列名 含义 数据类型 约束Cno 课程号 普通编码定长字符串,长度为 10 主码Cname 课程名 普通编码不定长字符串,长度为 20 非空Periods 学时数 小整型 大于 0Property 课程性质 普通编码
5、定长字符串,长度为 4 取值范围为:必修,选修BSC 表结构/B列名 含义 数据类型 约束Sno 学号 普通编码定长字符串,长度为 7 主码,引用 Student 的外码Cno 课程号 普通编码定长字符串,长度为 10 主码,引用 Course 的外码Grade 成绩 小整型 取值范围:0100写出实现下述操作的 SQL 语句:(分数:45.00)(1).查询选课门数超过 2 门的学生的平均成绩和选课门数。(分数:2.50)_(2).列出总成绩超过 200 分的学生,要求列出学号、总成绩。(分数:2.50)_(3).查询选修了“C02”号课程的学生的姓名和所在系。(分数:2.50)_(4).查
6、询成绩在 80 分以上的学生的姓名、课程名和成绩,并将结果按成绩的降序排列。(分数:2.50)_(5).查询计算机系男生修了“数据库基础”的学生的姓名、姓名和成绩。(分数:2.50)_(6).查询学生的选课情况,要求列出每位学生的选课情况(包括未选课的学生),并列出学生的学号和考试成绩。(分数:2.50)_(7).列出“数据库基础”课程考试成绩前三名的学生的学号、姓名、所在系和考试成绩。(分数:2.50)_(8).查询哪些学生合选了一门课程,要求列出合选课程的学生的学号和课程号。(分数:2.50)_(9).查询哪些课程没人选,要求列出课程号和课程名。(分数:2.50)_(10).查询计算机系学
7、生考试成绩高于全体学生的总平均成绩的学生的姓名、考试的课程号和考试成绩。(分数:2.50)_(11).查询 VB 考试成绩最低的学生的姓名、所在系和 VB 成绩。(分数:2.50)_(12).查询选修了 VB 课程的学生的学号、姓名、所在系和成绩,并对所在系进行如下处理:当所在系为“计算机系”时,显示“CS”;当所在系为“信息系”时,显示“IS”;当所在系为“数学系”时,显示“MA”;对其他系,均显示“OTHER”。(分数:2.50)_(13).查询每门课程的选课人数,如果选课人数超过了 100 人,显示“人多”;如果选课人数在 40100之间,显示“一般”;如果选课人数少于 40 人,显示“
8、较少”;如果此门课程没人选,显示“无人选”。(分数:2.50)_(14).在课程表中增加一条新记录:课程号为“C100”,课程名为“Java”,学时数 32,课程性质为“选修”。(分数:2.50)_(15).删除修课成绩小于 50 分的学生的修课记录。(分数:2.50)_(16).删除信息系修课成绩小于 50 分的学生的修课记录。(分数:2.50)_(17).将所有选修了“C01”号课程的学生的成绩加 10 分。(分数:2.50)_(18).将计算机系所有选修了“计算机文化学”课程的学生的成绩加 10 分。(分数:2.50)_有如下关系数据库:学生(学号,姓名,性别,专业,奖学金)课程(课程号
9、,名称,学分)学习(学号,课程号,分数)用 SQL 语言完成下列操作:(分数:10.00)(1).检索没有任何一门课程成绩在 80 分以下的所有学生的信息,包括学号、姓名和专业;(分数:2.50)_(2).检索没有获得奖学金同时至少有一门课程成绩在 95 分以上的学生信息,包括学号、姓名和专业;(分数:2.50)_(3).对成绩得过 100 分的学生,如果没有获得奖学金的,将其奖学金设为 1000 元;(分数:2.50)_(4).定义学生成绩得过满分(100 分)的课程视图 AAA,包括课程号、名称和学分。(分数:2.50)_现有“学生-选课-课程”关系数据库如下:学生表 S(Sno, Sna
10、me, Sage, Ssex, Sdept),各属性含义依次为学号,姓名,年龄,性别,所在系;选课表 SC(Sno, Cno, Grade),各属性含义依次为学号,课程号,成绩;课程表 C(Cno, Cname, Cteacher),各属性含义依次为课程号,课程名,授课教师;试用 SQL 语言完成以下操作:(分数:5.00)(1).检索年龄在 18 到 22 之间(含 18 和 22)的男生的学号、姓名及年龄;(分数:2.50)_(2).检索选修了“王杰”老师所授课程的学生的学号和姓名。(分数:2.50)_学生管理数据库包括 3 个基本表,其结构为:学生(学号,姓名,年龄,所在系)课程(课程表
11、,课程号)选课(学号,课程号,成绩)试用 SQL 语言完成操作:(分数:15.00)(1).求数学系或计算机系姓张的学生信息;(分数:2.50)_(2).求学生人数;(分数:2.50)_(3).求选修高等数学的学生人数;(分数:2.50)_(4).求选修了高等数学的学生学号和姓名;(分数:2.50)_(5).求其他系中比计算机系学生年龄都小的学生;(分数:2.50)_(6).求选修课程号为 C1 的课程且成绩为 90 分以上的学生学号、姓名及成绩。(分数:2.50)_已知关系模式:S(SNO, SNAME)学生关系,SNO 为学号,SNAME 为姓名;C(CNO, CNAME, CTEACHE
12、R)课程关系,CNO 为课程号,CNAME 为课程名,CTEACHER 为任课教师;SC(SNO, CNO,SCGRADE)选课关系,SCGRADE 为成绩。(分数:6.00)(1).找出没有选修过“李明”老师讲授课程的所有学生姓名;(分数:1.50)_(2).列出有两门以上(含两门)不及格课程的学生姓名及其平均成绩;(分数:1.50)_(3).列出既学过“1”号课程,又学过“2”号课程的所有学生姓名。(分数:1.50)_(4).在 SQL Server 2000 中,设某数据库中有商品表(商品号,商品名,进货价格),商品号为主码;销售表(商品号,销售时间,销售数量,销售价格,本次利润),商品
13、号和销售时间为主码,销售价格为本次销售商品的单价。现要求每当在销售表中插入前 4 列数据时(假设一次只插入一行数据),系统自动计算本次销售产生的利润,并将该利润赋给销售表的第 5 列“本次利润”。请编写实现上述功能的后触发型触发器代码。(分数:1.50)_在 SQL Server 2000 的某数据库中有如下两张关系表:学生表(学号,姓名,性别,系号),学号为主码系表(系号,系名,系简称),系号为主码(分数:3.00)(1).在数据库中执行如下 T-SQL 代码: DECLARE DeptID varchar(10) DECLARE cnt int Set cnt = 0 DECLARE cu
14、rsor1 cursor FOR SELECT 系号 FROM 系表 WHERE 系名 LIKE %电% OPEN cursor1 FETCH NEXT FROM cursor1 INTO DeptID WHERE FETCH_STATUS=0 BEGIN DECLARE temp_cnt int SELECT temp_int = COUNT(*) FROM 学生表 WHERE 系号 = DeptID SET cnt = cnt + temp_cnt FETCH NEXT FROM cursor1 INT0 DeptID END CLOSE cursor1 DEALLOCATE cursor
15、1 SELECT cnt 执行过程中发现速度比较慢,为了解决性能问题,需在功能不变的情况下,将此 T-SQL 代码改为一条 SQL 语句。请写出此SQL 语句(语句中不能含有子查询)并说明为什么此种修改可以提高性能。(分数:1.50)_(2).设在学生表的(姓名,系号)列上建有一个复合索引,该索引是否有助于提高下列两个语句的查询效率,并说明原因。 SELECT * FROM 学生表 WHERE 系号=1; SELECT * FROM 学生表 WHERE 姓名=张三(分数:1.50)_有学生表(学号,姓名,年龄,性别,系名,专业名,班号),设一个系可有多个专业,每个专业可有多个班,各班班号不重复
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 关系 数据库 操作 语言 SQL 答案 解析 DOC
