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 直接指定分隔符,拼接字符串
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