python编辑学生分数_Python 之 MySql 每日一练 01

22274174b3152e0dc5b0ccf9305268a7.gif
7852b1e4ef16865ba4c0c306c61b9de5.png

一、表名和字段

–1. 学生表 student (s_id,s_name,s_birth,s_sex) –学生编号,学生姓名,出生年月,学生性别

–2. 课程表 course (c_id,c_name,t_id) –课程编号,课程名称,教师编号

–3. 教师表 teacher (t_id,t_name) –教师编号,教师姓名

–4. 成绩表 score (s_id,c_id,s_score) –学生编号,课程编号,分数

具体详情看 Python 之 MySql 每日一练 00


二、Mysql 题目

查询"01"课程比"02"课程成绩高的学生的信息及课程分数


三、Mysql 分析

● 题目要求

① 学生信息

② 学生对应的 "01" 和 "02" 课程分数

③ 条件:"01" 课程分数高于 "02" 课程分数


● 表分析

6a4d4a8db5a348d8b17236bafdbbfa45.png

student 表

3aea38a30eacd97bb99201087cba9d02.png

score 表

① s_id 是唯一的

② 同一 s_id 在 score 表中有多条记录

一个同学有多个课程的成绩,有些缺考同学在 score 表中会没有分数记录,比如 s_id = "06",缺考 "02" 课程

③ 由于 "01" 课程 和 "02" 课程的成绩不在同一行,在 Mysql 中不能直接进行比较

需要做连接处理


● sql 分析

① 先查出所有学生的课程 "01" 的分数及该学生信息

5032742420efa86f37c4ff841bb77f9f.png
0b2ed18f46b7c0c54bf201c836245bf7.png

再用左外联接查出这些学生课程 2 的分数,因为 s_id = "06",缺考 "02" 课程

9eed737c2559693e4895ca761f441f26.png
a0ddca69a14b343e4cb690d34d555978.png

第二个连接不能用内连接,因为内连接只显示双方条件都符合的,即两个课程都参加考试了的。从表数据可知有人可能缺考

③ 在 where 后加上 b.s_score > c.s_score

ffcf839ec684565cf19d9bb5dc290ee8.png

注意:

● on 后面的筛选条件主要是针对关联表的(对于主表的筛选条件不适用)

● 对于主表的筛选条件应该放在 where 后面,不应该放在 on 后面


四、Mysql 方案

04c0db942fe96ff129d6aad2329d7f52.png

五、扩展 -- 巧用 SQLyog 工具

在我们使用 select * from 表名时,可能因为表名复杂或者相似,容易写错,也比较费时间。

1、先进入图 1 界面

d2b91be215fe1c98e616cde7affa91f9.png

2、双击表名

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值