Python连接Liunx中mysql数据库-三表查询【10个经典案例】

17 篇文章 2 订阅
10 篇文章 0 订阅

在这里插入图片描述
关于Python连接liunx中mysql数据库的方式在这一篇文章
Python连接Liunx中mysql数据库-保姆级教程
关于Python针对liunx中的mysql数据库进行增删改查操作的文章在这一篇可以看一下
Python连接Liunx中mysql数据库-增删改查
对于单表查询的学习可以看这一篇文章
Python对liunx中mysql数据库进行单表查询 10个案例带你了解
Python连接Liunx中mysql数据库-多表查询【10个经典案例】

今天持续分享Liunx连接mysql数据库进行三表查询

在liunx服务器中数据库创建三个表

create table `a`(
	`id` int(10),
	`name` VARCHAR(20),
	`age` int(5),
	`sex` int(1)
);
CREATE table `b`
(
	`id` int(10),
	`bid` char(10),
	grade CHAR(20)
);
CREATE table `c`(
	`bid` char(10),
	`cname` char(20),
	`teacher` char(20)
)

表a数据
在这里插入图片描述

表b数据
在这里插入图片描述

表c数据
在这里插入图片描述

1.查询出学习成绩60分以上的学生姓名与成绩与学科;

sql1 ='select name,grade,cname from a,b,c where a.id = b.id and c.bid = b.bid and grade >60;'
curs.execute(sql1)
print(curs.fetchall())

在这里插入图片描述

2.查询姓名以qi结尾的学生姓名及其任课老师姓名

sql1 ='select name,teacher from a,b,c where a.id = b.id and c.bid = b.bid and name like "%qi";'
curs.execute(sql1)
print(curs.fetchall())

在这里插入图片描述

3.选修课名为english的学生学号与姓名;

sql1 ='select name,a.id from a,b,c where a.id = b.id and c.bid = b.bid and cname="english" ;'
curs.execute(sql1)
print(curs.fetchall())

在这里插入图片描述

4.选修课号为c1的学生学号;

sql1 ='select a.id from a,b,c where a.id = b.id and c.bid = b.bid and c.bid="c1" ;'
curs.execute(sql1)
print(curs.fetchall())

在这里插入图片描述

5.请问每科各有那些学生求姓名成绩;

sql1 ='select name,grade,c.cname from a,b,c where a.id = b.id and c.bid = b.bid  ;'
curs.execute(sql1)
print(curs.fetchall())

在这里插入图片描述

6.请问70分以上的学生姓名及学科;

sql1 ='select name,c.cname from a,b,c where a.id = b.id and c.bid = b.bid and grade>70  ;'
curs.execute(sql1)
print(curs.fetchall())

在这里插入图片描述

7.请问考试不及格的考生姓名以及科目名称;

sql1 ='select name,c.cname from a,b,c where a.id = b.id and c.bid = b.bid and grade<60  ;'
curs.execute(sql1)
print(curs.fetchall())

在这里插入图片描述

8.找出所有科目中最高分的学生姓名成绩

sql1 ='select any_value(name),max(grade),any_value(cname)  from a,b,c where a.id = b.id and c.bid = b.bid order by cname desc;'
curs.execute(sql1)
print(curs.fetchall())

在这里插入图片描述

9.各个科目的平均成绩各是多少;

sql1 ='select avg(grade),cname  from a,b,c where a.id = b.id and c.bid = b.bid group by cname;'
curs.execute(sql1)
print(curs.fetchall())

10.显示出参加考试的学生的学号和姓名;

sql1 ='select name,a.id  from a,b,c where a.id = b.id and c.bid = b.bid ;'
curs.execute(sql1)
print(curs.fetchall())

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

轻烟飘荡

我想吃甜筒

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值