SQL的1999语法
目录
交叉连接
实现交叉连接
自然连接
实现自然连接(实际上就是内连接)
ON和USING
使用自然连接时要求两张表的字段名称相同,但是如果不相同或者两张表中有两组字段是重名,这时就要利用 ON 子句指定关联条件,利用 USING 子句设置关联字段
利用 USiNG 子句设置关联字段实现自然连接
利用 ON 子句设置关联条件
外连接
左外连接
全外连接
Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645
对于数据表的连接操作,从实际使用来说,各个数据库都是支持的,但是外连接使 用“ (+) ”是 Oracle 自带的,其他数据库是不支持的。所以对所有的数据库,进行表连接最好的做法是利用以下的语法完成
select [distinct] * | 列 [ 别名 ] , 列 [ 别名 ] , ...
from 表 1 [ 别名 ] [cross join 表 2 [ 别名 ]] [natural join 表 2 [ 别名 ]] [join 表 2 [ 别名 ] on ( 条件 ) | using( 关联字段 )] [left | right | full outer join 表 2 [ 别名 ] on( 条件 )] ;
在进行表连接的时候,如果是内连接,则使用等值判断;
如果是外连接,则使用 left、outer、full等操作。
而上面语法中的 cross join、natural join、join很少使用。
不过我们也简单看 一下如何操作它们
交叉连接
目的是产生笛卡尔积
语法如下
select [distinct] * | 列 [ 别名 ] , 列 [ 别名 ] , ...
from 表 1 [ 别名 ] cross join 表 2 [ 别名 ] ;
实现交叉连接
select *
from emp cross join dept;
执行有很多行,这里我就不示范了,等同于
select *
from emp,dept;
大家可以试试
自然连接
利用关联字段,自己进行笛卡尔积的消除(只要字段名称相同即可,系统会自动匹配)
select [distinct] * | 列 [ 别名 ] , 列 [ 别名 ] , ...
from 表 1 [ 别名 ] natural join 表 2 [ 别名 ] ;
实现自然连接(实际上就是内连接)
select *
from emp natural join dept;
上面代码等同于前面所介绍的查询语句
select *
from emp,dept
where emp.deptno=dept.deptno;
大家可以自己试试
ON和USING
使用自然连接时要求两张表的字段名称相同,但是如果不相同或者两张表中有两组字段是重名,这时就要利用 ON 子句指定关联条件,利用 USING 子句设置关联字段
利用 USiNG 子句设置关联字段实现自然连接
SQL> select *2 from emp join dept using(deptno);DEPTNO EMPNO ENAME JOB MGR HIREDATE SAL COMM DNAMELOC
---------- ---------- -------------------- ------------------ ---------- -------------- ---------- ---------- ---------------------------- --------------------------10 7839 KING PRESIDENT 17-11月-81 5000 ACCOUNTINGNEW YORK10 7782 CLARK MANAGER 7839 09-6月 -81 2450 ACCOUNTINGNEW YORK10 7934 MILLER CLERK 7782 23-1月 -82 1300 ACCOUNTINGNEW YORK20 7902 FORD ANALYST 7566 03-12月-81 3000 RESEARCHDALLAS20 7369 SMITH CLERK 7902 17-12月-80 800 RESEARCHDALLAS20 7566 JONES MANAGER 7839 02-4月 -81 2975 RESEARCHDALLAS30 7900 JAMES CLERK 7698 03-12月-81 950 SALESCHICAGO30 7844 TURNER SALESMAN 7698 08-9月 -81 1500 0 SALESCHICAGO30 7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 SALESCHICAGO30 7521 WARD SALESMAN 7698 22-2月 -81 1250 500 SALESCHICAGO30 7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 SALESCHICAGODEPTNO EMPNO ENAME JOB MGR HIREDATE SAL COMM DNAMELOC
---------- ---------- -------------------- ------------------ ---------- -------------- ---------- ---------- ---------------------------- --------------------------30 7698 BLAKE MANAGER 7839 01-5月 -81 2850 SALESCHICAGO已选择 12 行。
利用 ON 子句设置关联条件
SQL> select *2 from emp e join dept d on(e.deptno=d.deptno);EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO DEPTNO DNAMELOC
---------- -------------------- ------------------ ---------- -------------- ---------- ---------- ---------- ---------- ---------------------------- --------------------------7839 KING PRESIDENT 17-11月-81 5000 10 10 ACCOUNTINGNEW YORK7782 CLARK MANAGER 7839 09-6月 -81 2450 10 10 ACCOUNTINGNEW YORK7934 MILLER CLERK 7782 23-1月 -82 1300 10 10 ACCOUNTINGNEW YORK7902 FORD ANALYST 7566 03-12月-81 3000 20 20 RESEARCHDALLAS7369 SMITH CLERK 7902 17-12月-80 800 20 20 RESEARCHDALLAS7566 JONES MANAGER 7839 02-4月 -81 2975 20 20 RESEARCHDALLAS7900 JAMES CLERK 7698 03-12月-81 950 30 30 SALESCHICAGO7844 TURNER SALESMAN 7698 08-9月 -81 1500 0 30 30 SALESCHICAGO7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30 30 SALESCHICAGO7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30 30 SALESCHICAGO7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30 30 SALESCHICAGOEMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO DEPTNO DNAMELOC
---------- -------------------- ------------------ ---------- -------------- ---------- ---------- ---------- ---------- ---------------------------- --------------------------7698 BLAKE MANAGER 7839 01-5月 -81 2850 30 30 SALESCHICAGO已选择 12 行。
同样,上面代码效果等同于前面所介绍的查询语句
select *
from emp,dept
where emp.deptno=dept.deptno;
不过显示结果的时候,deptno 字段只显示一次,而前面介绍的方法会显示两次
外连接
select [distinct] * | 列 [ 别名 ] , 列 [ 别名 ] , ...
from 表 1 [ 别名 ] left | right | full outer join 表 2 ;
左外连接
select *
from emp e left outer join dept d on(e.deptno=d.deptno);
上面代码等同于前面所介绍的查询语句
select *
from emp e,dept d
where e.deptno=d.deptno(+);
全外连接
SQL> select *2 from emp e full outer join dept d on(e.deptno=d.deptno);EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO DEPTNO DNAMELOC
---------- -------------------- ------------------ ---------- -------------- ---------- ---------- ---------- ---------- ---------------------------- --------------------------7369 SMITH CLERK 7902 17-12月-80 800 20 20 RESEARCHDALLAS7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30 30 SALESCHICAGO7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30 30 SALESCHICAGO7566 JONES MANAGER 7839 02-4月 -81 2975 20 20 RESEARCHDALLAS7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30 30 SALESCHICAGO7698 BLAKE MANAGER 7839 01-5月 -81 2850 30 30 SALESCHICAGO7782 CLARK MANAGER 7839 09-6月 -81 2450 10 10 ACCOUNTINGNEW YORK7839 KING PRESIDENT 17-11月-81 5000 10 10 ACCOUNTINGNEW YORK7844 TURNER SALESMAN 7698 08-9月 -81 1500 0 30 30 SALESCHICAGO7900 JAMES CLERK 7698 03-12月-81 950 30 30 SALESCHICAGO7902 FORD ANALYST 7566 03-12月-81 3000 20 20 RESEARCHDALLASEMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO DEPTNO DNAMELOC
---------- -------------------- ------------------ ---------- -------------- ---------- ---------- ---------- ---------- ---------------------------- --------------------------7934 MILLER CLERK 7782 23-1月 -82 1300 10 10 ACCOUNTINGNEW YORK8989 HELLO40 OPERATIONSBOSTON已选择 14 行。
此时把没有员工的部门和没有部门的员工的信息都显示出来了

