DQL
查询 表里面 的 全部 记录
单表查询
select * from stu;
select
字段列表
from
表名列表
where
条件列表
group by
分组字段
having
分组之后的条件
order by
排序
limit
分页限定
一。基础查询
(1)查询多个字段
select 字段1,字段2,…from 表名
(2)去除重复
select distinct(关键字) //只有 结果集 完全一样 才可以 去重
字段列表
from
表名字段
(3)计算列
一般 可以使用 四则运算计算一些列的值
select
name,math ,english , —列名
math + ifnull(表达式1,表达式2) 计算列 //表达式1:哪个 字符端 需要判断是否为null 表达式2:如果表达式 1为 null用表达式2 替换数据
from 表名
(4)起别名
select
name,math ,english , —列名
math + ifnull(表达式1,表达式2) ---- 计算列 ------
as 别名
from 表名
二。条件查询
where 子句后跟条件
运算符:
BETWEEN …AND
IN(集合)
LIKE
IS NULL
and 或 &&
or或||
not或!
null 不能使用 = 或者 != 判断 只能使用 IS null 或者 ISNOT null判断
模糊查询
LIKE
占位符
_单个任意字符
%多个任意字符
例: select * from student where name like “马%”;
三。排序查询
语法:order by 子句
order by 排序 字段1 排序方式1,排序字段2 排序方式2; //第二牌排序方式 只会 在第一排序 条件值相同时 才会 判断第二条件
排序方式 : 升序ASC:升序 (默认 的) DESC:降序
四:聚合函数:将一列数据 作为 一个整体进行 纵向计算
count :计算个数
例:SELECT COUNT(stuName) FROM studentSys;
聚合函数的计算 会排除null值;
一般选择非空列 :主键
max :计算最大值
例:SELECT MAX(stuAge) FROM studentSys;
min:计算最小值
例:SELECT MIN(stuAge) FROM studentSys;
sum:求和
例:SELECT SUM(stuAge) FROM studentSys;
avg:计算平均值
例:SELECT AVG(stuAge) FROM studentSys;
五。分组查询
语法:group by 分组字段;
例: SELECT 想要查询的字段 FROM studentSys GROUP BY stuHome;
添加条件
where 添加条件
例: SELECT 想要查询的字段 FROM studentSys WHERE 条件 GROUP BY stuHome;
限定结果集条件
having
例:SELECT 想要查询的字段 FROM studentSys WHERE 条件 GROUP BY stuHome HAVING 结果集条件;
!!!!!!!!!!!!!!!where 和 having的区别
(1)作用 位置 不一样 : where 在 分组之前 限定 ,如果 不满足条件则不参与分组
、 having 在分组之后限定 如果不满足条件则不会被查询出来
(2)where之后不可以跟聚合函数,having可以进行对聚合函数 的判断
六。分页查询
语法: limit 开始的索引,每页查询的条数
例:SELECT * FROM studentSys LIMIT 0, 3;
公式 :开始的索引 = (当前的页码)*每页显示的条数
分页操作中limit 是 mysql"“方言”"