文章目录
1,函数概念
概念:类似于java方法,将一组逻辑语句封装在方法体中,对外暴露方法名。
好处:1:隐藏了实现细节 2:提高了代码重用性
调用: select 函数名(实参列表) from 表
特点:1:叫什么(函数名)
2:干什么(函数功能)
分类:
- 单行函数
分类:字符函数,数学函数,日期函数,其他函数,流程控制函数
- 分组函数
功能:做统计使用,又称为统计函数,聚合函数,组函数
分类:sum 求和, avg 平均值,max 最大值 , min 最小值,count 计算个数,
1.1单行函数
1.1.1 字符函数
length
含义 :获取参数值的字节个数
语法: SELECT LENGTH(实参列表);
演示:查询sex字符的字节个数
concat
含义:拼接字符串
演示:把12和122拼接起来,并起别名为connection。
演示语法:SELECT CONCAT(12,222) as connection;
结果:
upper, lower
含义:把参数列表里的字符转化为大写或小写
语法:SELECT UPPER(实参列表);
演示:把ali转化成大写
演示语法:SELECT UPPER(“ali”);
结果:
substr,substring
含义:截取指定的字符串
语法:SELECT SUBSTR(“字符” FROM 初始位置 FOR 终止位置);
演示:把adddadada字符截取1到3位置的子字符串
演示语法:SELECT SUBSTR(“adddadada” FROM 1 FOR 3);
结果:
instr
含义:返回子串第一次出现的索引,如果找不到返回0
语法:SELECT INSTR(str,substr);
演示:在alibabai字符串中返回i出现的第一次索引
演示语法:SELECT INSTR(“alibabai”,“i”);
结果:
trim
含义:去除字符串中的空格。
语法:SELECT TRIM(str);
演示:去掉alibaba的空格
演示语法:SELECT TRIM(" alibaba");
结果:
lpad
含义:用指定的字符串实现左填充指定长度
语法:SELECT LPAD(str,len,padstr);
演示:往adada的左边填充数字2,让总长度为10。
演示语法:SELECT LPAD(“adada”,10,2);
结果:
rpad
含义:用指定的字符串实现右填充指定长度
语法:SELECT RPAD(str,len,padstr);
演示:往adada的右边填充数字2,让总长度为10。
结果:
replace
含义:把指定的字符串替换成新子字符串
语法:SELECT REPLACE(str,from_str,to_str);
演示:在abcabcabcabcabc中把abc替换成aaa。
结果:
1.1.2 数学函数
round
含义:四舍五入
语法:X:数值,D:精确到小数后的位数
SELECT ROUND(X,D);
SELECT ROUND(X);
演示:把-1.55四舍五入,-1.556四舍五入并精确到小数后两位
结果:
ceil
含义:向上取整,返回>=该参数的最小整数
语法:SELECT CEIL(X);
演示:把-1.02向上取整
结果:
floor
含义:向下取整,返回<=该参数的最大整数
语法:SELECT FLOOR(X);
演示:把-1.02向下取整
结果:
truncate
含义:截取指定小数点后的位数
语法:SELECT TRUNCATE(X,D);
演示:截取1.998的小数点后两位
结果:
mod
含义:取余
语法:SELECT MOD(N,M); N:除数,M被除数
取余结果是a-a/b*b
演示:-10/3
结果:
1.1.3 日期函数
now
含义:返回当前系统日期加时间
语法:SELECT NOW();
演示:
curdate
含义:返回当前日期,不包含时间。
语法:SELECT CURDATE();
演示:
curtime
含义:返回当前时间,不包含日期。
语法:SELECT CURTIME();
演示:
str_to_date
含义:将字符通过指定的格式转化为日期
语法:SELECT STR_TO_DATE(str,format);
演示:把1999-10-1字符串转化成指定格式
结果:
date_format
含义:将日期转化成字符
语法:SELECT DATE_FORMAT(date,format);
演示:
1.1.4 其他函数
version
含义: 查看DBMS的版本
语法:select version();
演示:
database
含义:查看当前所在数据库
语法:select database();
演示:
user
含义:查看数据库的使用者
语法:select user();
2.1分组函数
分组函数特点:
1,sum,avg用于处理数值型,而max ,min,count可以处理任何类型
2,以上分组忽略null值
3,可以和distinct搭配实现去重的运算
4,和分组函数查询的字段是有限制的
求和函数
语法:select sum(字段)from 表;
平均函数
语法:select avg(字段)from 表;
最小函数
语法:select min(字段)from 表;
最大函数
语法:select max(字段)from 表;
统计函数
语法:select account() from 表;
效率:count()的效率最高 (在MYISAM引擎下)
演示:在t_dictionary表中分别求id的平均,总和,最小,最大值
t_dictionary表
结果:
演示:在t_dictionary表中分别求行数
演示语法:SELECT COUNT(*) FROM t_dictionary;
结果: