MySQL数据库的子查询
来源:互联网 发布:pythonpath linux 编辑:程序博客网 时间:2024/06/05 08:07
MySQL数据库的子查询
1. 子查询
- 定义:子查询即一个查询语句嵌到另一个查询语句的子句中;可以出现在另一个查询的列中,where子句中,from子句中等。
例如:通过子查询实现一个自身连接的功能,显示员工与领导的关系
自身连接:mysql> select A.ename 员工 , B.ename 领导 from EMP A, EMP B where A.mgr = B.empno;子查询:mysql> select ename 员工 ,(select ename from EMP where empno = e.mgr) 领导 from EMP e;两者都能得到如下结果:+--------+--------+| 员工 | 领导 |+--------+--------+| xxxx | CLARK || SMITH | FORD || ALLEN | BLAKE || WARD | BLAKE || JONES | KING || MARTIN | BLAKE || BLAKE | KING || CLARK | KING || SCOTT | JONES || TURNER | BLAKE || ADAMS | SCOTT || JAMES | BLAKE || FORD | JONES || MILLER | CLARK |+--------+--------+
例如:查找出工资大于SMITH的员工
1. 先查找出SMITH的工资select sal from EMP where ename = 'SMITH';2. 在查找出所有工资select * from EMP where sal;3. 将sal和SMITH的工资作比较select * from EMP where sal > (select sal from EMP where ename = 'SMITH');
2. any/all
- 小于any,小于子查询中的某个值。等价于
例如:查询工资小于销售员某个员工的信息mysql> select * from EMP where sal < any (select sal from EMP where job = 'SALESMAN');
例如:查询工资大于所有销售员的信息mysql> select * from EMP where sal > all(select sal from EMP where job = 'SALESMAN');
3. exists
- exists 存在性条件判断
- 若内层查询非空,则外层的where子句返回真值,否则返回假。not exists相反。
例如:列出与Scott从事相同工作的所有员工mysql> select * from EMP e where exists (select * from EMP where ename = 'SCOTT' and e.job = job);//当exists后的语句(内层查询)非空,则外层where子句返回查询结果。
0 0
- MySQL数据库的子查询
- 数据库-子查询《mysql子查询的弱点》
- 数据库MySQL-----------子查询
- 数据库的子查询
- MySQL数据库——子查询的基本操作
- MYSQL数据库(十一)- 子查询、子查询用到的关键字ANY、SAME、ALL
- Mysql数据库_DML_子查询.sql
- Mysql数据库-子查询和连接
- MySQL数据库update更新子查询
- MySQL数据库update更新子查询
- MySQL数据库update更新子查询
- MySQL数据库——使用子查询
- MySQL里面的子查询
- mysql子查询的弱点
- Mysql里的子查询
- MySQL子查询的优化
- MySQL里面的子查询
- MySQL里面的子查询
- Javascript如何实现二分查找?
- Log4net配置与使用简要说明
- 链表-H-双向链表,允许前后遍历
- 高质量的SRS的一些特性
- 链表-I-链表实现迭代器
- MySQL数据库的子查询
- 常见中外出版社
- 链表-j-优先级队列,单向链表实现
- Python-opencv学习
- 链表-K-链表实现 双端队列
- Python学习之日志模块详解
- Windows Server2003本地用户的批量导入和导出
- 链表-L-循环链表
- 基于机器学习的网络异常流量识别系统——工具篇