自然连接(NATURAL JOIN)

2023-10-31

      自然连接(NATURAL JOIN)是一种特殊的等值连接,将表中具有相同名称的列自动进行匹配。

1.自然连接不必指定任何连接条件。

SQL> desc emp
 
 Name               Null?    Type
 ----------------- -------- ------------------
 EMPNO              NOT NULL NUMBER(4)
 ENAME                       VARCHAR2(10)
 JOB                         VARCHAR2(9)
 MGR                         NUMBER(4)
 HIREDATE                    DATE
 SAL                         NUMBER(7,2)
 COMM                        NUMBER(7,2)
 DEPTNO                      NUMBER(2)

SQL> desc dept

 Name               Null?    Type
 ------------------ -------- ------------------
 DEPTNO             NOT NULL NUMBER(2)
 DNAME                       VARCHAR2(14)
 LOC                         VARCHAR2(13)

      以上两张表中,有deptno这列名字相同,而且数据类型一致。


SQL> select *
  2  from emp natural join  dept;  
 
DEPTNO      EMPNO ENAME      JOB               MGR HIREDATE            SAL       COMM DNAME      LOC
---------- ---------- ---------- ---------- ---------- ------------ ---------- ---------- ---------- ---------
        10       7782 CLARK      MANAGER          7839 09-JUN-81          2450            ACCOUNTING NEW YORK
        10       7839 KING       PRESIDENT             17-NOV-81          5000            ACCOUNTING NEW YORK
        10       7934 MILLER     CLERK            7782 23-JAN-82          1300            ACCOUNTING NEW YORK
        20       7566 JONES      MANAGER          7839 02-APR-81          2975            RESEARCH   DALLAS
        20       7902 FORD       ANALYST          7566 03-DEC-81          3000            RESEARCH   DALLAS
        20       7876 ADAMS      CLERK            7788 23-MAY-87          1100            RESEARCH   DALLAS
        20       7369 SMITH      CLERK            7902 17-DEC-80           800            RESEARCH   DALLAS
        20       7788 SCOTT      ANALYST          7566 19-APR-87          3000            RESEARCH   DALLAS
        30       7521 WARD       SALESMAN         7698 22-FEB-81          1250        500 SALES      CHICAGO
        30       7844 TURNER     SALESMAN         7698 08-SEP-81          1500          0 SALES      CHICAGO
        30       7499 ALLEN      SALESMAN         7698 20-FEB-81          1600        300 SALES      CHICAGO
        30       7900 JAMES      CLERK            7698 03-DEC-81           950            SALES      CHICAGO
        30       7698 BLAKE      MANAGER          7839 01-MAY-81          2850            SALES      CHICAGO
        30       7654 MARTIN     SALESMAN         7698 28-SEP-81          1250       1400 SALES      CHICAGO

14 rows selected.

       自然连接之后,两张表等值连接,DEPTNO这列自动合并成一列。

2.如果两张表中有相同名字的列,但是数据类型不一致,如果能隐式转换,则能正常连接,但如果隐式转换不成功,则报错。

SQL>  create table emp2 as select * from emp;

Table created.

SQL> create table dept2 as select * from dept;

Table created.

SQL> alter table emp2 modify deptno number(10);

Table altered.

SQL> select * from emp2 natural join  dept2;

    DEPTNO      EMPNO ENAME      JOB               MGR HIREDATE            SAL       COMM DNAME      LOC
---------- ---------- ---------- ---------- ---------- ------------ ---------- ---------- ---------- ---------
        20       7369 SMITH      CLERK            7902 17-DEC-80           800            RESEARCH   DALLAS
        30       7499 ALLEN      SALESMAN         7698 20-FEB-81          1600        300 SALES      CHICAGO
        30       7521 WARD       SALESMAN         7698 22-FEB-81          1250        500 SALES      CHICAGO
        20       7566 JONES      MANAGER          7839 02-APR-81          2975            RESEARCH   DALLAS
        30       7654 MARTIN 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

