• / 18
  • 下载费用:10 金币  

Oracle Les06_子查询.ppt

关 键 词:
Oracle Les06_子查询.ppt
资源描述:
子查询,,目标,通过本章学习,您将可以: 描述子查询可以解决的问题 定义子查询。 列出子查询的类型。 书写单行子查询和多行字查询。,使用子查询解决问题,谁的工资比 Abel 高?,,谁的工资比 Abel 高?,,Main Query:,,,,,,,,,,,,?,,Abel的工资是多少?,,?,Subquery,,,子查询语法,子查询 (内查询) 在主查询之前一次执行完成。 子查询的结果被主查询使用 (外查询)。,,SELECT select_list FROM table WHERE expr operator(SELECT select_listFROM table);,,SELECT last_name FROM employees WHERE salary (SELECT salaryFROM employeesWHERE last_name = 'Abel');,,子查询,11000,,,注意事项,子查询要包含在括号内。 将子查询放在比较条件的右侧。 除非进行Top-N 分析,否则不要在子查询中使用ORDER BY 子句。 单行操作符对应单行子查询,多行操作符对应多行子查询。,子查询类型,ST_CLERK,多行子查询,ST_CLERK SA_MAN,单行子查询,单行子查询,只返回一行。 使用单行比较操作符。,操作符 = = ,含义 Equal to Greater than Greater than or equal to Less than Less than or equal to Not equal to,,,,,,,,SELECT last_name, job_id, salary FROM employees WHERE job_id = (SELECT job_idFROM employeesWHERE employee_id = 141) AND salary (SELECT salaryFROM employeesWHERE employee_id = 143);,执行单行子查询,ST_CLERK,2600,,,,,,SELECT last_name, job_id, salary FROM employees WHERE salary = (SELECT MIN(salary)FROM employees);,在子查询中使用组函数,2500,,,,子查询中的 HAVING 子句,首先执行子查询。 向主查询中的HAVING 子句返回结果。,SELECT department_id, MIN(salary) FROM employees GROUP BY department_id HAVING MIN(salary) (SELECT MIN(salary)FROM employeesWHERE department_id = 50);,,,,2500,,SELECT employee_id, last_name FROM employees WHERE salary =(SELECT MIN(salary)FROM employeesGROUP BY department_id);,非法使用子查询,ERROR at line 4: ORA-01427: single-row subquery returns more than one row,,,,多行子查询使用单行比较符,,子查询中的空值问题,no rows selected,SELECT last_name, job_id FROM employees WHERE job_id =(SELECT job_idFROM employeesWHERE last_name = 'Haas');,,子查询不返回任何行,多行子查询,返回多行。 使用多行比较操作符。,操作符INANYALL,含义 等于列表中的任何一个 和子查询返回的任意一个值比较和子查询返回的所有值比较,,,,,,在多行子查询中使用 ANY 操作符,9000, 6000, 4200,,,SELECT employee_id, last_name, job_id, salary FROM employees WHERE salary 'IT_PROG';,…,,,SELECT employee_id, last_name, job_id, salary FROM employees WHERE salary 'IT_PROG';,在多行子查询中使用 ALL 操作符,,,,9000, 6000, 4200,子查询中的空值问题,SELECT emp.last_name FROM employees emp WHERE emp.employee_id NOT
展开阅读全文
  微传网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
0条评论

还可以输入200字符

暂无评论,赶快抢占沙发吧。

关于本文
本文标题:Oracle Les06_子查询.ppt
链接地址:https://www.weizhuannet.com/p-7357357.html
微传网是一个办公文档、学习资料下载的在线文档分享平台

微传网博客

 网站客服QQ:80879498  会员QQ群:727456886

copyright@ 2018-2028 微传网络工作室版权所有

     经营许可证编号:冀ICP备18006529号-1 ,公安局备案号:13028102000124

收起
展开