SQL经典面试50题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.一般面试时考SQL,主要就是考你“统计分析”这一块,下面我们来看面试官经常采用的手段。

2.

3.

4.由4张简单的不能再简单的表,演变出50道SQL

5.

6.

7.哈哈哈哈,够这个面试官面个15,20个人,不带重复的了,而且每个SQL你真的不动动脑子还写

不出呢,你别不服气,下面开始。

8.

9.表结构:

10.

11.

12.

13.表Student

14.

15.(S#,Sname,Sage,Ssex) 学生表

16.

17.

18.S# student_no

19.

20.Sage student_age

21.

22.Ssex student_sex

23.

24.

25.

26.表Course

27.

28.(C#,Cname,T#) 课程表

29.

30.

31.C# course_no

32.

ame course_name

34.

35.T# teacher_no

36.

37.

38.

39.

40.

41.

42.表SC(学生与课程的分数mapping 表)

43.

44.(S#,C#,score) 成绩表

45.

46.

47.S# student_no

48.C# course_no

49.score 分数啦

50.

51.

52.

53.

54.

55.

56.表Teacher

57.

58.(T#,Tname) 教师表

59.

60.

61.T# teacher_no

62.Tname teacher_name

63.

64.

65.

66.

67.

68.

69.50道问题开始

70.

71.

72.

73.

74.

75.

76.1、查询“001”课程比“002”课程成绩高的所有学生的学号;

77.

78.

79.select # from (select s#,score from SC where C#='001') a,(select s#,sc

ore

80.

81.from SC where C#='002')

82.

83.

84.

85.

86.where > and #=#;

87.

88.

89.

90.

91.2、查询平均成绩大于60分的同学的学号和平均成绩;

92.

93.select S#,avg(score)

94.

95.from sc

96.

97.group by S# having avg(score) >60;

98.

99.

100.

101.

102.3、查询所有同学的学号、姓名、选课数、总成绩;103.

104.select #,,count#),sum(score)

105.

106.from Student left Outer join SC on #=# 107.

108.group by #,Sname

109.

110.

111.

112.

113.4、查询姓“李”的老师的个数;

114.

115.select count(distinct(Tname))

116.

117.from Teacher

118.

119.where Tname like '李%';

120.

121.

122.

123.

124.5、查询没学过“叶平”老师课的同学的学号、姓名;125.

126.select #,

127.

128.from Student

129.

130.where S# not in (select distinct( #) fromSC,Course,Teacher where #=#and #=# ='叶平');

131.

132.

133.

134.

135.6、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名;

136.

137.select #, fromStudent,SC where #=# #='001'and exists( Select * from SC as SC_2 where #=# and #='002');

138.

139.

140.

141.

142.7、查询学过“叶平”老师所教的所有课的同学的学号、姓名;

143.

144.select S#,Sname

145.

146.from Student

147.

148.where S# in (select S# from SC,Course ,Teacher where #=# #=# and = '叶平

'group by S# having count#)=(select count(C#) fromCourse,Teacher #=# and Tname='叶平'));

149.

150.

151.

152.

153.8、查询课程编号“002”的成绩比课程编号“001”课程低的所有同学的学号、姓名;154.

155.Select S#,Sname from (select #,,score ,(select score from SC SC_2 wh ere #=#and #='002') score2

156.

157.from Student,SC where #=# andC#='001') S_2 where score2

159.

160.9、查询所有课程成绩小于60分的同学的学号、姓名;

161.

162.select S#,Sname

163.

164.from Student

165.

166.where S# not in (select # fromStudent,SC where #=# andscore>60);

相关文档
最新文档