单表多表操作 联表查询
目录
1|0一、单表操作
1|11. 分组——> group by
-
分组指的是:将所有表记录按照某个相同字段进行归类
-
用法:
select 聚合函数,选取的字段 from 表名 group by 选择分组的字段 having 条件
- 当
group by
后的字段为一个表的主键时,那么在select
后面就可以查询该主键所在表的所有字段。否则select
后查的字段只能是group by
后的那个字段。 group by
后可以跟多个字段,表示相同这些字段分到一组。如[1,2] [2,3] [,2,3] [3,4] , [1,2] 分为一组,[2,3] 分为一组 ,[3,4] 分为一组,共三组。
- 当
-
聚合函数:
count/sum/max/min/avg
having
:表示对分组之后的聚合函数处理的结果,进行再一次的筛选。
-
注意:
group by
一般要和聚合函数一起使用。- 注意:聚合函数也可单独使用,放在select 之后。但此时select后面不能再跟其他字段。
-
where 条件语句和
group by
分组语句的先后顺序:
where > group by > having(*********)
-
实例:
1|22. 排序——> order by
-
order by
对查询的结果进行排序 -
用法:
order by 字段名 asc/desc
,其中asc默认的表示升序排序,desc表示降序排序- 如果对多个字段进行排序,如
order by age desc , id asc
,则先对age进行降序排序,如果排完序记录中有相同的age时,再把有相同的这些行按id升序排序。
1|33. 分页——> limit
- 用法:
limit 参数1 , 参数2
。参数1表示行索引,从该行开始,表记录第第一行数据的索引是0,往下递增,参数2表示取多少行。
1|44. 总结(很重要)
-
以上高级用法的使用顺序是:
-
select * from 表名 where 条件 group by 条件 having 条件 order by 条件 limit 条件;
-
where > group by > having > order by > limit
-
关键字执行的优先级
- from:找到表
- where:拿着where指定的约束条件,去文件/表中取出一条条记录
- group by:将取出的一条条记录进行分组group by,如果没有group by,则整体作为一组
- select:执行select
- distinct:去重
- having:将分组的结果进行having过滤
- order by:将结果按条件排序:order by
- limit:限制结果的显示条数
2|0二、多表操作
2|11. 外键
-
使用外键的原因:
- 减少占用的空间
- 只需要修改一次原表中的数据 ,其余有对应外键的表中的数据就会相应的修改。
-
使用方法:
constraint 外键名 foreign key (被约束的字段) references 约束的表(约束的字段)
2|22. 一对多(很常见类型)
-
实例:
2|33. 多对多(常见类型)
-
实例:
2|44. 一对一(不常见类型)
-
实例:
3|0三、多表联查
3|11. 左连接——>left join 表名 on..
-
表示已left左边的表为主,会把左边的表中的信息全部显示,被join的表按照左边的表的数据一一对应显示。
-
实例
3|22. 右连接——>right join 表名 on..
-
表示已right右边的表为主,会把右边的表中的信息全部显示,被join的表按照右边的表的数据一一对应显示。
-
实例:
3|33. 内连接——>inner join 表名 on..
-
把两个表中共同的部分取出来连接。
-
实例:
3|44. 交叉连接
- 语法:
from 表1,表2
__EOF__

本文作者:BigSun丶
本文链接:https://www.cnblogs.com/Mcoming/p/11766291.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/Mcoming/p/11766291.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!