SQL經典面試題集錦
阿新 • • 發佈:2017-07-08
create var nod size int 創建 mark art nbsp
(3)成績表
(4)教師表
3、問題
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經典面試題集錦