SQL Server 子查询
2015-08-26 11:31
134 查看
这些主要是老师上课讲的一些知识点,自己做了一些整理放在这里~~~
子查询可以是标量的、多值的或是表值的。
在期待单个值的地方可以使用标量子查询。例如,以下查询返回具有最大员工编号的员工信息:
只要标量子查询返回的值是单个值或不返回值,它就是有效的。然而,如果标量子查询返回多个值,则将产生运行时错误。
子查询可以是标量的、多值的或是表值的。
在期待多个值的地方可以使用多值子查询。例如,以下查询返回员工部门编号在部门表中存在的员工信息:
子查询可以是标量的、多值的或是表值的。
在期待出现表的地方,还可以使用表值子查询或表表达式。例如,以下查询返回员工的EMPNO、ENAME和SAL,并以员工编号、员工姓名和员工薪水命名,最后以员工姓名进行排序:
查询可以按两种方式进行分类。
按期望值的数量可以分为标量子查询和多值子查询。
按子查询对外部查询的依赖性可以分为独立子查询和相关子查询。
标量子查询和多值子查询既可以是独立子查询,也可以是相关子查询
独立子查询
独立子查询是可以独立于外部查询而运行的子查询。相对于相关子查询,独立子查询非常便于调试。
我们在前面看到的子查询都是独立子查询。例如:
相关子查询
逻辑上,独立子查询只为整个外部查询计算一次。
相关子查询是引用了在外部查询中出现的列的子查询。从逻辑上讲,子查询会为外部查询的每一行进行一次计算。例如,查询每个组中员工薪水最高的员工信息:
以上就是子查询的相关知识~~
子查询可以是标量的、多值的或是表值的。
在期待单个值的地方可以使用标量子查询。例如,以下查询返回具有最大员工编号的员工信息:
SELECT * FROM EMP AS E1 WHERE E1.EMPNO=( SELECT MAX(E2.EMPNO) FROM EMP AS E2 )
只要标量子查询返回的值是单个值或不返回值,它就是有效的。然而,如果标量子查询返回多个值,则将产生运行时错误。
子查询可以是标量的、多值的或是表值的。
在期待多个值的地方可以使用多值子查询。例如,以下查询返回员工部门编号在部门表中存在的员工信息:
SELECT * FROM EMP WHERE DEPTNO IN(SELECT DEPTNO FROM DEPT )
子查询可以是标量的、多值的或是表值的。
在期待出现表的地方,还可以使用表值子查询或表表达式。例如,以下查询返回员工的EMPNO、ENAME和SAL,并以员工编号、员工姓名和员工薪水命名,最后以员工姓名进行排序:
SELECT * FROM ( SELECT EMPNO AS '员工编号', ENAME AS '员工姓名', SAL AS '员工薪水' FROM EMP ) AS E ORDER BY 员工姓名
查询可以按两种方式进行分类。
按期望值的数量可以分为标量子查询和多值子查询。
按子查询对外部查询的依赖性可以分为独立子查询和相关子查询。
标量子查询和多值子查询既可以是独立子查询,也可以是相关子查询
独立子查询
独立子查询是可以独立于外部查询而运行的子查询。相对于相关子查询,独立子查询非常便于调试。
我们在前面看到的子查询都是独立子查询。例如:
SELECT * FROM EMP AS E1 WHERE E1.EMPNO = (SELECT MAX(E2.EMPNO) FROM EMP AS E2 )
相关子查询
逻辑上,独立子查询只为整个外部查询计算一次。
相关子查询是引用了在外部查询中出现的列的子查询。从逻辑上讲,子查询会为外部查询的每一行进行一次计算。例如,查询每个组中员工薪水最高的员工信息:
SELECT E1.EMPNO, E1.ENAME, E1.SAL, E1.DEPTNO FROM EMP AS E1 WHERE E1.SAL = ( SELECT MAX(E2.SAL) FROM EMP AS E2 WHERE E1.DEPTNO = E2.DEPTNO )
以上就是子查询的相关知识~~
相关文章推荐
- MySQL性能优化的最佳20+条经验
- MySql取得日期(前一天、某一天)(前一月第一天到最后一天)
- 《转》sql 、linq、lambda 查询语句的区别
- Oracle Study之---Oracle IN和NOT IN的使用
- sql扫盲(2)
- mysql事务
- java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver异常的解决办法
- 常用mysql命令
- SQL注入攻击常见类型及解决方案
- 解决:-1054932979 : OLAP 存储引擎中存在错误: 处理“MultidimensionalTest”数据库的“DIM产品”维度的“Id”属性时出错。
- mysql扩展库和mysqli扩展库的比较
- Cognos Report Studio 使用自定义SQL及注意事项
- LocalDB数据库的增删改查方法
- 关于MySQL AUTO_INCREMENT的小情况
- OpenLdap+MySQL笔记
- cmd进入mysql的方法
- MYSQL中文输出乱码
- 转:mysql show processlist命令 详解
- mongoDB数据库设置用户名及密码
- mongodb数据库命令操作