Oracle-DQL 6- 子查询】的更多相关文章

作者: kent鹏 转载请注明出处: http://www.cnblogs.com/xieyupeng/p/7289451.html --oracle分页(Pageing Query) select * from (select rownum r,e1.* from (select * from emp order by sal) e1 ) ; SQL SQL> --查询工资比SCOTT高的员工信息 SQL> --1. SCOTT的工资 SQL> select sal from emp…
• 定义子查询 • 描述子查询可以解决的问题类型 • 列出子查询的类型 • 编写单行和多行子查询   • 子查询:类型.语法和准则 • 单行子查询: – 子查询中的组函数 – 带有子查询的HAVING子句 • 多行子查询 – 使用ALL或ANY运算符 • 使用EXISTS运算符 • 子查询中的空值   使用子查询解决问题 谁的薪金高于Abel 的薪金? 子查询: Abel 的薪金是多少? 主查询: 哪些雇员的薪金高于Abel 的薪金?   使用子查询解决问题 假设要编写一个查询来找出谁的薪金高于…
--with 重用子查询对于多次使用相同子查询的复杂查询语句来说,用户可能会将查询语句分成两条语句执行.第一条语句将子查询结果存放到临时表,第二条查询语句使用临时表处理数据.从 Oracle 9i 开始,通过 with 子句可以给予子查询指定一个名称,并且使得在一条语句中可以完成所有任务,从而避免了使用临时表. SCOTT@ test10g> with summary as (  2  select dname, sum(sal) dept_total from emp, dept  3  wh…
oracle标量子查询和自己定义函数有时用起来比較方便,并且开发者也常常使用.数据量小还无所谓.数据量大,往往存在性能问题. 下面測试帮助大家彻底搞懂标量子查询. SQL> create table a (id int,name varchar2(10)); Table created. SQL> create table b (id int,name varchar2(10)); Table created. SQL> insert into a values (1,'a1'); 1…
ORA-01427: 单行子查询返回多个行 前几天开发的同事反馈一个问题,说前台系统报出了ORA错误,希望我们能看看是什么原因.java.sql.SQLException: ORA-01427: single-row subquery returns more than one row我一看到这个错误的第一反应就是应该是sql语句的问题,然后开发同事反馈这个程序已经用了蛮长时间了,现在突然报出了错误. 简单沟通之后,我得到了对应的sql语句.SELECT ID, PROJECTNAME, GRA…
子查询:先执行内部再外部 Select last_name,salary,dept_id From s_emp Where dept_id in ( Select dept_id From s_emp Where dept_id is not null ); Select last_name,dept_id From s_emp Where dept_id = ( Select dept_id From s_emp Where last_name=’Smith’ ); Select salary…
子查询也叫内部查询,在主查询之前执行一次并得到结果,此结果一般情况下,是用来当做是主查询的条件.   -- 在 emp 表中,找出工资比 ALLEN 的高? -- 先查出 ALLEN 的工资是多少? select sal from scott.emp where ename = 'ALLEN'; -- 1600 -- 然后再做比较 select * from scott.emp where sal > 1600; -- 整合 select * from scott.emp where sal >…
子查询语法 SELECT select_list FROM table WHERE expr operator (SELECT select_list FROM table); 子查询 (内查询) 在主查询之前一次执行完成. 子查询的结果被主查询(外查询)使用 . 示例: SELECT last_name FROM employees WHERE salary > ( SELECT salary FROM employees WHERE last_name = 'Abel' ); 注意事项 子查…
一.MySQL中的DML语句 1.使用insert插入数据记录: INSERT INTO `myschool`.`student` (`studentNo`, `loginPwd`, `studentName`, `sex`, `gradeId`, `phone`, `address`, `birthday`) ', '美国纽约', '1900-01-01'); INSERT INTO student (studentNo,loginPwd,studentName,sex,gradeId,pho…
环境:oracle 11g 现有a表与b表通过a01字段关联,要查询出a表的数据在b表没有数据的数据:sql如下 ) ) 因为flag是虚拟字段没有走不了索引导致这条sql执行起来特别慢 310W条数据查总数花费2秒左右. 利用not exists优化sql如下 ) from b where a.a01=b.b01) 利用not exists走索引,执行花费时间大约为0.2秒…