student表中内容如下:
/*
limit分页
格式1:limit 数字;
数字表示从头开始显示多少行
格式2:limit 数字1,数字2;
数字1表示开始位置
数字2表示显示行数
*/
select * from student limit 5;
select * from student limit 2,3;
/*
distinct 去重
格式:distinct 字段1,字段2...字段n
例如:select distinct name,age from student; 以name和age进行去重
注意:distinct以之后所有字段进行去重
去重时,distinct必须写在字段最前面
*/
select distinct sex from student;
/*
内置函数
聚合函数
count():统计某个字段有多少行数据(累加)
例如:select count(name) from student;获取student中name字段有多少数据
例如:select count(*) from student; 获取student中有多少行数据
例如:select count(1) from student; 获取student中有多少行数据
可以求多字段的行数
例如:select count(name and age) from student;
注意:求字段有多少行数据时,如果有的数据为null,那么为null的数据不参与计算
求多字段按最大的结果进行显示
sum():求和
例如:select sum(age) from student;
注意:字段类型为非int时,结果为0
avg():求平均数
min/max:最小值/最大值
注意:字段属性可以为varchar,按照自然排序
拼接
concat
格式:concat(str1,str2,...);
例如:select concat(name,',',age) from student;
concat_ws
格式:concat_ws(separator,str1,str2,...);
例如:select concat_ws(',',name,age) from student;
区别:concat需要手动进行分割
concat_ws直接指定分隔符
*/
select count(name) from student; #列出name字段中有多少条(null不算)数据
select count(*) from student; #如果没有指定count中具体的列,那就是列出全部数据的行数
select sum(age) from student; #sum函数求(int)总和,如果是其他类型会转成int,varchar转成为0
select avg(age) from student; #avg函数求平均数
select max(age),min(age) from student; #max(列名)、min(列名)表示这一列最大值、最小值
select max(name),min(name) from student; #如果max、min里面是varchar,则按照自然排序
select CONCAT(name,'_',age,'_',sex) as 姓名_年龄_性别 from student; #concat 需手动进行分割,拼接字符串
select CONCAT_WS('_',name,age,sex) as 姓名_年龄_性别 from student; #concat_ws 直接指定分隔符,拼接字符串