2.用SQL进行多表查询

(1)无条件多表查询

笛卡尔集:总记录数=table1记录数×table2记录数

select * from table1, table2

(2)等值连接

内连接:select tab1.f_z, tab2.* from table1 tab1, table2 tab2 where tab1.f_z = tab2.f_c。

左外连接(包括没有单位的机型):select tab1.f_z, tab2.* from table1 tab1, table2 tab2 where tab1.f_z = tab2.f_c(+)。

右外连接(包括没有机型的单位):select tab1.f_z, tab2.* from table1 tab1, table2 tab2 where tab1.f_z(+) = tab2.f_c。

实际使用中,建议外连接统一使用左外连接;查询字段和连接条件中,若两表都有相同的字段名,必须指定字段对应的表名。

3.用SQL进行嵌套查询

也叫子查询,子查询形成的结果又成为父查询的条件。

in、exists:如果子查询得出的结果集记录较少,主查询中的表较大且又有索引时应该用in;反之如果外层的主查询记录较少,子查询中的表大,又有索引时使用exists。

not in、not exists:不推荐not in,会导致两个表的全表扫描,尽量转换为minus重写;not exists效率一般比较高;根据实际执行计划调试。

union(并集):select 1 as f_id, ‘是’ as f_m from tab union select 0 as f_id, ‘否’ as f_m from tab。

intersect(交集)、minus(差集)

并、交和差操作的嵌套查询要求属性具有相同的定义,包括类型和取值范围。

4.用SQL进行函数查询

(1)函数:

Round、Count、Sum、Avg、Min、Max

(2)条件表达式:nvl、decode、case when

select nvl(f_z, 0) from table;如果f_z为空,返回0;否则为f_z。

select decode(f_z, 1 , '客机', '货机') from table。

select case when f_z = 1 then '客机' else '货机' end from table。

case语句在处理相似问题就显得比较简捷灵活。另外,当需要匹配少量数值时,选用decode会更加方便一些。

5.Dual的使用

Dual是Oracle中实际存在的一种表,任何用户都可以使用,常用在没有目标表的select语句中。可用于查看时间、用户、计算等;select user from dual;select sysdate from dual。

转载于:https://www.cnblogs.com/lvanka/p/8650418.html

Oracle数据库学习(二)相关推荐

  1. oracle修改分区表的默认空间,Oracle数据库学习_Oracle分区表的分区占用空间为什么是8M?如何修改分区的初始空间?...

    Oracle数据库学习_Oracle分区表的分区占用空间为什么是8M?如何修改分区的初始空间? 现象一描述: 在oracle12c下创建一个分区表T_A_TRADING,新建一个分区P1,P1里没有任 ...

  2. Oracle数据库学习:PL/SQL(详解)

    Oracle数据库学习:PL/SQL 什么是PL/SQL PL/SQL 是过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的扩展语言; 使用PL/SQL 可以编写具 ...

  3. oracle数据库学习小记一

    oracle数据库学习小记 数据库函数 一.日常函数 二.数学函数 三.聚合函数(常用于group by从句的select查询中) 四.字符串函数 五.日期和时间函数 六.加密函数 七.控制流函数 八 ...

  4. oracle权限培训,Java培训-ORACLE数据库学习【2】用户权限

    查询用户拥有的权限: 1.查看所有用户:select *from dba_users;select *from all_users;select *from user_users; 2.查看用户或角色 ...

  5. Oracle 数据库学习

    目录 Oracle 数据库学习 1. Oracle数据库 1.1 简介 1.2权限分类: 2. 用户管理 2.1用户操作 2.2表操作 2.3关闭数据库 2.4其他操作 3. Oracle 重要文件 ...

  6. Oracle数据库学习(二):SQL developer客户端下载、安装与连接Oralce 11g数据库

    SQL developer客户端下载.安装及连接Oracle数据库 本文采用自带jre的安装包,无需自己配置相关jdk文件 1.1 SQL developer客户端下载 下载 百度网盘:链接:http ...

  7. Oracle数据库学习基础

    1.Oracle简介 数据:data 数据库:database DB 数据库管理系统 database Management system DBMS 数据库系统 database system DBS ...

  8. oracle数据库系统学习,Oracle数据库学习第二天

    1.伪表,伪列 1.1.伪表dual 概念: 就是一个不真实存在的虚拟表.伪表的作用就是用来构造一个符合sql规则的select语句.简单来说,伪表就是为让select语句不出现错误. 应用场景 用来 ...

  9. oracle数据库学习(ZT)

    oracle的体系太庞大了,对于初学者来说,难免会有些无从下手的感觉,什么都想学,结果什么都学不好,所以把学习经验共享一下,希望让刚刚入门的人对oracle有一个总体的认识,少走一些弯路. 一.定位  ...

  10. oracle数据库学习总结

    前言 这是本人复习兼学习两周oracle数据库后整理的一些知识,适合查询oracle的一些语法,也可以当作一个oracle数据库的知识架构梳理. 鉴于数据库语法繁琐,知识点繁多,还有很多知识点没有纳入 ...

最新文章

  1. [转]机器学习和深度学习资料汇总【01】
  2. 并查集(Union-Find)算法介绍
  3. ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 ——材料清单
  4. 延长汽车使用寿命,抛弃六大用车坏习惯
  5. hadoop集群安装配置
  6. Command “python setup.py egg_info“ failed with error code 1 in C:\Users\始末\AppData\Local\Temp\pip-b
  7. 异常详细信息: System.Web.HttpException: 服务器太忙
  8. AISG2.0(二)——什么是电调天线,及AISG在其中的应用
  9. 【数据应用案例】金融行业大数据用户画像实践
  10. C# 网易云音乐API 多达100+ 支持登录,无损下载
  11. C# 使用DirectX中的Device类实现3D渲染
  12. Java实现 蓝桥杯油漆问题
  13. 华科计算机组成原理 存储系统实验 汉字字库Logsim实验
  14. js实现抽奖滚动效果
  15. 求职经验丨应届毕业生,如何找到一份程序员工作呢?
  16. Node.js 4.x 入门实战视频课程【讲师辅导】-曾亮-专题视频课程
  17. df_1.columns
  18. dcos - marathon -lb 问题
  19. fit函数 model_tensorflow中model.fit()用法
  20. 卡卡助手导致OE故障,致使邮件丢失!

热门文章

  1. 为什么判断list的时候,既要判断不等于null有要判断size大于0
  2. 6-4 开班简介1
  3. weblogic创建多个域 及域的配置方法 war包部署及访问测试
  4. 港股打新之卖出策略(暗盘和首日)
  5. 「报表开发者必看」避开这6个误区,报表才能好看又实用
  6. 从可视化模板,到数据仓库、数字化的资料,我整理并分享出来
  7. mysql 关联数组_在PHP / MySQL查询中创建关联数组
  8. php语言输出九九乘法表_PHP 输出九九乘法表
  9. squid端口转发_HTTP隧道(经典版)Squid 接入指南| 阿布云 - 为大数据赋能
  10. python执行txt中代码_【技术分享】文件解压之过 Python中的代码执行