Mysql学习(四)——SQL通用语法之DQL

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


DQL

DQL数据查询语言,用来查询数据库中表的记录。

DQL-语法

sql 复制代码
select 字段列表
from 表名列表
where 条件列表
group by 分组字段列表
having 分组后条件列表
order by 排序字段列表
limit 分页列表

基本查询

sql 复制代码
-- 查询多个字段
select 字段1,字段2,字段3... from 表名;
select * from 表名;
-- 设置别名
select 字段1 [as 别名1],字段2 [as 字段2] ... from 表名;
-- 去除重复记录
select distinct 字段列表 from 表名;

条件查询

sql 复制代码
select 字段列表 from 表名 where 条件列表;
select * from players where players.player_id between 1 and 5;
select * from players where players.username like '__';
select * from players where players.username like '%涛';

条件有:

聚合函数

聚合函数:将一列数据作为一个整体,进行纵向计算。

常见的聚合函数:

sql 复制代码
select 聚合函数(字段列表) from 表名;
select count(players.player_id) from players;
select avg(players.player_id) from players;
select min(players.player_id) from players;
select sum(players.player_id) from players;
/*
null值不参与所有聚合函数运算。
*/

分组查询

sql 复制代码
select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件];
select heroes.hero_class ,count(hero_class) from heroes group by heroes.hero_class;
select heroes.hero_class ,count(hero_class) from heroes group by heroes.hero_class having count(*)>=4;
/*
where与having区别:
- 执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。
- 判断条件不同:where不能对聚合函数进行判断,而having可以。
*/
/*
注意:
- 执行顺序:where > 聚合函数 > having。
- 分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义。
*/

排序查询

sql 复制代码
select 字段列表 from 表名 order by 字段1 排序方式1,字段2 排序方式2;
select * from heroes order by base_health asc;
select * from heroes order by base_health desc;
/*
排序方式:
- asc:升序(默认值)
- desc:降序
注意:如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序。
*/

分页查询

sql 复制代码
select 字段列表 from 表名 limit 起始索引,查询记录数;
select * from players limit 0,10;
select * from players limit 10,10;
/*
注意:
- 起始索引从0开始,起始索引 = (查询页码 - 1)*每页记录数。
- 分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是limit。
- 如果查询的是第一页数据。起始索引可以省略,直接简写为limit 10。
*/
相关推荐
这孩子叫逆8 分钟前
6. 什么是MySQL的事务?如何在Java中使用Connection接口管理事务?
数据库·mysql
Karoku06611 分钟前
【网站架构部署与优化】web服务与http协议
linux·运维·服务器·数据库·http·架构
码农郁郁久居人下38 分钟前
Redis的配置与优化
数据库·redis·缓存
架构文摘JGWZ41 分钟前
Java 23 的12 个新特性!!
java·开发语言·学习
小齿轮lsl1 小时前
PFC理论基础与Matlab仿真模型学习笔记(1)--PFC电路概述
笔记·学习·matlab
Aic山鱼1 小时前
【如何高效学习数据结构:构建编程的坚实基石】
数据结构·学习·算法
qq11561487071 小时前
Java学习第八天
学习
天玑y2 小时前
算法设计与分析(背包问题
c++·经验分享·笔记·学习·算法·leetcode·蓝桥杯
MuseLss2 小时前
Mycat搭建分库分表
数据库·mycat
2301_789985942 小时前
Java语言程序设计基础篇_编程练习题*18.29(某个目录下的文件数目)
java·开发语言·学习