连接(交叉连接、内连接、外连接、自连接)

本文非原创

 

 

可分为:交叉连接、内连接、外连接、自连接

1.使用交叉连接:

它是非限制连接,就是将两个表格不加任何条件的组合在一起,
即第一个表格的所有记录分别和第二个表格的每一条记录相连接
组合成新的记录,连接后结果集的行数是两个表格的行数的乘积,
列为两表列之和。

语法: (1)select 列名列表 from 表名1 cross join 表名2
(2)select 列名列表 from 表名1 (起别名) , 表名2

注意:当显示某一些字段要用表名指定。

例:select a.book_name , b.book_num from table1 a , table2 b


2.使用内连接:

内连接是将两个表中满足条件的记录显示出来,就是在交叉连接的
基础上加条件,一般采用“主键 = 外键”的形式。

语法:(1)select 列名列表 from 表名1 [inner] join 表名2 on 条件表达式

(2)select 列名列表 from 表名1 , 表名2 where 条件表达式

例:select * from table1 a join table2 b on a.book_name = b.book_name

 

3.使用外连接:

外连接分为:左外连接、右外连接、全外连接

(1)左外连接:

它是将左表中的所有数据分别与右表的每一条数据进行组合,
结果集中除了显示内连接的记录外,还显示左表中不符合条
件的记录,并在右表中相应的列上填 Null 值.

语法: select * from 表名1 left [outer] join 表名2 on 条件表达式

(2)右外连接:

它是将右表中的所有数据分别与左表的每一条数据进行组合,
结果集中除了显示内连接的记录外,还显示右表中不符合条
件的记录,并在左表中相应的列上填 Null 值.

语法: select * from 表名1 right [outer] join 表名2 on 条件表达式

 

(3)全外连接:

全外连接就是左表中的所有记录分别与右表中的每一条进行组合,
结果集中除返回内部连接记录之外,还要显示出两个表中不符合
条件的全部记录,并在左表、右表中对应的位置添上Null 值。

语法: select * from 表名1 full join 表名2 on 条件表达式

4.使用自连接:

自连接就是一张表的两个副本之间的连接,就是将同一个表的
不同行连接起来;使用自连接时,必须为本表指定两个别名,
使其在逻辑上成为两个表。

例: select a.biao_jia , a.biao_liang from qian a join qian b
on a.biao_jia = b.biao_jia and a.biao_liang <> b.biao_liang


5. 合并结果集:

使用union 语句可以把两个以上的结果集合并为一个结果集。

语法: select …………
union
select …………

合并结果集时有以下三点限制:
(1)union 合并的结果集的两个 select 语句的列数相同,
所使用列的数据类型要对应相同;

(2)最后结果集中的列名来自第一个 select 语句;

(3)在合并结果集时,默认将从最后结果集中删除重复的行,
除非使用关键字。

例:select book_name , book_id into #new_1 from YI
go
select egg_name , egg_shu into #new_2 from egg
go
select * from #new_1
union all
select * from # new_2

转载于:https://www.cnblogs.com/xieyuanzheng/p/5597089.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/357143.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue样式绑定与事件处理器的基本使用

目录 Vue.js 样式绑定 Vue.js 事件处理器 事件修饰符 Vue.js 样式绑定

Finally 与 return

网上有很多人探讨Java中异常捕获机制try...catch...finally块中的finally语句是不是一定会被执行&#xff1f;很多人都说不是&#xff0c;当然他们的回答是正确的&#xff0c;经过我试验&#xff0c;至少有两种情况下finally语句是不会被执行的&#xff1a; &#xff08;1&…

vue表单的基本使用

Vue.js 表单 介绍 一下Vue.js 表单上的应用。你可以用 v-model 指令在表单控件元素上创建双向数据绑定。 v-model 会根据控件类型自动选取正确的方法来更新元素。 input 和 textarea 元素中使用 v-model 实现双向数据绑定: <!DOCTYPE html> <html> <head…

fold函数_Java中使用Map and Fold进行函数式编程

fold函数在函数式编程中&#xff0c;Map和Fold是两个非常有用的运算符&#xff0c;它们属于每种函数式语言。 如果Map和Fold运算符是如此强大且必不可少&#xff0c;那么您如何解释说即使Java编程语言缺少这两个运算符&#xff0c;我们也可以使用Java来完成工作&#xff1f; 事…

NVIC优先级分组

挂起&#xff0c;解挂&#xff0c;使能&#xff0c;失能 转载于:https://www.cnblogs.com/alantechnique/p/5598374.html

Vue组件及自定义事件

