6.MYSQL基础—分组查询,连接查询,子查询

分组查询(重要)

分组查询的语句:                groupby和having   

Having必须搭配group by 使用   不能单独使用,不能代替where使用。Where和having优先选择where;    

需要对数据进行分组,再进行操作;

语法:

Select………From………where………Group by………having………order by……

语句执行顺序:

第一步:from

第二步:where

第三步:group by

第三步:select

第四步:order by

当语句中有group by 字段;select后面的字段只能跟参与分组的字段名或分组函数。

Where和having优先选择where;where完成不了在选择having;

Where 先筛选再分组;

Having : 先分组再筛选;

连接查询(重点)

  1. 去除重复记录:distinct

Distinct 只能出现在所有字段的最前方;表示所有字段联合起来去除重复记录;

连接查询:也可以叫做跨表查询,需要关联多个表进行查询;

从一张表中查询数据叫单表查询;

连接查询分类:

  1. 根据语法年代分类:SQL92 和SQL99
  2. 根据表连接的方式:内连接,外连接,全连接。(外连接查询条数>=内连接查询条数)

内连接(inner):所有表平等

等值连接:条件是一个某个值相等的关系;

内连接和外连接可以混合使用

非等值连接:条件不是一个等量关系;

自连接:一张表看成两张表

                                   外连接(outer):表产生了主次关系

                                                  左外连接(左连接):left

                                                  右外连接(右链接):right,表示将join关键字右边的这张表看成主表,主要是为了将这张表的数据全部查询显示出来,捎带查询左边的表。

内连接:等值连接:

连接两个表关键字:“ inner join”,inner可以省略,即:“join“

A表    join     B表    on    连接条件;  SQL99优点:连接时独立的;

三张表,四张表怎么连接?

语法:

Select…from…a表…join…b表…on(a和b连接条件)…join…c表…on(a和c的连接条件)…join…d表…on(a和d的连接条件)

子查询

什么是子查询:select语句中嵌套select语句,被嵌套的select语句称为子查询。

子查询可以出现再那里呢?

Select

          (select):select后面的子查询,只能返回1条结果,多余1条,就报错;

From

          (select):(from后的子查询,可以将子查询的结果当作临时的一张表。)

Where

          (select)

Where子句中出现子查询:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值