自然连接(NATURAL JOIN) 的相关文章

  • vue2.0 实现导航守卫(路由守卫)

    路由跳转前做一些验证 比如登录验证 是网站中的普遍需求 对此 vue route 提供的 beforeRouteUpdate 可以方便地实现导航守卫 navigation guards 导航守卫 navigation guards 这个名字
  • 计算机视觉开发者的新伙伴:Python中的SAM

    计算机视觉开发者的新伙伴 Python中的SAM 计算机视觉是人工智能领域的一个重要分支 它涉及使用计算机和相应的算法来解析和理解图像和视频数据 在计算机视觉开发中 Python是一种广泛使用的编程语言 它提供了许多强大的库和工具 帮助开发
  • react的状态提升

    1 概念理解 在react中是单向数据流的设计 即 只有父组件可以传递数据给子组件 而没有子组件传递数据给父组件的概念 以正确的技术说明 是 拥有者组件 可以设置 被拥有者组件 中的资料 也就是主人与仆人的关系 那么子组件要传递数据给父组件
  • 宝塔 + SSRPanel 前端安装教程

    一 安装宝塔及环境 安装宝塔面板 登录 SSH 后 直接安装宝塔 yum install y wget wget O install sh http download bt cn install install sh sh install
  • 数据库定义语言(DDL)详解

    数据库定义预压 DDL 语言 是重要的语言之一 包含三个关键字 CREATE DROP ALTER 数据库语言都遵循巴科斯范式 其语言规范如下所示 L利用CREATE关键字可以实现定义 定义数据库 定义表 定义索引 定义视图等 常用的是建表
  • LOESS局部加权

    参考资料 1 Matlab中fLOESS函数 https ww2 mathworks cn matlabcentral fileexchange 55407 loess regression smoothing s tid srchtitl
  • node.js 做反向代理

    1 安装http proxy模块 npm install http proxy 2 使用http proxy模块启动代理服务器 导入http模块 var http require http 导入http proxy模块 var httpPr
  • C++设计模式(二)(摘录)

    C 设计模式 二 摘录 装饰模式 装饰模式 动态地给一个对象添加一些额外的功能 它是通过创建一个包装对象 也就是装饰来包裹真实的对象 新增加功能来说 装饰器模式比生产子类更加灵活 以下情形考虑使用装饰模式 需要扩展一个类的功能 或给一个类添
  • java之Thread类详细分析(全)

    目录 前言 1 属性值 1 1 线程属性方法 2 常用方法 3 使用方法 前言 Thread是程序中的执行线程 jvm并发地运行多个执行线程 1 属性值 通过查看Thread源码 是继承Runnable接口的实现类 无论使用Runnable
  • [Java]学习笔记

    一些JAVA的学习笔记 记录 主要是和C的不同点 https www runoob com java java tutorial html 声明数组变量 注意 建议使用 dataType arrayRefVar 的声明风格声明数组变量 da
  • 【多同步挤压变换】基于多同步挤压变换处理时变信号和噪声信号研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 2 1 算例1 2 2 算例2 2 3 算例3 2 4 算例4 2 5 算例5 3 参考文献
  • c++版本itk读取dicom序列

    读取dicom序列 hablee void readDicomSeries const std string dicom dir itk Image
  • .NET MVC+EF CodeFirst+IOC+EasyUI 框架设计教程(概述)

    一 开发环境 Win7 VS2013 C SQL Server2008 R2 二 总体源代码结构如下 说明 这个分层按个人理解 不一定要照我的 如果做过开发 会三层架构之类的理解起来就容易 01 Infrastructure 基础构件 Ne
  • QGIS批量将分幅遥感影像合并

    要在QGIS中编程实现批量将分幅遥感影像拼接成完整影像 可以按照以下步骤进行操作 1 首先 确保已经安装并正确配置了QGIS Python环境 并导入所需的库 以下是代码的导入部分 from qgis core import QgsProj
  • 常见的金融术语——176个基础金融知识名词解释

    基金类 1 开放式基金 open end funds 指基金规模不是固定不变的 而是可以随时根据市场供求情况发行新份额或被投资人赎回的投资基金 2 封闭式基金 close end funds 指基金规模在发行前已确定 在发行完毕后及规定的期
  • 解决文字自动换行,字母、数字不换行问题

    添加css属性word break break all
  • mysql修改root密码的语句

    ALTER USER root localhost IDENTIFIED WITH mysql native password BY 新密码 其中 localhost 字符 有的小伙伴可能遇到过无法通过navicat连接Linux中的MyS
  • 单点登录SSO:可一键运行的完整代码

    单点登录方案不同于一个普通站点 它的部署比较繁琐 涉及到好几个站点 要改host 安装证书 配置HTTPS 看到的不少这方面示例都是基于HTTP的 不认同这种简化 1 它体现不出混合HTTP HTTPS时 单点注销要注意处理的问题 2 做单

