Oracle之多表查询(select之依旧苦难的工作)

news/2024/6/18 6:35:47 标签: oracle, sql

文章目录

      • SQL92(语法简单,可读性差)
        • 笛卡尔积
        • 内连接
        • 外连接
      • SQL99(92基础上增加了关键字,可读性增强)
        • 笛卡尔乘积(cross join 代替 “,”)
        • 内连接([inner] join 代替 "," on 代替 where)
        • 外连接(outer join 代替"," 不需要(+),on 代替 where)
      • 三表连接查询

SQL92(语法简单,可读性差)

SQL 92和SQL 99是SQL语句的编写标准

笛卡尔积

直观的感受一下
在这里插入图片描述
笛卡尔积里包含了两张表所有字段匹配的情况,即将两张表合成为一张表
在这里插入图片描述

内连接

等值连接
在这里插入图片描述
不等值连接
在这里插入图片描述
自连接
字面意思,自己与自己进行内连接
在这里插入图片描述
内连接特点

  • 左右两张表,只有满足条件匹配才会被查出,没有匹配则不会被查出来

外连接

左外连接
以左表为基准,坐标的全部信息都会显示,右表不管是否匹配到左表的信息都会进行显示
格式,在where后面=右边加上(+)
在这里插入图片描述
右外连接
以右表为基准,坐标的全部信息都会显示,左表不管是否匹配到右表的信息都会进行显示
格式,在where后面=左边加上(+)
在这里插入图片描述

SQL99(92基础上增加了关键字,可读性增强)

笛卡尔乘积(cross join 代替 “,”)

在这里插入图片描述

内连接([inner] join 代替 “,” on 代替 where)

自然连接(92中没有)
自动选择将两个表中相同名称的字段做等值匹配
在这里插入图片描述

使用using()做等值匹配也可以达到一样的效果
在这里插入图片描述
等值连接
在这里插入图片描述
不等值连接
在这里插入图片描述

外连接(outer join 代替"," 不需要(+),on 代替 where)

左外连接(left outer join)
在这里插入图片描述
右外连接(right outer join)
在这里插入图片描述
满外连接(full outer join)
在这里插入图片描述

三表连接查询

92写法
在这里插入图片描述
99写法
在这里插入图片描述
虽然两者结果相同,但性能是有差异的,主要在于两者所生成中间表的行数差异,92写法会生成许多冗余数据


http://www.niftyadmin.cn/n/1756417.html

相关文章

Oracle之再展身手 练习题2(多表)

文章目录准备问题准备 一颗强大的心工具:连接了oracle的SQL developer环境:Oracle的Scott用户 问题 1、列出所有雇员的姓名及直接上级的姓名 select e.ename ename,m.ename mname from emp e join emp m on e.mgrm.empno;2、列出部门名称和这些部门的…

Oracle之数据对象(同义词、序列、视图、表空间、索引)

文章目录数据库对象概述同义词序列视图表空间创建表空间扩容表空间增加数据文件表空间的备份(冷备份)索引SQL优化建议(14则)工具:sql developer数据库对象 概述 数据库对象,简而言之就是数据库的组成部分…

Ubuntu18.04搭建Haoop2.7.7单机及伪分布式

看了零零散散的一系列安装教程后,终于磕磕绊绊勉强完成了Ubuntu搭建Haoop 实在是太不希望看零零散散的乱七八糟的教程 所以我决定自己亲手写一份保姆级别的安装配置教程 文章目录准备工具环境苦难之旅安装vim和配置静态IP创建一个hadoop用户安装SSH、配置SSH无密码登…

Oracle之数据对象(触发器、存储过程)及游标

文章目录PL/SQL简单介绍下代码结构PL/SQL变量PL/SQL 常量PL/SQL自带的数据类型if 条件语句case 语句loop 无条件循环While有条件循环for循环触发器简单说明触发器分类触发器的使用游标简述游标属性游标使用存储过程简述使用存储过程中的参数PL/SQL 在完成Oracle的存储过程和触…

Windows常用命令行命令

文章目录界面操作机器操作目录操作文件操作网络操作应用操作其他操作界面操作 打开命令行 WINR打开运行,输入cmd唤醒命令行操作界面 Tab键自动补全命令右键窗口标题栏——>属性 修改外观 机器操作 shutdown /s 关机shutdown /r 重启shutdown /l 注销shutdown…

Oracle之存储函数

文章目录存储过程和存储函数存储函数创建调用存储过程和存储函数 存储过程和存储函数十分相似,都是存储在数据库中供所有用户程序调用的子程序唯一的不同在于 存储函数必须使用return返回一个值 而存储过程则不需要但后续存储过程引入了out参数 所以存储过程和存储…

Java01(数据类型、变量和运算符)

文章目录一、概述一些需要知道的东西JVMJDK安装JDK时环境变量的配置第一个Java程序Java的错误类型数据类型内置基本数据类型(8种)类型转换变量变量的命名规则运算符算术运算符关系运算符逻辑运算符位运算符赋值运算符和三目运算符一、概述 一些需要知道…

Java02(流程控制、Scanner、数组、标准输出、String)

文章目录流程控制顺序分支单路分支 if两路分支 if else多路分支 if else if...switch case 开关语句循环whiledo whileforforEach递归控制语句Scanner用法数组一维数组多维数组标准输出StringcharAt(int index) 返回指定索引处的char值compareTo(String s) 按字典序比较两个字符…