简要了解连接查询

简要了解连接查询

连接查询
含义

​ 当查询中涉及到了多个表的字段,需要使用多表连接

​ select 字段1,字段2

​ from 表1,表2,…

​ 笛卡尔乘积:当查询多个表时,没有添加有效的连接条件,导致多个表所有行实现完全连接

​ 如何解决:添加有效的***连接条件***

分类

​ 按年代分类:

​ sq192:

​ 等值

​ 非等值

​ 自连接

​ 也支持一部分外连接(用于oracle、sqlserver、mysql不支持)

​ sq199【推荐使用】:

​ 内连接

​ 等值

​ 非等值

​ 自连接

​ 外连接

​ 左外

​ 右外

​ 全外(Mysql不支持)

​ 交叉连接

SQL92语法
等值连接

​ 语法:

​ select 查询列表

​ from 表1 别名 ,表2 别名

​ where 表1, key=表2,key

​ 【and 筛选条件】

​ 【group by 分组字段】

​ 【having 分组后的筛选】

​ 【order by 排序字段】

​ 特点:

​ 1>一般为表起别名

​ 2>多表的顺序可以调换

​ 3>n表连接至少需要n-1个连接条件

​ 4>等值连接的结果是多表的交集部分

非等值连接

​ 语法:

​ select 查询列表

​ from 表1 别名 ,表2 别名

​ where 非等值连接条件

​ 【and 筛选条件】

​ 【group by 分组字段】

​ 【having 分组后的筛选】

​ 【order by 排序字段】

自连接

​ 语法:

​ select 查询列表

​ from 表 别名 ,表 别名

​ where 等值的连接条件

​ 【and 筛选条件】

​ 【group by 分组字段】

​ 【having 分组后的筛选】

​ 【order by 排序字段】

SQL99语法
内连接

语法

​ select 查询列表

​ from 表1 别名

​ 【inner】 join 表2 别名 on 连接条件

​ where 筛选条件

​ group by 分组列表

​ having 分组后的筛选

​ order by 排序列表

​ limit 子句:

特点:

​ 1>表的顺序可以调换

​ 2>内连接的结果=多表的交集

​ 3>n表连接至少需要n-1个连接条件

分类:

​ 等值连接 非等值连接 自连接

外连接

语法:

​ select 查询列表

​ from 表1 别名

​ left|right|full|【inner】 join 表二 别名 on 连接条件

​ where 筛选条件

​ group by 分组列表

​ having 分组后的筛选

​ order by 排序列表

​ limit 子句:

特点:

​ 1>查询的结果=主表中所有的行,如果从表和它匹配的将显示行,如果从表没有匹配的则显示null

​ 2>left join 左边的就是主表,right join 右边的就是主表

​ full join 两边都是主表

​ 3>一般用于查询除了交集部分的剩余的不匹配的行

交叉连接

语法:

​ select 查询列表

​ from 表1 别名

​ cross join 表2,别名;

特点:

​ 类似于笛卡尔乘积

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值