随机推荐

  • 【Node.js】下载安装及简单使用

    说起Node js 它是当前市面上非常受欢迎的框架 允许我们使用JavaScript搭建后端应用 它有着种种优点 诸如 非阻塞I O 事件驱动 跨平台 高性能 单线程 等等等等 不过现在我们不必执拗与关心这些优点的含义 当务之急是先上手他
  • conda加速设置

    Conda作为使用最为便捷的python环境管理工具 可以协助我们很方便的下载安装第三方库 软件包等操作 但其在下载资源的过程中速度不言而喻 尤其是在更换国内源的情况下 下载速度没有实质性的改变是很令人头疼的一件事 Mamba 树眼镜蛇 能
  • (tensorflow学习)用Object Detection API实现摄像头实时物体检测

    对于物体识别 谷歌已经有训练好的模型供我们使用 图方便不想自己训练的可以直接使用 说实话 装这个tensorflow真心麻烦 我建议用anaconda环境搭建 还要注意装的话装1 几的版本就可 用gpu跑的话注意显卡型号和版本是否兼容 真是
  • 【C++】内存管理

    目录 一 C C 内存分布 二 C语言中动态内存管理方式 三 C 中动态内存管理 1 开辟空间 2 释放空间 四 operator new与operator delete函数 五 内存泄漏 1 什么是内存泄漏 2 如何避免内存泄漏 总结 一
  • Python的getattr方法

    getattr是Python中的内置函数 用于获取一个对象的属性值 这个函数是动态获取属性的一种方式 特别适用于你事先不知道要获取哪个属性 或者属性名是在运行时确定的情况 使用方法 getattr object name default o
  • 资产安全 错题点

    数据所有者 1 决定谁有权访问信息系统 2 对资产负有最终责任 PS 对资产负有最终责任的 高级管理层 数据所有者 首选管理层 3 行为规则 制定规则 以便用于主体的数据或信息的适当使用及保护 4 决定数据的级别 每年回顾确保数据分级的正确
  • 【国产化踩坑记】openEuler系统安装,nvidia驱动,cuda,anaconda安装步骤记录

    1 openEuler安装步骤 尝试安装了openEuler20 03和22 03两个版本 在摸索的过程中总结了一下步骤 以及相关问题的解决方案 进行简单记录 便于后续使用 1 openEuler20 03安装步骤 网络配置以及可视化操作界
  • Segmentation fault (core dumped) 错误的一种解决场景

    错误类型 Segmentation fault core dumped 产生原因 Segmentation fault 段错误 Core Dump 核心转储 是操作系统在进程收到某些信号而终止运行时 将此时进程地址空间的内容以及有关进程状态
  • Springboot+Axios双token解决token过期续签问题

    后端分离使用token进行登录验证时 由于token存在过期时间 每次token过期都需要用户重新登录的话 用户体验很不友好 假如token能跟session一样 如果用户持续在进行操作 就自动延长有效时间 就可以解决问题 但是 token
  • qt利用腾讯云服务器实现不同局域网的通信(tcp)

    网上大多数关于qt通信的文章都是同一局域网通信 这种根本没有达到自己想象中的那种通信的要求 不同局域网的通信 这里用到的方法是客户端发送消息给服务器 然后服务器再发送给另一个局域网的客户 首先我们需要购买一个腾讯云服务器 并在自己电脑登录腾
  • Python记11(网络传输大文件

    客户端 import socket tqdm os 传输数据分隔符 separator
  • log4j2入门(三) PatternLayout输出格式详解

    摘要 本节介绍Log4j的输出格式的详细说明 1 PatternLayout参数 charset 指定字符集 pattern 指定格式 alwaysWriteExceptions 默认为true 输出异常 header 可选项 包含在每个日
  • connect和bind

    UDP 考虑以下情形 我们使用UDP写一个echo程序 客户端模型 while fget sendto recvfrom 如果服务器进程没有启动会如何 通过截包发现服务器响应一个icmp port unreachable 不过这个ICMP错
  • java: javamail 1.6.2 Create Receive Email using jdk 19

    接收邮件 中文是乱码 未解决 param pop3Host pop 163 com param storeType pop3 param user geovindu 163 com param password geovindu autho
  • 安装DevEco Studio 3.0 Beta2

    引言 鸿蒙应用程序前端 北向开发 的开发环境是华为提供的HUAWEI DevEco Studio DevEco Studio支持Windows和macOS系统 本文记录了DevEco Studio 3 0 Beta2在Windows操作系统
  • 学习笔记 JavaScript ES6 NRM源切换

    NRM npm registry manager 镜像源管理工具 两种切换方式 一 终端里输入如下命令即可切换至淘宝镜像源 mac下测试通过 npm config set registry http registry npm taobao
  • krita windows编译源码

    Qt系列文章目录 文章目录 Qt系列文章目录 前言 一 krita 二 krita源码编译 1 Windows下编译 1 编译准备 2 相关命令 使用CMake编译krita 重新编译 使用CMkae bash find package Z
  • 06C++11多线程编程之lock_guard类模板

    06C 11多线程编程之lock guard类模板 1 lock guard概念 1 lock guard是一个类模板 它是mutex的进化版 自动lock 和unlock 类似独占型智能指针unique ptr 是一个保姆 在lock g
  • QT解析XML的三种方式

    1 QT QXmlStreamReader用法小结 解析常用到的函数含义 1 导入一个xml文件或字符串的方式 方式一 QXmlStreamReader reader sXMLContent 字符串的xml 方式二 QXmlStreamRe
  • 自然连接(NATURAL JOIN)

    自然连接 NATURAL JOIN 是一种特殊的等值连接 将表中具有相同名称的列自动进行匹配 1 自然连接不必指定任何连接条件 SQL gt desc emp Name Null Type EMPNO NOT NULL NUMBER 4 E