学生表 班级表 mysql

   日期:2024-12-28    作者:l19c5 移动:http://ljhr2012.riyuangf.com/mobile/quote/76845.html

 

5.12 添加四张表
student  :sid  sname sbirth sex
sscore   :sid  cid score
course   :cid  cname tid
teacher  :tid  tname

用excel的randbetween函数造了四张csv文件,导入navicat:

编码—10008 (MAC - Simplified Chinese GB 2312)<百度选择此码没再出现乱码现象>

score字段数据类型选择float

 此跳过了建表、 insert into 直接进入面试题练习。

正文

大纲:分为四大模块

一、简单查询

二、汇总分析

三、复杂查询

四、多表查询

构造思路:

壮志前言之一blablabla:

X老师教育我们要不耻下问,同时X教师也教育我们要打好基础,脚踏实地。

<也就是说你可能在山脚会停留很久,并且可能会不断的徘徊绕圈,但相信不久之后你就会爬到山峰..哦不山腰..哦不山坡..哦不还在山脚...>

<哪怕在山脚,但最起码你从山脚的这头爬到了山脚的这头呀~!!!>

凌志前言之二bibibibi:

做出一个准确的报表

1、熟悉表结构,并从业务逻辑上理解每个字段和每个值;

2、构造sql的逻辑思维,过程构造很重要;

3、检查数据是否符合业务逻辑,准确且反复验证;

——来自《风控策略分析师的日常是怎样的》

一、简单查询

练习一:查找学生

1、查询姓‘许’的学生名称

SELECT * FROM student WHERE sname LIKE '许%';

2、查询姓名中最后一个字是‘一’的学生名称

SELECT * FROM student WHERE sname LIKE '%一';

3、查询姓名中带‘清’的学生名称

SELECT * FROM student WHERE sname LIKE '%清%';

4、查询姓‘叶’的学生的个数

SELECT COUNT(sname)as 数量 FROM student WHERE sname LIKE '叶%'

 二、汇总分析

练习二:汇总 sum求和 count计数

5、查询课程编号为002的总成绩

SELECT SUM(score) AS 总成绩 FROM sscore WHERE cid='002'

6、查询选了课程的学生人数

SELECT COUNT(DISTINCT sid)选了课程的总人数 FROM

 练习三:分组 group by

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

 8、查询每门课程被选修的学生数

 9、查询男生、女生数

1)  count(列名) 区别:https://www.iteye.com/blog/eeeewwwqq-1972576

————————————————————————————————————————5.14————————————————————————————————————————

练习四:分组结果的条件

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

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

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

13、查询不及格的课程并按课程号从大到小排列

练习五 :排序

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

 15、查询课程编号为“2”且分数小于60的学生学号,结果按按分数降序排列

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

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

三、复杂查询

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

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

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

练习六:日期

21、查找1998年出生的学生名单

练习七:分取每组最大值、最小值、最大的topn记录

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

23、取各科成绩最大值、最小值、平均值

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

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

 课程2由于有两个42最低成绩,所以有两行数据

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

四、多表查询 

练习八:联结

27、查询所有学生的学号、姓名、选课数、总成绩,并按成绩升序

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

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

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

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

 32、查询课程编号为3且课程成绩在80分以上的学生的学号和姓名|

 33、将成绩表实现行转列

思路:使用sum/max +case when 简单函数实现行转列

 

 


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号