目录 Vue.js 组件 动态 Prop Prop 验证 Vue.js 组件 - 自定义事件 data 必须是一个函数

高级Lucene查询示例

本文是我们名为“ Apache Lucene基础知识 ”的学院课程的一部分。 在本课程中&#xff0c;您将了解Lucene。 您将了解为什么这样的库很重要&#xff0c;然后了解Lucene中搜索的工作方式。 此外&#xff0c;您将学习如何将Lucene Search集成到您自己的应用程序中&#xff0c;以…

Vue 路由的基本使用

目录 Vue.js 路由 安装 直接下载 / CDN NPM to replace append tag

【Egret】Wing3发布移动APP功能,打包APK流程以及会遇到的问题

流程&#xff1a;1.安装好wing 3&#xff0c;然后 插件——Egret项目工具——发布移动APP——Build android native project 2.配置发布环境&#xff1a; Android 1.egret engine 点击下载2.android sdk mac版下载 windows版下载3.java sdk mac版下载 windows版…

Vue过渡 动画混入

目录 过渡 自定义过渡的类名 同时使用过渡和动画 显性的过渡持续时间

有效运维的 on-call 机制

[编者按]本文作者为云告警平台OneAlert负责人&#xff0c;著《云计算与OpenStack》&#xff0c;在IT运营管理、云计算方面从业10多年。 正文 互联网技术的发展&#xff0c;离不开运维支撑工作&#xff0c;没有零bug的程序&#xff0c;没有不出问题的系统&#xff0c;问题故障不…

vue中Ajax(axios)及Ajax(vue-resource)的使用方法

目录 Vue.js Ajax(axios) GET 方法 请求方法的别名 并发 请求配置项 响应结

javafx11 最佳实践_JavaFX移动应用程序最佳实践,第2部分

javafx11 最佳实践警告&#xff1a;我在这里给出的提示适用于JavaFX Mobile的当前版本&#xff0c;该版本是JavaFX 1.1 SDK的一部分。 在将来的版本中&#xff0c;行为将发生变化&#xff0c;上述工件的当前不良性能将被优化或至少得到显着改善。 我在这里写的所有内容都是快照…

团队项目:界面设计

游戏内关卡为2D横版界面&#xff0c;背景为楼群贴图&#xff0c;整体色调以灰色为主&#xff0c;与摩托车手的主题相配。游戏中配有音效及背景音乐&#xff0c;背景音乐为我组成员自行创作录制完成。界面展示如下&#xff1a; 图1 游戏中设计图 图中显示的摩托车手即为玩家操控…

vues响应接口and实例

目录 Vue.js 响应接口 Vue.set Vue.delete Vue.js 实例 导航菜单实例 编辑文本实例

Hystrix简介

在过去的几天里&#xff0c;我一直在探索Netflix Hystrix库&#xff0c;并欣赏了这个出色的库所提供的功能。 引用Hystrix网站上的内容&#xff1a; Hystrix是一个延迟和容错库&#xff0c;旨在隔离对远程系统&#xff0c;服务和第三方库的访问点&#xff0c;停止级联故障&am…

MP3音乐播放器搜索引擎-鼠标拖动窗口

定义鼠标的按压&#xff0c;移动&#xff0c;施放事件 &#xff08;1&#xff09;鼠标的按压事件 globalpos是全局坐标&#xff0c;即鼠标相对于桌面屏幕左上角的坐标我们通过this->frameGeometry().topLeft();可以获得当前窗口的左上角的x左边或y坐标 在移动事件中我们可以…

SpringMVC学习--文件上传

简介文件上传是web开发中常见的需求之一&#xff0c;springMVC将文件上传进行了集成&#xff0c;可以方便快捷的进行开发。 springmvc中对多部件类型解析在 页面form中提交enctype"multipart/form-data"的数据时&#xff0c;需要springmvc对multipart类型的数据进行解…

VS code常用的快捷键

在前端的开发过程中&#xff0c;如果有一个比较好的开发工具&#xff0c;配合一些常用的快捷键&#xff0c;开发效率将大大提升&#xff0c;正所谓工具善其事必先利其器。前端推荐使用编辑器VS code,用过HB-X&#xff0c;ST3,Webstorm等编译器之后就会发现&#xff0c;前端编辑…

平台日志架构说明log4j漏洞问题解析

Log4j是Apache的一个开源项目&#xff0c;通过使用Log4j&#xff0c;我们可以控制日志信息输送的目的地是控制台、文件、GUI组件&#xff0c;甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等&#xff1b;我们也可以控制每一条日志的输出格式&#xff1b;通过定义每…