《深入浅出SQL》问答录(九)
时间:2022-07-23
本文章向大家介绍《深入浅出SQL》问答录(九),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
花絮
左外联接
LEFT OUTER JOIN 会匹配左表中的每一行及右表中符合条件的行。 当左表与右表具有一对多关系时,左外联接特别有用。
理解外联接的最大秘密在于知道表在左边还是右边,在LEFT OUTER JOIN中,出现在FROM后,联接前的表称为左表,而出现在联接后的表称为右表。
SELECT g.girl,t.toy
FROM girls g --g是左表
LEFT OUTER JOIN toys t --t是右表
ON g.toy_id = t.toy_id;
内外联接有什么差别?外联接一定会提供数据行,无论该行能否在另一个表中找出相匹配的行。 左外联接的结果为NULL表示右表没有找到与左表相符的记录。
具体流程概览(图有点小瑕疵):
右外联接
有外联接与左外联接一样,除了它是用右表与左表比对。
自联接
同一个表可以同时作为外联接的左右表。虽然听起来很奇怪,不过却很好用。
来一题看看;
SELECT c1.name,c2.name AS boss
FROM clown_info1 c1
INNER JOIN clown_info2 c2
ON c1.bossid = c2.id
;
自联接能够把一张表当成两张完全相同的表来进行查询。
UNION
还有一种取得多张表的查询结果的方式:UNION联合。
UNION根据我们在SELECT中指定的列,把两张表或更多张表的查询结果合并至一个表中。
SELECT title FROM job_current
UNION
SELECT title FROM job_desired
UNION
SELECT title FROM job_listings;
UNION的使用限制
示例
SELECT title FROM job_current
UNION
SELECT title FROM job_desired
UNION
SELECT title FROM job_listings
ORDER BY title;
结果集:
SELECT title FROM job_current
UNION ALL
SELECT title FROM job_desired
UNION ALL
SELECT title FROM job_listings
ORDER BY title;
结果集:
联合规则说:选取的列必须可以互相转换。
联接VS子查询
问答录
Q:有使用左外连接取代右外联接的理由吗?
A:一般来说,固定使用一种联接的习惯会让事情更简单,这样不容易搞混。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 腾讯云语音识别python-sdk使用笔记
- TKE部署ES如何配置参数vm.max_map_count
- Jquery validate remote 验证数据唯一
- MySQL 案例:乱码,字符集与错入错出的 MySQL
- Jenkins常用插件Copy Artifact的使用
- 聊聊dubbo-go的roundRobinLoadBalance
- 腾讯云录音文件识别请求和结果查询
- 【Kubernetes】kubectl top 如何使用
- js数组方法,常用数组Api的基本使用
- java jsp实现网络考试系统(mysql)
- 实操:数据万象语音转文字
- python智能图片识别系统(图片切割、图片识别、区别标识)
- 【Kubernetes】部署 metrics-server 后无法使用 top 命令
- 使用java计算数组方差和标准差
- jzy3D从入门到弃坑_2 使用jzy3D0.9画2D散点图