MySQL
一、 查询
select * from 表名
#消除重复的行,一行判断
select distinct 列名 from 表名
二、 条件查询
select * from 表名 where 条件
对原始集合,where逐行去匹配,满足条件放到新的集合了!
比较运算符 |
|||
等于 |
= |
不等于 |
!= |
大于 |
> |
小于 |
< |
大于等于 |
>= |
小于等于 |
<= |
逻辑运算符 |
|
and |
并且 |
or |
或 |
not |
非 |
三、 模糊查询
select * from 表名 like 条件
% 表示任意多个字符
_ 表示一个字符
select * from student like ‘黄%’
>>黄蓉
>>黄秋生
select * from student like ‘黄_’
>>黄蓉
四、 范围查询
in 表示在一个非连续的范文内
#查询编号1或3或8的学号
select * from student where id in(1,3,8)
between .. and .. 表示在一个连续的范围内
#查询编号,3到8的学号的男生
select * from student where id between 3 and 8 and gender =1
#优先级匹配between 然后匹配and
空判断
判空 is null
判非空 is not null
优先级
小括号,not,比较运算符,逻辑运算符
and 比 or 先运算,如果同时出现希望先运算,需要结合()
五、 聚合函数
聚合:基于原始集合,然后统计结果!
count(*) 统计总行数
max(列) 最大
min(列) 最小
sum(列) 表示求此列的和
avg(列) 表示求此列的平均值
先原始集 --> where --> 聚合函数
六、 分组
按照字段分组,表示此字段相同的数据会被放到一个组中
分组后,只能查询出相同的数据列,对于有差异的数据列无法出现在结果集中
可以对分组后的数据进行统计.
select 列1,列2,聚合 from 表名 group by 列1,列2 having 列1,聚合
where 和 having 区别
where 对原始结果集筛选
having 对分组结果集筛选
七、 排序
select * from 表名 order by 列1
默认 asc
asc 从小到大,升序
desc 从大到小排序,降序
八、 分页
一次加载太大的数据,所以需要分页!
select * from 表名 limit start,count
从start开始,读取count 条数据,start索引从0开始.
已知:每个显示m条数据,当前是n页
limit start m
m = 5
0,5 === 0,1,2,3,4
1,5 === 5,6,7,8,9
公式
(n-1)m 从1开始
limit (n-1)*m,m
总结:
select distinct * from 表名 where .. group by .. having .. order by .. limit ..
顺序:
form 表名 --> where --> group by --> distinct --> having --> order by --> limit