linux之SQL语句简明教程---表格连接
如今我们介绍连接 (Join) 的概念。要了解连接,我们须要用到很多我们之前已介绍过的指令。我们先如果我们有下面的两个表格,
Store_Information 表格
Store_Name | Sales | Txn_Date |
Los Angeles | 1500 | 05-Jan-1999 |
San Diego | 250 | 07-Jan-1999 |
Los Angeles | 300 | 08-Jan-1999 |
Boston | 700 | 08-Jan-1999 |
Geography 表格
Region_Name | Store_Name |
East | Boston |
East | New York |
West | Los Angeles |
West | San Diego |
而我们要知道每一区 (Region_Name) 的营业额 (Sales)。 Geography 这个表格告诉我们每一区有哪些店,而 Store_Information 告诉我们每个店的营业额。若我们要知道每一区的营业额,我们须要将这两个不同表格中的资料串联起来。当我们细致了解这两个表格后,我们会发现它们可经由一个同样的栏位,Store_Name,连接起来。我们先将 SQL 句列出,之后再讨论每个子句的意义:
FROM Geography A1, Store_Information A2
WHERE A1.Store_Name = A2.Store_Name
GROUP BY A1.Region_Name;
结果:
REGION | SALES |
Eas | 700 |
West | 2050 |
在第一行中,我们告诉 SQL 去选出两个栏位:第一个栏位是 Geography 表格中的 Region_Name 栏位 (我们取了一个别名叫做 REGION);第二个栏位是 Store_Information表格中的 Sales 栏位 (别名为 SALES)。请注意在这里我们实用到表格别名:Geography 表格的别名是 A1,Store_Information 表格的别名是 A2。若我们没实用表格别名的话, 第一行就会变成
非常明显地,这就复杂多了。在这里我们能够看到表格别名的功用:它能让 SQL 句easy被了解,尤其是这个 SQL 句含盖好几个不同的表格时。
接下来我们看第三行,就是 WHERE 子句。 这是我们阐述连接条件的地方。在这里,我们要确认Geography 表格中 Store_Name
栏位的值与 Store_Information 表格中 Store_Name 栏位的值是相等的。这个 WHERE 子句是一个连接的灵魂人物,由于它的角色是确定两个表格之间的连接是正确的。假设 WHERE 子句是错误的,我们就极可能得到一个笛卡儿连接 (Cartesian Join)。笛卡儿连接会造成我们得到全部两个表格每两行之间全部可能的组合。在这个样例中,笛卡儿连接会让我们得到 4 x
4 = 16 行的结果。
Linux实測结果:
1.先创建Geography表
2.相表中插入响应的数据
3.连接查询
相关文章
- 【Linux驱动】linux内核模块简介
- [Linux]linux如何把文件切成多块
- Linux权限详解
- ps命令实战 Linux
- Linux基础之查看linux发行版以及内核版本
- Linux基础之linux服务器服务器间拷贝文件
- Linux报错:Syntax error: “(“ unexpected解决办法
- Linux 0.11-给自己挪个地-02
- Sql Server中sql语句自动换行
- 工作中常用的linux命令(2)
- Sql:成功解决将sql输出的datetime时间格式转为常规格式
- 信号概述 硬件异常将产生信号 进程间通信概述 进程间通信 进程间通信功能 Linux 操作系统支持的主要进程间通信的通信机制 linux 进程间通信(IPC)由以下几个部分发展而来 数据传输 信号
- Node.js:insert-sql帮助开发者生成SQL插入语句
- 【Linux 内核 内存管理】mmap 系统调用源码分析 ⑤ ( mmap_region 函数执行流程 | mmap_region 函数源码 )
- 【Linux 内核】CFS 调度器 ④ ( 调度子系统组件模块 | 主调度器、周期性调度器 | 调度器类 )
- Linux命令: 在线使用linux命令环境
- L75.linux命令每日一练 -- 第11章 Linux系统管理命令 -- lsof和uptime
- L73.linux命令每日一练 -- 第十章 Linux网络管理命令 -- dig和host
- L69.linux命令每日一练 -- 第十章 Linux网络管理命令 -- arpping和telnet
- L62.linux命令每日一练 -- 第九章 Linux进程管理命令 -- strace和ltrace
- L54.linux命令每日一练 -- 第八章 Linux磁盘与文件系统管理命令 -- umount和df
- L52.linux命令每日一练 -- 第八章 Linux磁盘与文件系统管理命令 -- resize2fs和fsck
- L50.linux命令每日一练 -- 第八章 Linux磁盘与文件系统管理命令 -- tune2fs和parted
- L45.linux命令每日一练 -- 第七章 Linux用户管理及用户信息查询命令 -- sudo和id
- L35.linux命令每日一练 -- 第五章 Linux信息显示与搜索文件命令 -- which和whereis
- L33.linux命令每日一练 -- 第五章 Linux信息显示与搜索文件命令 -- du和date
- linux parted非交互式分区实例 —— 筑梦之路
- 使用wget批量下载geo数据集的全部文件 linux下载geo数据 geo处理的数据不是下载原始数据 Linux如何下载ftp文件 geo ftp geo ftp下载 geo下载
- 【Linux】linux经常使用基本命令
- 如何在Linux上挂载ISO镜像?
- 入门学习Linux常用必会命令实例详解
- 周立功arm linux教程,极速搭建周立功IMX287A ARM Linux开发环境
- Day 07 - RESTful API 在 Amazon Linux 2 上传图片实作
- Linux- 系统随你玩之--微服务应用出现极少概率会时断时续,它抽风了吗?
- 自定义 Linux 快捷命令