相关文章:
SQL的1999语法
目录 交叉连接 实现交叉连接 自然连接 实现自然连接(实际上就是内连接) ON和USING 使用自然连接时要求两张表的字段名称相同,但是如果不相同或者两张表中有两组字段是重名,这时就要利用 ON 子句指定关联条件,利用 USING 子句…...
【AIGC】Stable Diffusion安装包
Stable Diffusion 的安装教程通常分为以下几个步骤: 一、安装 Python: 确保您的系统中已经安装了 Python,并且版本符合 Stable Diffusion 的要求。通常情况下,Python 版本应为 3.6 或更高版本。您可以从 Python 官方网站下载并安…...
C++:迭代器的封装思想
C:迭代器的封装思想 list迭代器实现反向迭代器实现 本博客将通过实现list的迭代器,以及它的反向迭代器,来帮助大家理解迭代器的底层逻辑,以及封装思想。 list迭代器实现 迭代器是一个遍历容器的工具,其可以通过自增自…...
飞天使-k8s知识点17-kubernetes实操2-pod探针的使用
文章目录 探针的使用容器探针启动实验1-启动探针的使用-startupprobeLiveness Probes 和 Readiness Probes演示若存在started.html 则进行 探针的使用 kubectl edit deploy -n kube-system corednslivenessprobe 的使用 livenessProbe:failureThreshold: 5httpGet:path: /heal…...
tee漏洞学习-翻译-3:TrustZone exploit for MSM8974
原文:http://bits-please.blogspot.com/2015/08/full-trustzone-exploit-for-msm8974.html 在这篇博文中,我们将介绍利用上一篇文章中描述的 TrustZone 漏洞的完整过程。 在开发此漏洞时,我只使用了我值得信赖的(个人࿰…...
rust递归遍历磁盘目录及文件
Std库实现 //遍历dir目录,找出修改日期距离当前超过age天的文件名称,存入file_list中 fn visit_dir(dir: &Path, file_list: &mut Vec<String>, age: u64) -> io::Result<()> {if dir.is_dir() {for entry in fs::read_dir(dir)…...
C语言每日一题(56)平衡二叉树
力扣网 110 平衡二叉树 题目描述 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 示例 1: 输入:root [3,9,20,…...
Flutter Android开发 梳理Google Material Design颜色体系
前言 做安卓开发(Kotlin语言),Flutter开发的人员应该都听说过谷歌一直推崇的Material Design,而Material Design Color是其推崇的颜色体系,具体来说,Material Design Color是一套旨在帮助设计师和开发者创…...
每日五道java面试题之java基础篇(六)
目录: 第一题:Java 创建对象有哪⼏种⽅式?第二题 .Integer a 127,Integer b 127;Integer c 128,Integer d 128;相等吗?第三题.Object 类的常⻅⽅法?第四题 List和Set的区别第五题 ArrayList和…...
c++ STL系列——(五)map
目录 引言 特点 包含头文件 基本特性 基本操作 插入元素 访问元素 移除元素 检查是否包含某个键 获取元素数量 高级特性 迭代器 自定义比较函数 实际应用 统计字符出现次数 缓存最近访问的元素 总结 引言 在C中,标准模板库(STL…...
Huggingface 文档翻译完毕
Accelerate 0.27 中文文档音频课程文档AutoTrain 中文文档AWS 中文文档竞赛中文文档Diffusers 0.26 中文文档深度强化学习课程文档数据集服务器中文文档Datasets 2.17 中文文档 Evaluate 0.4 中文文档Huggingface.js 中文文档Hub 中文文档Hub 客户端库 JS 0.20 中文文档推理 AP…...
C++中类的6个默认成员函数 【拷贝构造函数】
文章目录 拷贝构造函数的使用拷贝构造对于自定义类型【浅拷贝】深拷贝拷贝构造函数典型调用场景 拷贝构造函数的使用 在前几章学习对象的时候,我们有的时候需要一个与已存在对象一某一样的新对象 那在创建对象时,可否创建一个与已存在对象一某一样的新对…...
【前端高频面试题--Vuex下篇】
🚀 作者 :“码上有前” 🚀 文章简介 :前端高频面试题 🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬前端高频面试题--Vuex篇 往期精彩内容Vuex 的原理Vuex中action和mutation的区别Vuex 和 localStor…...
MySQL性能调优篇(4)-查询语句的优化与重构
MySQL数据库查询语句的优化与重构 MySQL是一种常用的关系型数据库管理系统,广泛应用于Web开发中。在实际应用中,对数据库查询语句的优化和重构是提高应用性能和响应速度的重要手段。本文将介绍一些常见的优化技巧和重构方法,帮助开发者提高数…...
LInux、源码编译安装
步骤: 步骤1:安装开发工具gcc与make,释放源代码至指定目录 yum -y install gcc make 步骤2:tar解包,释放源代码至指定目录 tar -xf /root/tools.tar.gz -C /usr/local 步骤3:./configure 配置,…...
wordpress好的网站主题
有什么好的网站主题,都分享在这里了。 蓝色风格的wordpress模板,好的wordpress网站主题,需要既好看,又好用。 https://www.zhanyes.com/qiye/6305.html 血红色的好看的wordpress主题,布局经典,设计好的&am…...
【Java多线程】对进程与线程的理解
目录 1、进程/任务(Process/Task) 2、进程控制块抽象(PCB Process Control Block) 2.1、PCB重要属性 2.2、PCB中支持进程调度的一些属性 3、 内存分配 —— 内存管理(Memory Manage) 4、线程(Thread)…...
C# CAD交互界面-自定义面板集-查找定位(六)
运行环境 vs2022 c# cad2016 调试成功 一、代码说明 1. 类成员变量声明: List<ObjectId> objectIds new List<ObjectId>(); // 用于存储AutoCAD实体对象的ObjectId列表 private static Autodesk.AutoCAD.Windows.PaletteSet _ps2; // 自定义浮动面板…...
5.7 BCC工具之disksnoop.py解读
一,disksnoop.py简介 disksnoop工具用于追踪块设备的I/O操作的延迟,它会在每次I/O执行完成后打印一行摘要信息。我们根据这些摘要日志,来分析当前的I/O操作是否存在延迟,以判断I/O是否达到了瓶颈。 二,代码示例 #!/usr/bin/python # # disksnoop.py Trace block device…...
QT:实现图片选择器
一、效果图 二、用到的类 qApp:可以快速获取到项目目录位置。 QSettings :编写config文件,记录上次打开图片的位置,下次打开图片会从上次的位置查找图片。 QPixmap:用于图片的缩放,防止图片过小࿰…...
大话软工笔记—需求分析概述
需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...
【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)
1.获取 authorizationCode: 2.利用 authorizationCode 获取 accessToken:文档中心 3.获取手机:文档中心 4.获取昵称头像:文档中心 首先创建 request 若要获取手机号,scope必填 phone,permissions 必填 …...
HDFS分布式存储 zookeeper
hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...
深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用
文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...
CSS | transition 和 transform的用处和区别
省流总结: transform用于变换/变形,transition是动画控制器 transform 用来对元素进行变形,常见的操作如下,它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...
计算机基础知识解析:从应用到架构的全面拆解
目录 前言 1、 计算机的应用领域:无处不在的数字助手 2、 计算机的进化史:从算盘到量子计算 3、计算机的分类:不止 “台式机和笔记本” 4、计算机的组件:硬件与软件的协同 4.1 硬件:五大核心部件 4.2 软件&#…...
(一)单例模式
一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...
