Oracle数据库多表查询与连接操作详解
需积分: 9 68 浏览量
更新于2024-07-24
收藏 8.37MB PDF 举报
"Oracle数据库入门教程,包含MLDN李兴华的Oracle学习笔记和带书签版本,专注于介绍Oracle数据库的基础知识,特别是多表查询和统计分析功能。"
Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,对于初学者来说,掌握其基本操作和概念至关重要。本文将探讨Oracle入门中的关键知识点,包括多表查询和统计记录数。
**多表查询**
多表查询是Oracle数据库中常见的操作,用于从两个或更多个表中获取相关数据。查询通常涉及表之间的关联,这可以通过不同的连接类型来实现,如内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)以及全连接(FULL JOIN)。
1. **内连接(INNER JOIN)**:返回两个表中匹配条件的记录。例如,查询雇员名称、部门名称和部门所在地,可以使用如下语句:
```sql
SELECT e.empno, e.ename, d.deptno, d.dname, d.loc
FROM emp e, dept d
WHERE e.deptno = d.deptno;
```
2. **左连接(LEFT JOIN)**:返回左表(在连接操作符左侧的表)的所有记录,即使在右表中没有匹配的记录。若右表没有匹配,结果将填充NULL。例如,确保所有部门都显示,即使没有对应的雇员:
```sql
SELECT e.empno, e.ename, d.deptno, d.dname, d.loc
FROM emp e, dept d
WHERE e.deptno (+) = d.deptno;
```
3. **右连接(RIGHT JOIN)**:与左连接相反,返回右表的所有记录,即使在左表中没有匹配的记录。在Oracle中,右连接可以通过在连接条件中改变 (+) 的位置来实现。
4. **全连接(FULL JOIN)**:返回两个表中所有匹配和不匹配的记录。Oracle不直接支持全连接,但可以通过UNION ALL操作结合LEFT JOIN和RIGHT JOIN实现。
**统计记录数**
在Oracle中,可以使用`COUNT()`函数来统计记录数。例如,查询`emp`表中的记录数量:
```sql
SELECT COUNT(*) FROM emp;
```
**分组和聚合函数**
在查询中,可以使用分组和聚合函数来对数据进行汇总统计。常见的聚合函数有:
- `COUNT()`:计算非NULL值的数量。
- `MAX()`:返回某个列的最大值。
- `MIN()`:返回某个列的最小值。
- `AVG()`:计算某个列的平均值。
- `SUM()`:计算某个列的总和。
配合`GROUP BY`语句,可以按一个或多个列对数据进行分组。例如,统计每个部门的员工人数:
```sql
SELECT deptno, COUNT(empno)
FROM emp
GROUP BY deptno;
```
此外,还可以使用`HAVING`子句在分组后过滤结果,条件必须基于聚合函数的结果。例如,找出员工人数超过5的部门:
```sql
SELECT deptno, COUNT(empno)
FROM emp
GROUP BY deptno
HAVING COUNT(empno) > 5;
```
了解并熟练掌握这些基础概念和操作,对于进一步学习和应用Oracle数据库将大有裨益。随着经验的增长,还可以探索更高级的主题,如索引、存储过程、触发器和性能优化等。
129 浏览量
265 浏览量
104 浏览量
127 浏览量
2009-11-01 上传
369 浏览量
lljj
- 粉丝: 0
- 资源: 1
最新资源
- 2009系统分析师考试大纲
- debian维护人员手册
- 如何成为时间管理的黑带高手—Diddlebug实战篇
- ASP_NET中的错误处理和程序优化
- HP OpenView Operations管理员参考手册
- Struts2.0详细教程
- C#应用程序打包.pdf
- CSS在IE6 IE7与FireFox下的兼容问题整理
- [Ultimate Game Design Building Game Worlds][EN].pdf
- Nokia 6120c说明书
- flash_as3_programming
- 手把手教你如何写Makefile
- Extending WebSphere Portal Session Timeout
- rmi原理-chn-pdf
- 第3章 创建型模式 创建型模式抽象了实例化过程
- 第2章 实例研究:设计一个文档编辑器