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:用于图片的缩放,防止图片过小࿰…...
百川2-13B模型API调用详解:从Python安装到第一个成功请求
百川2-13B模型API调用详解:从Python安装到第一个成功请求 你是不是也对大模型API调用感到好奇,但一看到那些技术文档就头疼?别担心,今天咱们就来手把手走一遍,从零开始,用最简单的Python代码,完…...
TMSpeech:开源本地语音转文字工具的隐私革命
TMSpeech:开源本地语音转文字工具的隐私革命 【免费下载链接】TMSpeech 腾讯会议摸鱼工具 项目地址: https://gitcode.com/gh_mirrors/tm/TMSpeech 在数字化办公浪潮中,语音转文字工具已成为效率提升的关键助手,但云端处理的隐私泄露风…...
手把手教你用Python计算斯皮尔曼相关系数:从手动推导到scipy一键调用
深入掌握Python中的斯皮尔曼相关系数:从数学原理到实战应用 在数据分析领域,理解变量之间的关系是至关重要的。斯皮尔曼相关系数作为一种非参数统计量,能够揭示数据间的单调关联,而不仅仅是线性关系。本文将带你从基础概念出发&am…...
MLCC陶瓷电容选型避坑指南:从X7R到C0G,5个关键参数决定电路稳定性
MLCC陶瓷电容选型避坑指南:从X7R到C0G,5个关键参数决定电路稳定性 当你在设计一个精密电源模块时,突然发现输出电压在高温环境下出现异常波动;或者调试射频电路时,明明计算无误的滤波网络却始终达不到预期效果——这些…...
COMSOL实现煤层注气THM耦合的甲烷开采效果模拟与可视化分析
一、COMSOL实现煤层注气热力流THM耦合下增强甲烷开采 本案例采用热力流三场耦合,分析煤层注入CO2增强甲烷开采效果,涉及热-流-固数学模型、多气相介质作用,全部为PDE模块 二、可以出煤层温度、瓦斯含量、渗透率等许多云图及数据,仅…...
终极指南:用30亿参数Qwen2.5-VL-3B解锁企业级视觉语言能力
终极指南:用30亿参数Qwen2.5-VL-3B解锁企业级视觉语言能力 【免费下载链接】Qwen2.5-VL-3B-Instruct 项目地址: https://ai.gitcode.com/hf_mirrors/Qwen/Qwen2.5-VL-3B-Instruct 你是否曾被大型视觉语言模型的高昂部署成本所困扰?是否因为硬件限…...
开源推荐系统项目数据管理实战:从零构建高质量训练数据集
开源推荐系统项目数据管理实战:从零构建高质量训练数据集 【免费下载链接】fun-rec 推荐系统入门教程,在线阅读地址:https://datawhalechina.github.io/fun-rec/ 项目地址: https://gitcode.com/datawhalechina/fun-rec 你是否曾满怀热…...
三三复制商业模式系统介绍
三三复制商业模式系统介绍:裂变逻辑与合规落地全解析在数字经济时代,社交电商与分销模式的创新成为企业突破增长瓶颈的关键。三三复制模式以其几何级数的裂变效率、清晰的层级收益结构和低门槛参与机制,在电商、直销等领域展现出强大的生命力…...
微信小程序语音交互实战:长按录制与点击播放的完整实现方案
1. 微信小程序语音交互功能概述 语音交互已经成为现代移动应用不可或缺的功能之一。在微信小程序中实现语音录制与播放,能够极大提升用户体验,特别适合社交、教育、工具类小程序。我最近在一个社交类小程序项目中实现了完整的语音交互模块,踩…...
别再死磕公式了!用Python+SymPy从零推导6轴机械臂的DH参数与正逆解(附完整代码)
用PythonSymPy自动化推导6轴机械臂运动学:从DH参数到八组逆解实战 机械臂运动学分析是机器人开发中最烧脑的环节之一。传统手工推导DH参数矩阵不仅容易出错,验证过程更是令人崩溃——想象一下,当你花了两天时间推导出十几页公式,…...
