Oracle SQL函数详解:集合操作符、常用函数和笛卡尔集
需积分: 10 24 浏览量
更新于2024-09-08
收藏 21KB DOCX 举报
Oracle SQL 函数小结
Oracle 中的 SQL 函数是数据库管理系统中的一种重要组件,它提供了多种函数来帮助开发者快速高效地完成数据库操作。以下是 Oracle 中一些常用的 SQL 函数小结。
**笛卡尔集**
笛卡尔集是两个表的记录相乘,用于将两个表中的每一行都与另一个表中的每一行相匹配。例如,查看树有几层可以使用以下语句:
```sql
select count(distinct level) from emp start with empno = 7839 connect by prior empno = mgr;
select level, lpad('', 2*level-1) || ename from emp start with empno = 7839 connect by prior empno = mgr;
```
**集合操作符**
集合操作符可以将两个或者多个查询返回的行组合起来。常用的集合操作符有四种:
1. **UNION ALL**:返回各个查询检索出的所有行,包括重复的行。
2. **UNION**:返回各个查询检索出的所有行,不包括重复行。
3. **INTERSECT**:返回两个查询检索出的共有行。
4. **MINUS**:返回将第二个查询检索出的行从第一个查询检索出的行中减去之后剩余的记录。
**UNION 和 UNION ALL 的区别**
UNION 和 UNION ALL 都可以将两个或者多个查询返回的行组合起来,但是它们有一个重要的区别。 UNION 会自动去除重复的行,而 UNION ALL 则不会。因此,从效率上来说, UNION ALL 会高一点。 UNION 还会对结果进行重新排序,而 UNION ALL 则会保持原来的顺序。
**MINUS**
MINUS 是一个集合操作符,用于从第一个查询结果中减去第二个查询结果。它先找出第一个 SQL 语句所产生的结果,然后看这些结果有没有在第二个 SQL 语句的结果中。如果有的话,那这一笔资料就被去除,而不会在最后的结果中出现。如果第二个 SQL 语句所产生的结果并没有存在于第一个 SQL 语句所产生的结果内,那这笔资料就被抛弃。
**常用函数**
Oracle 中提供了许多常用的函数,以下是其中的一些:
1. **NVL**:将空值转换成一个具有实际意义的值。例如:
```sql
select ename, sal*12*(1+nvl(comm/10000,0)) from emp;
```
这条语句将 emp 表中所有员工的一年的总收入计算出来,并将空值转换成 0。
2. **NVl2**:将空值转换成一个具有实际意义的值,例如:
```sql
nvl2(c1, c2, c3) --- c1为空,取c3值,如果c1,c3都为空则取c2
```
3. **DISTINCT**:防止数据重复性。例如:
```sql
select distinct dname from dept;
```
这条语句将 dept 表中的所有部门名称列出,且不包括重复的记录。
```sql
select distinct d.dname, e.job from ...
```
这条语句将不同的部门名称和职务列出。
2008-11-26 上传
2022-04-16 上传
2020-12-16 上传
点击了解资源详情
2019-04-02 上传
2020-12-15 上传
2021-01-02 上传
2020-09-11 上传
2020-12-15 上传
xp_simon
- 粉丝: 3
- 资源: 10
最新资源
- 基于Python和Opencv的车牌识别系统实现
- 我的代码小部件库:统计、MySQL操作与树结构功能
- React初学者入门指南:快速构建并部署你的第一个应用
- Oddish:夜潜CSGO皮肤,智能爬虫技术解析
- 利用REST HaProxy实现haproxy.cfg配置的HTTP接口化
- LeetCode用例构造实践:CMake和GoogleTest的应用
- 快速搭建vulhub靶场:简化docker-compose与vulhub-master下载
- 天秤座术语表:glossariolibras项目安装与使用指南
- 从Vercel到Firebase的全栈Amazon克隆项目指南
- ANU PK大楼Studio 1的3D声效和Ambisonic技术体验
- C#实现的鼠标事件功能演示
- 掌握DP-10:LeetCode超级掉蛋与爆破气球
- C与SDL开发的游戏如何编译至WebAssembly平台
- CastorDOC开源应用程序:文档管理功能与Alfresco集成
- LeetCode用例构造与计算机科学基础:数据结构与设计模式
- 通过travis-nightly-builder实现自动化API与Rake任务构建