- 1、本文档共60页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Oracle学习笔记程序代码示例
李兴华ORACLE 学习笔记+程序代码实例
图表 1
多表查询的基本语法
查一张以上的表,就叫做多表查询
例子:查询出雇员名称,部门名称和部门所在地的(一般多表查询要用别名)
统计记录数:
查询emp有多少条纪录
左右连接(重点)
select e.empno,e.ename,d.deptno,d.dname,d.loc
from
emp e,dept d where e.deptno=d.deptno;
部门一共四个,这里只查询出三个,因为在雇员表中没有指定40部门的雇员,所以在消除笛卡尔乘机的时候没有条件符合40,如果喜欢40部门显示出来,就要用左右连接了。
select e.empno,e.ename,d.deptno,d.dname,d.loc
from
emp e,dept d where e.deptno(+)=d.deptno;
(+)在左边,表示以右边的表为准,表示右链接。
40部门出来了,所以此时就用到了有连接,证明以下规律
(+)在左表示右连接
(+)在右表示左连接
.SQL:1999对SQL的支持(了解)
范例:交叉连接(cross join)产生笛卡尔积
select * from empt CROSS JOIN dept;
查询结果 产生笛卡尔积
CREATE TABLE EMP10 AS SELECT * FROM EMP WHERE DEPTNO=10;
select * from emp NATURAL JOIN dept; 自动进行匹配
范例:USING子句,直接关联的操作列
select * from emp e JOIN dept d USING (deptno) where deptno=30;
把两张表的详细信息进行打印输出
范例:ON子句 自己编写连接条件
select * from emp e JOIN dept d ON (e.deptno=d.deptno) where e.deptno=30;
范例:左连接(左外连接)右连接(右外连接)LEFT JOIN RIGHT JOIN
组函数和分组统计(重点)
组函数
在SQL常用组函数有如下几个:
COUNT()求全部记录数
MAX()求最大记录数
MIN()求最小记录数
AVG()平均
SUM()求和
分组统计
Group by
select deptno,COUNT(empno) from emp GROUP BY deptno;
算出部门表的平均工资:
select AVG(sal) from emp ;
算出每个部门的平均工资:
Select deptno,AVG(sal) from emp ;
?之所以会出现这个错误是因为数据库不知道怎样在结果集中处理列。考虑一下:这个查询既试图使用AVG聚合函数对多 行记录进行操作,却又试图从每行中获得列的值;这两个操作是不可能同时完成的。此时必须提供一个GROUP BY子句告诉数据库将列相同的行分组在一起,然后数据库就可以将这些组中的行传递给AVG函数。
警告:
如果查询中包含聚合函数,而所选择的列并不在聚合函数中,那么这些列就必须在GROUP BY子句中。
select d.dname,count(e.empno) from dept d,emp e
where d.deptno=e.deptno
GROUP BY d.dname;
要求查出平均工资大于2000的部门编号和平均工资
select deptno,AVG(sal) from emp WHERE AVG(sal) 2000 GROUP BY deptno;
?之所以会出现这个错误是因为WHERE子句只能用来对单行而不是行组进行过滤。要过滤行组,可以使用HAVING子句。’SALESMAN’
select * from emp where jobsalesman;
2.按工作分组同时求出工资的总和
Select job,SUM(sal) from emp WHERE job’SALESMAN’ GROUP BY job;
3.对分组条件进行限制
Select job,SUM(sal) from emp WHERE job’SALESMAN’ GROUP BY job HAVING SUM(sal)5000;
4.使用排序,按升序排列
Select job,SUM(sal) su from emp WHERE job’SALESMAN’ GROUP BY job HAVING SUM(sal)5000 order by su;
分组的简单原则:
只要一列上存在重复的内容才考虑用分组
注意:分组函数可以嵌套使用,但是在组函数嵌套的时候不能再出现分组条件的查询语句
范例:求出平均工资最高的部门
错误代码:
您可能关注的文档
- 论文-绿色营销.doc
- 第四章异步电机(一)2.ppt
- 函数的定义域.值域.doc
- 浙教版七年级上册第二章同步练习§2.3有理数的乘法.doc
- 初一英语上册Unit5Isthisyourpencil单元测试题新目标.doc
- 小二班9月份学习总结.doc
- 听雨的世界(图文版).doc
- 工会学习贯彻职代会精神心得体会.doc
- 通信专业学习.doc
- 资源开发项目考察报告模板.doc
- 2024年中国钽材市场调查研究报告.docx
- 2024年中国不锈钢清洗车市场调查研究报告.docx
- 2024年中国分类垃圾箱市场调查研究报告.docx
- 2024年中国水气电磁阀市场调查研究报告.docx
- 2024年中国绿藻片市场调查研究报告.docx
- 2010-2023历年初中毕业升学考试(青海西宁卷)数学(带解析).docx
- 2010-2023历年福建厦门高一下学期质量检测地理卷.docx
- 2010-2023历年初中数学单元提优测试卷公式法(带解析).docx
- 2010-2023历年初中毕业升学考试(山东德州卷)化学(带解析).docx
- 2010-2023历年初中毕业升学考试(四川省泸州卷)化学(带解析).docx
最近下载
- 内燃机车钳工(中级)职业鉴定理论考试题及答案.doc VIP
- 聚焦贯彻落实新时代党的组织路线存在不足.docx VIP
- 研究生学术英语读写教程(于华)课后习题答案.pdf
- 跨学科实践活动2 自制净水器(同步课件)-【上好课】2024-2025学年九年级化学上册同步精品课堂(沪教版2024).pptx VIP
- 抗凝剂皮下注射相关并发症及处理对策.docx
- 第十章 甲状腺功能减退症PPT课件.ppt
- 《红楼梦的饮食文化》.docx VIP
- PICMG_COMe R3.0原版标准完整.docx
- ERAS加速康复外科在产科应用进展.pptx VIP
- 河南省南阳市六校2021-2022学年高一上学期第一次联合测试地理试题.pdf VIP
文档评论(0)