首页 > 代码库 > SQL经典面试题集锦
SQL经典面试题集锦
1、问题背景
(1)学生表(学号,姓名,年龄,性别)
student(S#,Sname,Sage,Ssex)
(2)课程表(课程编号,课程名称,教师编号)
course(C#,Cname,T#)
(3)成绩表(学号,课程编号,分数)
student_score(S#,C#,score)
(4)教师表(教师编号,教师名称)
teacher(T#,tname)
2、创建表
(1)学生表
Create Table CREATE TABLE `student` ( `S#` bigint(12) NOT NULL COMMENT ‘学号‘, `Sname` varchar(20) DEFAULT NULL COMMENT ‘姓名‘, `Sage` int(3) DEFAULT NULL COMMENT ‘年龄‘, `Ssex` varchar(4) DEFAULT NULL COMMENT ‘性别‘, PRIMARY KEY (`S#`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8
Create Table CREATE TABLE `cource` ( `C#` bigint(12) NOT NULL COMMENT ‘课程编号‘, `Cname` varchar(20) DEFAULT NULL COMMENT ‘课程名称‘, `T#` bigint(12) DEFAULT NULL COMMENT ‘教师编号‘, PRIMARY KEY (`C#`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8
(3)成绩表
Create Table CREATE TABLE `student_score` ( `S#` bigint(12) NOT NULL COMMENT ‘学号‘, `C#` bigint(12) NOT NULL COMMENT ‘课程编号‘, `score` double DEFAULT NULL COMMENT ‘分数‘, PRIMARY KEY (`S#`,`C#`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8
(4)教师表
Create Table CREATE TABLE `teacher` ( `T#` bigint(12) NOT NULL COMMENT ‘教师编号‘, `tname` varchar(20) DEFAULT NULL COMMENT ‘教师名称‘, PRIMARY KEY (`T#`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8
3、问题
(1)查询“1”课程比“2”课程成绩高的全部学生的学号;
SELECT a.`S#` FROM (SELECT sc.`S#`, sc.`score` FROM student_score sc WHERE sc.`C#` = 1) a, (SELECT sc.`S#`, sc.`score` FROM student_score sc `student_score` WHERE sc.`C#` = 2) b WHERE a.score > b.score AND a.`S#` = b.`S#` ;
(2)查询平均成绩大于60分的同学的学号和平均成绩
SELECT sc.`S#`, AVG(sc.`score`) FROM student_score sc GROUP BY sc.`S#` HAVING AVG(sc.`score`) > 60 ;
SQL经典面试题集锦
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。