mysql学习笔记——对数据记录查询操作的补充(单表内查询)
select ... from ... where ... group by ... having ... order by ... limit...; (顺序固定)
1、select 指定所要检索的字段(列)
select 后加distinct关键字,则可去除重复的记录,其中,重复的记录是指 所有字段值都相同的记录
2、from 指定查询数据表,可以是表名,也可以是别名
通常是在一个表达式不易读取时,对其取别名: 表达式 as 别名;
3、where 前置过滤条件 --- 将表数据过滤掉一部分
条件语句中可能出现的运算符:
关系运算符:
等于= 大于> 小于< 大于等于>= 小于等于<= 不等于<>
字符串匹配运算符:
like 字句
like后跟字符串和通配符,其中通配符 _(下划线)只能匹配一个字符,通配符%(百分号)可以匹配多个任意字符
判断某个值是否为null:
isnull(值)
between A and B:取值在[A,B]之间
in/not in (集合元素):取值在/不在集合元素之间
逻辑运算符:
与:and && 存在null,则结果为null
或:or || null与null或0相或,仍未null,与1相或为1
非:not !
异或:xor 存在null,则结果为null
4、group by 对where 过滤后数据进行分组
聚合函数 sum()求和 avg()求平均 max()求最大 min()求最小 count() 统计非Null字段的记录数
5、having 对分组后结果添加条件过滤
group by之后,若需加条件语句,只能用having字句,不能用where字句,
6、order by 对检索结果排序
默认为升序asc,若需要降序,则设置为desc
允许多字段排序:先按照第一个字段排序,如果不能区分,则使用第二个字段排序,依次类推
7、limit 限制获得的记录数量
语法:limit(limit offset, record_count);
其中,limit offset 指所选的第一个记录与表中第一条记录之间的偏移量,如所要选择的第一条记录是原表中的第二条记录,则偏移量为1,依次类推
record_count指所要选择的总的记录数,如果该数大于表中余下的记录数,则将余下的记录全部显示
limit offset可以省略,则默认为0