MYSQL查询小结(3)

MYSQL查询小结(三)

一.分组查询
1,语法:

select 表查询列表
from 表
【where 筛选条件】
group by 分组的字段
【order by 排序的字段】;

2,特点
(1)和分组函数一同查询的字段必须是group by后出现的字段;
(2)筛选分为两类:分组前筛选和分组后筛选
分组前筛选:针对原始表,位置在group by前,连接的关键字为where;
分组后筛选:针对的表为group by后的结果表,位置在group by后面,连接的关键字为having。
(3)分组可以按单个字段也可以按多个字段;
(4)可以搭配着排序使用。

二.连接查询
1.含义:又称多表查询,当查询的字段来自于多个表时,就会用到连接查询
2.语法

select 字段1,字段2
from1,表2,...;

3.分类
(1)按年代分类:
sql92标准:仅仅支持内连接
sql99标准【推荐】:支持内连接+外连接(左外右外)+交叉连接
(2)按功能分类:
内连接:等值连接、非等值连接、自连接;
外连接:左外连接、右外连接、全外连接;
交叉连接。

4.SQL92语法

(1)等值连接
语法:

	select 查询列表
	from1 别名,2 别名
	where1.key=2.keyand 筛选条件】
	【group by 分组字段】
	【having 分组后的筛选】
	【order by 排序字段】

特点:
① 一般为表起别名
②多表的顺序可以调换
③n表连接至少需要n-1个连接条件
④等值连接的结果是多表的交集部分

(2)非等值连接
语法:

	select 查询列表
	from1 别名,2 别名
	where 非等值的连接条件
	【and 筛选条件】
	【group by 分组字段】
	【having 分组后的筛选】
	【order by 排序字段】

(3)自连接
语法:

	select 查询列表
	from 表 别名1,表 别名2
	where 等值的连接条件
	【and 筛选条件】
	【group by 分组字段】
	【having 分组后的筛选】
	【order by 排序字段】

5.SQL99语法
(1)内连接
语法:

select 查询列表
from1 别名
【innerjoin2 别名 on 连接条件
where 筛选条件
group by 分组列表
having 分组后的筛选
order by 排序列表
limit 子句;

特点:
①表的顺序可以调换
②内连接的结果=多表的交集
③n表连接至少需要n-1个连接条件

分类:等值连接、非等值连接、自连接

(2)外连接
语法:

select 查询列表
from1 别名
left|right|fullouterjoin2 别名 on 连接条件
where 筛选条件
group by 分组列表
having 分组后的筛选
order by 排序列表
limit 子句;

特点:
①查询的结果=主表中所有的行,如果从表和它匹配的将显示匹配行,如果从表没有匹配的则显示null
②left join 左边的就是主表,right join 右边的就是主表
full join 两边都是主表
③一般用于查询除了交集部分的剩余的不匹配的行

(3)交叉连接
语法:

select 查询列表
from1 别名
cross join2 别名;

特点:类似以笛卡尔乘积。

还可以查看:
MYSQL查询小结(1)
MYSQL查询小结(2)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

谁偷了我的月亮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值