sql多表联查练习题

在这里插入图片描述

1.查询名人表性别为男的作者

select *
from celebrity c
where c.ssex= '男'

在这里插入图片描述

2.查询静夜思的作者

select 
c.sname
from 
celebrity c
inner join summary s on c.sid=s.sid 
inner join works w on w.wid = s.wid
where 1=1
and w.wwork = '静夜思'

在这里插入图片描述

3.查询李白和杜甫的年纪

select 
c.sname,
c.sage
from 
celebrity c
where 1=1
and c.sname = '李白'
or c.sname = '杜甫'
![在这里插入图片描述](https://img-blog.csdnimg.cn/edbf51836a7044ed88c38ddc032b460b.png)

4.查询名人表中的男女个数

select ssex,count(1)
from celebrity
group by ssex

在这里插入图片描述

5.查询白居易写的作品名称和对应的名句

select 
w.wwork,
s.sassess
from
celebrity c
inner join summary s on c.sid=s.sid 
inner join works w on w.wid = s.wid
where 1=1
and c.sname = '白居易'

在这里插入图片描述

6.查询年纪在25到30之间的个数

select count(1)
from celebrity 
where sage between 25 and 30

在这里插入图片描述

7.查询名人表中的最小两条的数据信息

select *
from celebrity
order by sage limit 0,2

8.查询李白的作品名称,名句和年纪

select 
w.wwork,
s.sassess,
c.sage
from
celebrity c
inner join summary s on c.sid=s.sid 
inner join works w on w.wid = s.wid
where 1=1
and c.sname = '李白'

9.将作品为望月的朝代修改为北宋

update works set wdynasty='北宋' where  wwork='望岳'

10.新增名人表中的一个作者,王伟,年纪25,性别男

insert into  values (7,'王伟',25,'男')

在这里插入图片描述

1.查询性孙的用户个数

select * 
from user
where name like '孙%'

2.查询年纪最大的2个用户名

select uname
from user
order by uage desc
limit 2

3.查询李三买的商品名

select p.pname
from user u
 inner join order01 o on o.ouid = u.uid
 inner join product p on o.opid = p.pid
where u.uname = '李三'

4.查询购买过电脑的用户名

select u.uname
from user u
 inner join order01 o on o.ouid = u.uid
 inner join product p on o.opid = p.pid
where 
	p.pname = '电脑'

5.查询订单是909090对应的用户名和商品

select u.uname,p.pname
from user u
 inner join order01 o on o.ouid = u.uid
 inner join product p on o.opid = p.pid
where 
 o.onumber='909090'

6.查询商品表中的最高价格的前两条数据

select * from 
product order by price desc limit 0,2

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

1.查询sc表中对应的何昊老师所授课的女生的信息

SELECT s.sname,s.age as '年龄', s.sex FROM 
  student s
 join sc on s.sno = sc.sno 
 join c on sc.cno = c.cno
where 1=1
 and c.cteacher = '何昊'
 and s.sex = '女'

2.找出所有没有选修何昊老师的所有学生的名字

SELECT DISTINCT(s.sname) FROM 
  student s
 join sc on s.sno = sc.sno 
 join c on sc.cno = c.cno
where 1=1
 and c.cteacher != '何昊'

3.列出所有不及格的学生姓名

select DISTINCT(s.sname)
from student s
 join sc on s.sno = sc.sno 
 join c on sc.cno = c.cno
where 1=1
 and sc.scgrade < 60

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本资源中的源码都是经过本地编译过可运行的,下载后按照文档配置好环境就可以运行。资源项目源码系统完整,内容都是经过专业老师审定过的,能够满足基本的学习、使用参考需求,如果有需要的话可以放心下载使用。关于mysql多表联查练习题,我们提供了以下几个例子来帮助您进行练习: 1. 假设有两个表,一个是学生表(student),包含学生的ID、姓名和班级;另一个是成绩表(grade),包含学生的ID和对应的科目及成绩。请编写一条SQL语句,查询出每个学生的姓名、班级和对应的科目及成绩。 SELECT s.姓名, s.班级, g.科目, g.成绩 FROM 学生表 s INNER JOIN 成绩表 g ON s.ID = g.ID 2. 假设有三个表,一个是学生表(student),包含学生的ID、姓名和班级;另一个是课程表(course),包含科目的ID和名称;最后一个是成绩表(grade),包含学生的ID、科目的ID和对应的成绩。请编写一条SQL语句,查询出每个学生的姓名、班级和对应的科目名称及成绩。 SELECT s.姓名, s.班级, c.科目名称, g.成绩 FROM 学生表 s INNER JOIN 成绩表 g ON s.ID = g.学生ID INNER JOIN 课程表 c ON g.科目ID = c.ID 3. 假设有四个表,一个是学生表(student),包含学生的ID、姓名和班级;另一个是课程表(course),包含科目的ID和名称;第三个是教师表(teacher),包含教师的ID和姓名;最后一个是成绩表(grade),包含学生的ID、科目的ID、教师的ID和对应的成绩。请编写一条SQL语句,查询出每个学生的姓名、班级、对应科目的名称、教师的姓名及成绩。 SELECT s.姓名, s.班级, c.科目名称, t.姓名, g.成绩 FROM 学生表 s INNER JOIN 成绩表 g ON s.ID = g.学生ID INNER JOIN 课程表 c ON g.科目ID = c.ID INNER JOIN 教师表 t ON g.教师ID = t.ID 以上是一些例子,您可以根据自己的实际情况进行练习,通过多表联查来获取需要的数据。希望对您有帮助。<span class="em">1</span> #### 引用[.reference_title] - *1* [Java Web课程设计,基于servlet+jsp+mysql做的影视管理系统.zip](https://download.csdn.net/download/qq_35831906/88259841)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值