数据库面试题(4).doc

数据库面试题 四数据库写 SQL题( 30) 1.按要求写 SQL语句:根据集团成员培训业务,建立以下三张表: S (S#,SN,SD,SA) S#,SN,SD,SA 分别代表学号、学员姓名、所属单位、学员年龄 C (C#,CN ) C#,CN 分别代表课程编号、课程名称 SC ( S#,C#,G ) S#,C#,G分别代表学号、所选修的课程编号、学习成绩 要求如下: 1)使用标准 SQL语句查询成员名单中所属单位叫“技术一部”的人员总数及 平均年龄; 2)使用标准的 SQL语句更新学号为‘S#1’的姓名为“Mike”; 3)使用嵌套语句查询选修课程编号为‘C2’的学员姓名和所属单位; 4)使用嵌套语句查询不选修课程编号为‘C5’的学员姓名和所属单位; 5)查询选修课程超过 5门的学员学号和所属单位; 解答: 1) select count(SN),avg(SA) from S where SD=技术一部; 2) update S set SN=Mike where S#=S#1; 3) select SN,SD from S where S#=(select S# from SC where C#=C2); 4) select SN,SD from S where S# not in(select S# from SC where C#=C5); 5) select S#,SD from S where S#= (select S# from SC group by S# having count(S#)=5); 2.请根据以下四张表(其中course_t表的 teacher_id字段是teacher_t表的 id字段的外键引用), 拼写出相应的sql语句(oracle语法)。(15分) 学生表:students_t id name sex 001赵学生 Male 002钱学生 Male 003孙学生 Male 004李学生 Female 005周学生 Female … … … 教师表:teacher_t id name sex 001吴老师 Male 002郑老师 Male 003王老师 Male 004刘老师 Female 005张老师 Female 课程表:course_t id name credit teacher_id 001语文 3 001 002数学 3 002 003英语 4 003 004物理 3 004 005化学 2 005 006政治 1 001 007生物 1 005 008计算机 2 005 选课表:student_course_t id student_id course_id 001 001 001 002 001 002 003 001 003 004 002 001 005 002 007 … … … 1)统计每个学生选修的学分,并按学分降序排序 2)统计每个学生选修的所有课程和对应的任课老师;并按学生 Id和课程 Id排序 3)统计所有学生、所有课程和所有任课老师的对应关系;并按学生 Id和课程 Id排序 解答: 1)select sc.student_id,count(c.credit) from students_t s, course_t c, student_course_t sc where s.id=sc.student_id and c.id=sc.course_id group by sc.student_id order by count(c.credit); 2) select as s_name, as c_name , as t_name from students_t s, course_t c, student_course_t sc,teacher_t t where s.id=sc.student_id and c.id=sc.course_id and t.id=c.teacher_id order by s.id,c.id; 3)与 2)相同 3.假设有以下的两个表: Cus_A ID* Name Address … … … Cus_B ID* Name Address … … … *主键 表 Cus_A 和表 Cus_B的结构完全相同,表 Cus_A 和表 Cus_B中既存在 ID相同的记录,也存在 ID不 同的记录。现要求将ID只存在于表表Cus_A 中而不存在于表Cus_B中的记录全部插入到Cus_B表中, 并用表 Cus_A中的记录更新 Cus_B中相同的 ID的记录,请写出完成这一功能的存储过程。 解答: c

文档评论(0)

1亿VIP精品文档

相关文档