MySQL高级查询
1.常见内置函数
count(字段名):统计行数 sum(字段名):求和 max(字段名):求最大值 min(字段名):求最小值 avg(字段名):求平均值 abs(字段名):取绝对值 函数可如下使用:select count(id) from users;
2.高级查询语法:
Select [distinct(重复结果只显示一次,去重)] *|列名1,列名2,…
from 表名
[where 条件表达式]
[group by 列名[having 条件表达式]]
[order by 列名 [asc|desc]]
[特殊函数,limit 记录条数]
order by:排序,默认是升序asc
例如:select * from users order by desc;
group by:分组,一般都会结合内置函数使用
例如:select sex,COUNT(*) as '男女人数' from users group by sex;
select sex,COUNT(sex) as '男女人数' from users group by sex having COUNT(sex)>5;
limit:筛选结果
使用:
(1)limit 数据条数:没有指明开始下标数,默认值为0。
例如:select * from users limit 3;:表示获取当前表中前三条数据。
(2)limit 开始下标数 数据条数
例如:select * from users limit 3,3;:表示从第4条数据开始获取三条数据。
(3)limit 数据条数 offset 开始下标数
例如:select * from users limit 3 offset 1;:表示从第2条数据开始获取三条数据。
as:给表或者列取别名
例如:select name as '姓名' from users as u where u.age>17;
if(表达式,值1,值2):如果表达式为true,就返回值1,表达式为false,就返回值2。
例如:select name,if(sex='男',1,0) as sex from users;
效果图如下:
curdate():获取当前日期
例如:select curdate();
curtime():获取当前时间
sysdate():获取当前日期时间
length(字符串):获取字符串长度