MySQL 数据库 高级子查询

子查询:

示例:查询学生“刘能”的同班同学

select id,studentName,classID from studentInfo where classID=(select classID from studentInfo where studentName='刘能');

注意:执行顺序,先执行子查询,再执行父查询;子查询和比较运算符联合使用,必须保证子查询返回的值不能多于一个

查询套查询的两种方法:

示例:查询《MySQL 数据库》考试成绩刚好不等于90分的学生名单

方法一:通过inner join实现

select S.studentName from studentInfo as S inner join exam as e on S.studentID =e.studentID inner join Subject as sub on sub.ID =e.subjectID where sub.subjectName ='MySQL数据库' and and e.exam=90;

方法二:通过子查询实现

select studentName form studentInfo where studentID =(select studentID from exam where exam=90 subjectID=(select subjectID from subject where subjectName ='MySQL数据库'));

注意:一般来说,表连接都可以用子查询替换;但是有的子查询不能用表连接实现。子连接更加灵活,适合作为查询的筛选条件,表连接更适合查看表数据。

在update、delete、insert 中使用子查询:

示例:把王小蒙的MySQL 成绩改为95分

update exam set exam =55 where studentID=(select studentID from studentInfo where studentName='王小蒙')and subjectID =(select subjectid from subject where subjectName='MySQL数据库');

把刘能的所有成绩删掉

delete from exam where studentID =(select studentID from studentInfo where studentName='刘能');

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值