ZTESOracle子查询与集合操作第五讲.ppt
文本预览下载声明
* * Oracle Database 10g: SQL Fundamentals I 7-* Oracle Database 10g: SQL Fundamentals I 7-* Oracle Database 10g: SQL Fundamentals I 7-* Oracle Database 10g: SQL Fundamentals I 7-* … … Oracle Database 10g: SQL Fundamentals I 7-* Oracle Database 10g: SQL Fundamentals I 7-* Oracle Database 10g: SQL Fundamentals I 7-* Oracle Database 10g: SQL Fundamentals I 7-* Oracle Database 10g: SQL Fundamentals I 7-* Oracle Database 10g: SQL Fundamentals I 7-* 子查询与集合操作 本章目标 在本课中您将学会一下内容: 定义子查询 描述子查询解决的各种问题 列出各种子查询 书写单行和多行子查询 使用集合操作符 使用子查询解决问题 谁的工资比Abel的高? 哪些员工的工资比Abel的高? 主查询: Abel的工资是多少? 子查询: 子查询的语法 子查询(内层查询)在主查询(外层查询)执行前执行一次。 子查询的结果作为主查询的条件,为主查询所用。 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); 11000 LAST_NAME ------------------------- Hartstein Higgins King Kochhar De Haan …… 已选择10行。 子查询的使用规则 子查询要写在括号“()”内。 子查询要写在比较条件的右边。 ORDER BY子句在子查询中是没有必要的,除非是执行Top-N分析。 对于单行子查询要使用单行运算符,对于多行子查询要使用多行运算符。 子查询的类型 单行子查询 多行子查询 主查询 子查询 返回 ST_CLERK ST_CLERK SA_MAN 主查询 子查询 返回 单行子查询 只返回一行 使用单行比较运算符 运算符 含义 = 等于 大于 = 大于等于 小于 = 小于等于 不等于 执行单行子查询 SELECT last_name, job_id, salary FROM employees WHERE job_id = (SELECT job_id FROM employees WHERE employee_id = 141) AND salary (SELECT salary FROM employees WHERE employee_id = 143); ST_CLERK 2600 LAST_NAME JOB_ID SALARY ------------------------- ---------- ---------- Nayer ST_CLERK 3200.00 Mikkilineni ST_CLERK 2700.00 Bissot ST_CLERK 3300.00 …… 已选择11行。 子查询中使用分组函数 SELECT last_name, job_id, salary FROM employees WHERE salary = (SELECT MIN(salary) FROM employees); 2
显示全部