MySQL基础笔记(4)DQL数据查询语句

DQL用于查找数据库中存放的记录~


目录

一.语法

二.基础查询

1.查询多个字段

2.设置别名

3.去除重复记录

三.条件查询

1.基础语法

2.常见条件

四.分组查询

1.聚合函数

2.语法

五.排序查询

六.分页查询

附注:DQL执行顺序

1.编写顺序

2.执行顺序​​​​​​​


一.语法

  • select:字段列表
  • from:表名列表
  • where:条件列表
  • group by:分组字段列表
  • having:分组后条件列表
  • order by:排序字段列表
  • limit:分页参数

二.基础查询

1.查询多个字段

sql 复制代码
select 字段1,字段2,...from 表名;

当要查询全部的字段时,可以采用如下的操作:

sql 复制代码
select * from 表名;

不过实际开发中不建议这样写,一方面效率不高,另一方面并不直观~

2.设置别名

意义在于赋予字段更加直接现实的意义~

sql 复制代码
select 字段名 as 别名 from 表名;

3.去除重复记录

sql 复制代码
select distinct 字段列表 from 表名;

三.条件查询

1.基础语法

sql 复制代码
select 字段名 from 表名 where 条件列表;

注意:条件可以有多个~

2.常见条件

in相当于一个并列多项的"or":(满足其一即可)

sql 复制代码
select * from students where age in(21,23);

如上,查询年龄为21岁或者23岁的存在~
like用于模糊匹配的场景:_表示一个任意字符,而%表示多个任意字符

  • 如:任意两个字符组成的名字,即"--"
  • 最后一位是h的字符串:"%h"------前面是什么、多少个都无所谓~
  • null值时一定要注意是is null的运算公式
  • 不等号**<>**是一个比较区别于主流语言的写法~
  • between后面跟着最小值,and后面跟着最大值,顺序很重要(类比积分上下限,虽然没什么理论上的相似性)

四.分组查询

1.聚合函数

将一列数据作为一个整体,进行纵向的计算~(作用于某一列

sql 复制代码
select 聚合函数(字段列表) from 表名;
  • (字段列表同样可以写*****,不过不推荐~)
  • null值不参与所有聚合函数的计算~

2.语法

所谓的分组,即将原有的数据先分为若干组,然后再执行一些有关查询的操作~

sql 复制代码
select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后的条件];
  • where的条件作用于分组前就已经过滤掉一部分,而having的条件则是分好组后再进行一次!
  • where 后面可以使用聚合函数,而having后面则不行
  • 执行顺序:where>聚合函数>having
  • 分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段毫无意义~

五.排序查询

即将查询到的数据按照某种方式排序出来~

sql 复制代码
select 字段列表 from 表名 order by 字段1 排序方式,字段2 排序方式;
  • 所谓的排序方式只有两种,asc表示升序,而desc表示降序
  • 多字段排序的意义是,当前一个字段的值相同时,才根据第二个字段排序~

六.分页查询

sql 复制代码
select 字段列表 from 表名 limit 起始索引,查询记录数;
  • 起始索引是从0开始,起始索引=(查询页码-1)*每页显示的记录数量
  • 分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是limit
  • 如果查询的是第一页的数据------即索引从0开始,可以直接简写为limit 10~

附注:DQL执行顺序

1.编写顺序

select------from------where------group by------having------order by------limit

2.执行顺序

from------where------group by------having------select------order by------limit

相关推荐
map_vis_3d几秒前
JSAPIThree 加载单体三维模型学习笔记:SimpleModel 简易加载方式
笔记·学习·3d
STLearner11 分钟前
VLDB 2025 | 时间序列(Time Series)论文总结(预测,异常检测,压缩,自动化等)
数据库·人工智能·深度学习·神经网络·机器学习·数据挖掘·时序数据库
18 分钟前
TIDB——TIKV——raft
数据库·分布式·tidb
神仙别闹33 分钟前
基于QT(C++)+MySQL实现(窗体)学生信息管理系统
c++·qt·mysql
不会c嘎嘎36 分钟前
MySQL 指南:全面掌握用户管理与权限控制
数据库·mysql
ShadowSmartMicros37 分钟前
java调用milvus数据库
java·数据库·milvus
Bug.ink37 分钟前
BUUCTF——WEB(2)
数据库·sql·网络安全·buuctf
李慕婉学姐1 小时前
【开题答辩过程】以《基于PHP的动漫社区的设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
开发语言·mysql·php
网硕互联的小客服1 小时前
Centos系统如何更改root账户用户名?需要注意什么?
linux·运维·服务器·数据库·安全
Lv11770081 小时前
Visual Studio 中的密封类和静态类
ide·笔记·c#·visual studio