SQL进阶语法的多表操作
AS别名
多张表联合操作,如果表多,字段名长,不方便阅读。这里我们可以使用 as 关键字来对字段名设置别名。
as也可以省略,看个人喜好,在这里我还是支持把 as 写上,这样我们在面对复杂的SQL语句时有很好的可读性。
接下来的多表操作将都使用别名,不难,一看便懂。
下面是两张表,


表的链接
1、内连接(又称显示连接)
inner join
如果表中至少有一个匹配,则返回结果

查询列出购买了商品的用户,以及他们买了什么
2、左连接
left join
即使右表中没有匹配,也从左表返回所有的结果

查询列出所有用户,即使他们没有买东西
3、右连接
right join
即使左表中没有匹配,也从右表返回所有的结果

查询列出所有商品,即使该商品没有被用户购买
4、全连接
full join
注:mysql 不支持full join,所以我们使用mysql支持的方式来实现full join的功能。也就是join + union(不懂union先看下面的union讲解)
join + union
其实就是内连接 + 左连接 + 右连接

查询列出哪些用户购买了哪些商品,哪些用户没有购买,哪些商品没被用户购买
附:union的功能
union:并和两个或多个select语句的结果集合,自动去重
union all:与union相同,但是允许重复
注意事项:使用union,必须保证所有select后面查询的字段名一致。数量,类型,顺序都必须是一样的。
5、制作备份文件
select into
注:mysql也不支持select into这种方法来创建备份表,我们可以用另一种方法 ↓
create table 备份表名 (select 字段名 from 表名)


创建了userinfo表的备份表,内容一致
SQL进阶语法的多表操作的更多相关文章
- SQL基础语法的单表操作 select|insert|update|delete(增删改查) 简单使用
以下案列以此表举例 1.select(查询) select简单的查询分为两种 注:字段也就是表结构中的列的名称 第一种: select 字段名 from 表名 此种查询只列出你所需要查询的字段, ...
- Sql Server系列:数据表操作
表是用来存储数据和操作数据的逻辑结构,用来组织和存储数据,关系数据库中的所有数据都表现为表的形式,数据表由行和列组成.SQL Server中的数据表分为临时表和永久表,临时表存储在tempdb系统数据 ...
- SQL server基础知识(表操作、数据约束、多表链接查询)
SQL server基础知识 一.基础知识 (1).存储结构:数据库->表->数据 (2).管理数据库 增加:create database 数据库名称 删除:drop database ...
- SQL 基础语法(创建表空间、用户、并授予权限、数据的增删改查) --(学习笔记)[转]
--创建表空间 名:lyayzh_test create tablespace lyayzh_test --创建表数据文件 名:lyayzh_test_data.dbf 必须以dbf为后缀 dataf ...
- c# 分析SQL语句中的表操作
最近写了很多方向的总结和demo.基本包含了工作中的很多方面,毕竟c#已经高度封装并且提供了很多类库.前面已经总结了博文.最近2天突然感觉前面的SQL分析阻组件的确麻烦,也注意看了下.为了方便大家学习 ...
- web框架开发-Django模型层(1)之ORM简介和单表操作
ORM简介 不需要使用pymysql的硬编码方式,在py文件中写sql语句,提供更简便,更上层的接口,数据迁移方便(有转换的引擎,方便迁移到不同的数据库平台)…(很多优点),缺点,因为多了转换环节,效 ...
- python 全栈开发,Day71(模型层-单表操作)
昨日内容回顾 1. {% include '' %} 2. extend base.html: <html> ..... ..... ..... {% block content%} {% ...
- Django基础(3)----模型层-单表操作,多表创建
昨日内容回顾: 1. {% include '' %} 2. extend base.html: <html> ..... ..... ..... {% block content%} { ...
- SQL Server 基础 01 数据库、表操作
对着书慢慢学习,一天一点点! 数据库操作 (create.alter.drop) --3-3-1 /create database 语句创建数据库 create database testSQL - ...
随机推荐
- Pig安装与应用
1. 参考说明 参考文档: http://pig.apache.org/docs/r0.17.0/start.html#build 2. 安装环境说明 2.1. 环境说明 CentOS7.4+ ...
- VMware桥接模式下主机和和虚机间互相ping不通的处理方法
在 "编辑"->"虚拟网络编辑器" 里面的vmnet0 桥接模式 里面是自动连接,把他改为真实的物理网卡即可,如下图:
- 编译器错误消息: CS0016: 未能写入输出文件"c:\Windows\Microsoft.NET\Framework
解决办法: 原因是由于系统目录下的Temp目录无相应的权限所致,具体操作如下: 来到C:/Windows目录,修改temp文件夹的属性. 在安全页设置IIS-IUSRS的权限,赋予修改.读取.写入等权 ...
- Linux 安装MySQL-python
vi ~/.bash_profile PATH="/usr/local/mysql/bin:${PATH}" export PATH export DYLD_LIBRARY_PAT ...
- Eigen学习之Array类
Eigen 不仅提供了Matrix和Vector结构,还提供了Array结构.区别如下,Matrix和Vector就是线性代数中定义的矩阵和向量,所有的数学运算都和数学上一致.但是存在一个问题是数学上 ...
- webpack-易混淆部分的解释
原文链接: https://medium.com/@rajaraodv/webpack-the-confusing-parts-58712f8fcad9 webpack的核心哲学 1. 任何皆模块 正 ...
- cookie 常用的几种方法
{ setCookie: function(sName, sValue, oExpires, sPath, sDomain, bSecure) { var sCookie = sName + &quo ...
- teradata 查询创建表的时间
如何查询teradata创建表的时间? select tablename,CreateTimeStamp from dbc.tables ---dbc的table,user是在dbc内的吗?具体不清楚 ...
- C语言const与#define
const 定义的是变量不是常量,只是这个变量的值不允许改变是常变量!带有类型.编译运行的时候起作用存在类型检查. define 定义的是不带类型的常数,只进行简单的字符替换.在预编译的时候起作用,不 ...
- Redis(三)Redis基本命令操作与API
一Redis 连接 Redis 连接命令主要是用于连接 redis 服务. 实例 以下实例演示了客户端如何通过密码验证连接到 redis 服务,并检测服务是否在运行: redis 127.0.0.1: ...