您现在的位置是:主页 > news > 高端品牌网站有哪些/外链吧怎么使用

高端品牌网站有哪些/外链吧怎么使用

admin2025/5/2 9:30:35news

简介高端品牌网站有哪些,外链吧怎么使用,北京网站建设最便宜的公司哪家好,关于建筑工程的网站面试-MySQL(四) 面试-MySQL(一) 面试-MySQL(二) 面试-MySQL(三) 文章目录面试-MySQL(四)1.查询最大成绩的学生信息2.编写SQL语句2.1.如果学号的前两位表示年…

高端品牌网站有哪些,外链吧怎么使用,北京网站建设最便宜的公司哪家好,关于建筑工程的网站面试-MySQL(四) 面试-MySQL(一) 面试-MySQL(二) 面试-MySQL(三) 文章目录面试-MySQL(四)1.查询最大成绩的学生信息2.编写SQL语句2.1.如果学号的前两位表示年…

面试-MySQL(四)

面试-MySQL(一)
面试-MySQL(二)
面试-MySQL(三)

文章目录

  • 面试-MySQL(四)
    • 1.查询最大成绩的学生信息
    • 2.编写SQL语句
      • 2.1.如果学号的前两位表示年级,要查找98级女生的姓名
      • 2.2.统计参加本次考试的学生人数
      • 2.3.统计本次考试中每门课程的最高分和最低分
      • 2.4.要查找所以需要补考(小于60分)的学生姓名和这门课程的名称和成绩
      • 2.5.查询每个学生需要补考(小于60分)的课程的平均分,并以平均分排序


学生表
学生表
学生id(a.id) 学生姓名(name) 学生性别(sex) 学生年龄(age) 班级id(cid)
成绩表
学生id(stu_id) 科目id(sid) 成绩(t_score) 班级id(cid)

1.查询最大成绩的学生信息

SELECT a.*,c.t_score FROM student a INNER JOIN 
(SELECT b.stu_id,SUM(b.score) AS t_score FROM st_score b 
GROUP BY b.stu_id) c WHERE a.id = c.stu_id GROUP BY a.cid HAVING MAX(c.t_score);

2.编写SQL语句

t_score 成绩表

CREATE TABLE `t_score`  (`sc_number` varchar(8) NOT NULL COMMENT '学号',`sc_name` varchar(50) NULL COMMENT '姓名',`sc_sex` char(2) NULL COMMENT '性别(男:1,女:0)',`sc_courseid` char(5) NOT NULL COMMENT '课程号',`sc_score` int(3) NULL COMMENT '分数',`sc_ismakeup` char(2) NULL COMMENT '当前考试是否需要补考(补考:1,非补考:0)',PRIMARY KEY (`sc_number`, `sc_courseid`)
);

t_course 课程表

CREATE TABLE `t_course`  (`co_id` char(5) NOT NULL COMMENT '课程号',`co_name` varchar(3) NULL COMMENT '课程名',`co_desc` varchar(60) NULL COMMENT '课程描述',PRIMARY KEY (`co_id`)
);

2.1.如果学号的前两位表示年级,要查找98级女生的姓名

SELECT sc_name  FROM t_score WHERE SUBSTR(sc_number,0,2)='98' AND  sc_sex = '0' GROUP BY sc_name;

SUBSTR() 函数 :截取字符串
SUBSTR( )与SUBSTRING( )意思相等
函数语法
SUBSTR (str, pos) 截取从pos位置开始到最后的所有str字符串
SUBSTR (str, pos, len)
参数说明:
str为列名/字符串;
pos为起始位置;mysql中的起始位置pos是从1开始的;如果为正数,就表示从正数的位置往下截取字符串(起始坐标从1开始),反之如果起始位置pos为负数,那么 表示就从倒数第几个开始截取;
len为截取字符个数/长度。

2.2.统计参加本次考试的学生人数

SELECT COUNT(distinct(sc_number)) AS number FROM t_score;

2.3.统计本次考试中每门课程的最高分和最低分

     SELECT sc_courseid,MAX(sc_score) AS Max_Score,MIN(sc_score) AS Min_Score FROM t_score GROUP BY sc_courseid;

2.4.要查找所以需要补考(小于60分)的学生姓名和这门课程的名称和成绩

SELECT  a.sc_name, b.co_name, a.sc_score FROM t_score a,t_course b WHERE a.sc_courseid = b.co_id AND a.sc_score  < 60;

2.5.查询每个学生需要补考(小于60分)的课程的平均分,并以平均分排序

SELECT sc_name,AVG(sc_score) AS Avg_Score FROM t_score  WHERE sc_score  < 60GROUP BY sc_nameORDER BY Avg_Score