yy笔试总结

数据库

student表

student_idstudent_name

course表

course_idcourse_name

course_score

score_idstudent_idcourse_idscore

建表测试语句

CREATE TABLE IF NOT EXISTS student (
student_id varchar(255) NOT NULL,
student_name varchar(255) NOT NULL,
PRIMARY KEY (student_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS course (
course_id varchar(255) NOT NULL,
course_name varchar(255) NOT NULL,
PRIMARY KEY (course_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS course_score (
score_id varchar(255) NOT NULL,
student_id varchar(255) NOT NULL,
course_id varchar(255) NOT NULL,
score int(255) DEFAULT NULL,
PRIMARY KEY (score_id,student_id,course_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO student VALUES ('s1', '小明');
INSERT INTO student VALUES ('s2', '小宇');
INSERT INTO student VALUES ('s3', '小辉');

INSERT INTO course VALUES ('c1', '操作系统');
INSERT INTO course VALUES ('c2', '数据库');
INSERT INTO course VALUES ('c3', '计网');

INSERT INTO course_score VALUES ('1','s1','c1', 99);
INSERT INTO course_score VALUES ('2','s1','c2', 97);
INSERT INTO course_score VALUES ('3','s1','c3', 98);

INSERT INTO course_score VALUES ('4','s2','c1', 59);
INSERT INTO course_score VALUES ('5','s2','c2', 87);
INSERT INTO course_score VALUES ('6','s2','c3', 95);

INSERT INTO course_score VALUES ('7','s3','c1', 90);
INSERT INTO course_score VALUES ('8','s3','c2', 94);
INSERT INTO course_score VALUES ('9','s3','c3', 89);

小明各科按成绩排序输出课程名称和成绩

三表left join

SELECT course_name,score FROM
(( course_score LEFT JOIN student ON  course_score.student_id = student.student_id)
LEFT JOIN  course ON course_score.course_id = course.course_id )
WHERE student.student_name = "小明" 
ORDER BY score desc

在这里插入图片描述

输出总成绩第一名的学生姓名和总分

SELECT student_name,SUM(score)
FROM 
(course_score LEFT JOIN student on course_score.student_id = student.student_id) 
GROUP BY course_score.student_id 
ORDER BY SUM(score) DESC LIMIT 1;

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值