MySQL之子查询
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL之子查询,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1441字,纯文字阅读大概需要3分钟。
内容图文
![MySQL之子查询](/upload/InfoBanner/zyjiaocheng/901/f92365ba3f7f4549bd2aa852fa4b33e8.jpg)
子查询
测试数据
create table emp (id int,name char(10),sex char,age int,dept_id int,job char(10),salary double); insert into emp values (1,"刘备","男",26,1,"总监",5800), (2,"张飞","男",24,1,"员工",3000), (3,"关羽","男",30,1,"员工",4000), (4,"孙权","男",25,2,"总监",6000), (5,"周瑜","男",22,2,"员工",5000), (6,"小乔","女",31,2,"员工",4000), (7,"曹操","男",19,3,"总监",10000), (8,"司马懿","男",24,3,"员工",6000); create table dept(id int primary key,name char(10)); insert into dept values(1,"市场"),(2,"行政"),(3,"财务");
1. 什么是子查询
? 当一个查询是另一个查询的条件时,这个查询称之为子查询(内层查询)
? 什么时候用?
? 当查询需求比较复杂,一次性查询无法得到结果,需要多次查询时,
? 例如:给出一个部门名称,需要获得该部门所有的员工信息
? 分析:
? 1.需要先确定部门的id
? 2.然后才能通过id确定员工
? 解决问题的方式是把一个复杂的问题拆分为若干个简单的问题
2. 如何使用?
首先明确子查询就是一个普通的查询,当一个查询需要作为子查询使用时,用括号包裹即可
3. 需要注意
? in中的子查询只能包含一个列
? 例如:查询财务部有哪些人
? 正确的写法:select name from emp where dept_id in (select id from dept where name = "财务");
? 错误的写法:select name from emp where dept_id in (select * from dept where name = "财务");
关键字:exists
exists后跟子查询,子查询有结果是为True,没有结果时为False。为True时外层执行,为False外层不执行
如何使用?
select from emp where exists (select from emp where salary > 1000);
前面 exists 后面
如果 后面 查询有结果时,前面 才会执行
内容总结
以上是互联网集市为您收集整理的MySQL之子查询全部内容,希望文章能够帮你解决MySQL之子查询所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。