sql相加运算_SQL求职面试题

一、简单查询题目

查询姓“猴”的学生名单

9b32c92dfb00645296305e18b4c7dacc.png

查询姓名中带“猴”的学生名单

1f1b3160c3aa46ab9be9b8fa89550b80.png

查询姓“孟”老师的个数

fdd8c28170f6406d4fb5e9379557a9f8.png

二、汇总分析题目

查询课程号为“0002”的总成绩

2492eca7ec441233c0c77794706b39d8.png

查询选了课程的学生人数

3c1b92dde69353e54e04223dafc9b7b0.png

查询各科成绩最高和最低的分

c227f7ef85061c212cd36e27309b58e2.png

查询每门课程被选修的人数

200117b98e18b98a5879872ccddba967.png

查询男生、女生人数

c21f9064ea6212e6a5edb92cdd52aca4.png

查询平均成绩大于60分学生的学号和平均成绩

f59b5d60a95fa2ec39c98e3226dabbcb.png

查询至少选修两门课程的学生学号

0a9d97e88e5a05ae584a23bcef862e66.png

查询同名同姓学生名单并统计同名人数

a62f36fa53fdc7304405a95ad65334eb.png

查询成绩小于90分的课程并按课程号从大到小排列

29e80c526af71e286b4b4f7c7cd92a0f.png

查询每门课程的平均成绩,结果按平均成绩升序排序,平均成绩相同时,按课程号降序排列

277817eb13a2f26b653aec7a68f4745f.png

检索课程编号为“0003”且分数小于90的学生学号,结果按按分数降序排列

d5fbb7c125e463e43bb107eaa77ea5c5.png

统计每门课程的学生选修人数(超过2人的课程才统计),要求输出课程号和选修人数,查询结果按人数降序排序,若人数相同,按课程号升序排序

386d5f4ec259c4c1dc1d9edb6a928a82.png

查询两门以上不及格课程的同学的学号及其不及格课程的平均成绩

8d8d2a6ee485fdf778bf803957351814.png

查询两门以上不及格课程的同学的学号及其所有课程的平均成绩

559d9f5ae695959cdbe4da9314c6aa77.png

三、复杂查询:

查询所有课程成绩小于90分学生的学号、姓名

92ce1469149de7d60b6e2564fef65f35.png

查询没有学全所有课的学生的学号、姓名

7868289016f068db7ae55f1c8e09f912.png

查询出只选修了两门课程的全部学生的学号和姓名

172994e9a3026225367c97ef3ff2382c.png

1990年出生的学生名单

926ef385b094d385f816dd4be13da3b3.png

topN问题:

按课程号分组取成绩最大值所在行的数据

85c56378df60b304082de6fde1a6a265.png

按课程号分组取成绩最小值所在行的数据

a07cca195f96c8fd027a3b83deaffab5.png

查询各科成绩前两名的记录

7da2b911a7e8775927f44a551a0508c0.png

四、多表查询

查询所有学生的学号、姓名、选课数、总成绩

59efcb34497ed78996c7e7f84e4f6ba9.png

查询平均成绩大于85的所有学生的学号、姓名和平均成绩

8813ba05c48a780a9afa36670c4f0452.png

查询学生的选课情况:学号,姓名,课程号,课程名称

53bb8c64e5d4fab21c088d2836bc3c99.png

五、Case 表达式

查询出每门课程的及格人数和不及格人数

112e3c990ac7a3771dd15e39e47db89d.png

使用分段[100-85],[85-70],[70-60],[‹60]来统计各科成绩,分别统计:各分数段人数,课程号和课程名称

f03a91c84e2a43600b447acfb45f7b47.png

成绩表行列转换

cf163f9c9784dc1bded327fb2dfe57f2.png

六、如何提高SQL查询效率

  1. select子句中尽量避免使用*,需要哪些列的数据,就提取哪些列的数据。
  2. where子句比较符号左侧避免函数或加减乘除运算,应当将其移到比较符号的右侧。
  3. 尽量避免使用in和not in,如果条件值是连续的,可以使用between代替。比如 in(8,9)换成between 8 and 9 。
  4. 尽量避免使用or,可以将查询语句按条件拆分成多个语句并用union相加。
  5. 使用limit子句限制返回的数据行数

end.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值