mysql中的数学、日期、字符串函数总结

**

因为本人之前一直写的是电子笔记,对自己学会的东西作一个总结,所以基本都是文字,本来想全发成博客的形式,发现全发成博客比较花费时间,而且一直发博客质量不是很好,而且通过发博客学到的东西也会变少,所以准备先把笔记发出来,后续再将它们改成博客的形式,争取2天至少改一篇博客,觉得我总结的还行的可以先关注我,后续会发成博客形式,内容也会更加完善

**

函数:
有时在进行查询数据时,我们需要统计一些数据,例如总查询到数据是多少,或者是这些数据的平均值是多少,就像excel上的数学函数一样,在mysql数据库中也是拥有的,这样可以更方便的让我们对表中的数据进行分析
mysql上的常用数学函数有:
1、count(表达式),它表示将查询到的数据的总数加起来,返回给用户,里面的表达式可以是”“号,代表查询所有的字段,这样的目的是为了,只要一个字段有数据就进行统计,因为count函数是不会统计值为NULL的数据的,它里面的表达式一般不是“”就是字段名
2、sum(表达式),它是一个求和函数,一般括号里面的表达式都是字段名,表示将此字段名上的数据全部加起来,如果这个字段名上的数据不是数字,那么这个函数将是无效的
3、avg(表达式),它是一个取平均值的函数的,括号里面的表达式一般是字段名,表示将此字段名上的数据进行取平均值计算,如果这个字段名上的数据不是数字,那么这个函数将是无效的
4、max(表达式),它是一个取最大值的函数,括号括号里面的表达式一般是字段名,表示将此字段名上最大的数据返回给用户,如果这个字段名上的数据不是数字,那么这个函数将是无效的
5、min(表达式),它是一个取最大值的函数,括号括号里面的表达式一般是字段名,表示将此字段名上最小的数据返回给用户,如果这个字段名上的数据不是数字,那么这个函数将是无效的
在实际使用这些函数时,一般都是配合select函数来使用的,例如我有这样一张表:
mysql中的数学、日期、字符串函数总结
现在我要查询这张数据表,age字段的平均值是多少,可以这样写select avg(age) from stud;
mysql中的数学、日期、字符串函数总结
6、abs(number):它是一个绝对值函数,也就是将number这个数取绝对值,number可以是我们输入的数字,或者是一个和数字相关的字段,例如我想给”-60“这个数字取绝对值,可以这样写select abs(-60);
mysql中的数学、日期、字符串函数总结
7、bin(number):它是一个二进制转换函数,可以把10进制的数(其它进制也可以),转换为二进制,number可以是我们输入的数字,或者是一个和数字相关的字段,例如我想把13这个数,转换为二进制显示,可以这样写select bin(13);
mysql中的数学、日期、字符串函数总结
8、hex(number):它是一个16进制转换函数,可以把10进制的数(其它进制也可以),转换为进制,number可以是我们输入的数字,或者是一个和数字相关的字段,例如我想把13这个数,转换为二进制显示,可以这样写select hex(13);
9、ceiling(number):它是一个向上取整的函数,也就是如果一个数有小数,那么就取整,取整的方法是向上进位,number可以是我们输入的数字,或者是一个和数字相关的字段,例如我有一个数据是123.11,可以这样写select ceiling(123.11);它就会变成124
mysql中的数学、日期、字符串函数总结
10、floor(number):它是一个向下取整的函数,也就是如果一个数有小数,那么就取整,取整的方法是舍弃小数部分,number可以是我们输入的数字,或者是一个和数字相关的字段,例如我有一个数据是123.11,可以这样写select ceiling(123.11);它就会变成123
11、format(number1, number2):这个函数的功能是格式化数字,number1代表你要格式化的数字,number2代表要保留的小数位数, number可以是我们输入的数字,或者是一个和数字相关的字段,例如我有一个数是123.123464,现在我只想保留2位小数,可以这样写,select format(123.123464, 2);
mysql中的数学、日期、字符串函数总结
12、rand():这个函数的作用是取随机值,返回一个随机的浮点数据,范围是[0.0,1.0),number可以是我们输入的数字,或者是一个和数字相关的字段,例如我想返回一个0 ~ 10之间的数,可以这样写select 10 * rand();
mysql中的数学、日期、字符串函数总结
13、mod(number1, number2):这个函数的功能是对两个数,进行取模运算,取模的方法是用number1去模number2,number可以是我们输入的数字,或者是一个和数字相关的字段,例如我想要用7去模5,可以这样写select mod(7, 5);
mysql中的数学、日期、字符串函数总结
日期函数:
1、current_date():这个函数用来返回当前日期,返回的形式是“1999-1-1”,使用时要配合select来查询例如select current_date();
2、current_time():这个函数用来返回当前的时间,返回的形式是“12:30:46”精确到秒,使用时要配合select来查询例如select current_time();
3、current_timestamp():这个函数用来返回当前时间戳,返回形式是“1999-1-1 12:30:46”,使用时要配合select来查询例如select current_timestamp();
4、date(date):这个函数用来返回日期类型数据的日期部分,其中date是一个是期类型的数据,例如我有如下一张date表:
mysql中的数学、日期、字符串函数总结
现在我只想查询这张表的日期部分,不需要时间,就可以使用这个函数,select year, date(date) form date
mysql中的数学、日期、字符串函数总结
5、date_add(date, intervar 相隔时间 day/year/minute/second):这个函数是用来查询在原有日期上相隔数天后的日期,date是一个日期类型的数据,interval是一个关键词 后面的day/year之类的是单位,例如刚才我的那张表,有一个日期是2012-09-04 12:30:46,现在我想查询这个日期往后10天的日期,可以这样写select year, date_add(date, interval 10 day) from date;

mysql中的数学、日期、字符串函数总结
6、date_sub(date, intervar 相隔时间 day/year/minute/second):这个函数和data_add是相反的用来查询在原有日期上相隔数天前的日期,date是一个日期类型的数据,interval是一个关键词 后面的day/year之类的是单位,例如刚才我的那张表,有一个日期是2012-09-04 12:30:46,现在我想查询这个日期往前10天的日期,可以这样写select year, date_add(date, interval 10 day) from date;
mysql中的数学、日期、字符串函数总结
7、datediff(date1, date2):这个函数是用来返回两个日期相差的天数的(注意返回的是天数),这两个日期不用不管是前面大还是后面大都可以,它只返回相差的天数,不会有负值,例如我要查询一下2020-12-6和2020-9-6这两个是期所差的天数,可以这样写select datediff(‘2020-12-6’, ‘2020-9-6’);
mysql中的数学、日期、字符串函数总结
8、now():这个函数是用来获取当前时间的,它不只可以获取当前的日期,还可以获取当前的时间,使用时要配合select来查询,例如select now();
字符串函数:
1、charset(str):这个函数是用来返回一个字符串的字符集的,也就是这个字符串是用什么编码的,str可以是输入的一个单一的字符串,也可以是一个字符串类型的字段,例如我有这样一张表:
mysql中的数学、日期、字符串函数总结
然后我查询一下,names字段各行使用的字符集,可以这样写select charset(names) from stud;
mysql中的数学、日期、字符串函数总结
2、concat(string1, string2 ……):这个函数是用来拼接字符串的,里面的string可以是单纯的字符串,也可以是字符串类型的字段,例如我想将"hello"这个单词和"world"这个单词拼接在一起,可以这样写select concat(‘hello’, ‘world’);
mysql中的数学、日期、字符串函数总结
3、instr(string1, string2):这个函数的功能是返回string2在string1中的位置,如果string2没有在string1中,那么就返回0,里面的string可以是单纯的字符串,也可以是字符串类型的字段,例如我想查询”world“这个单词在”helloworld“这个字符串的什么位置,可以这样写select instr(‘helloworld’, ‘world’);
mysql中的数学、日期、字符串函数总结
4、ucase(string):这个函数是用来将字符串中小写的字母转换为大写字母的,里面的string可以是单纯的字符串,也可以是字符串类型的字段,例如我在查询时想将"hello"这个单词的字母,全部转换为大写的字母,可以这样写select ucase(‘hello’);
mysql中的数学、日期、字符串函数总结
5、lcase(sting):这个函数是用来将字符串中大写的字母转换为小写字母的,里面的string可以是单纯的字符串,也可以是字符串类型的字段
6、left(string, length):这个函数的功能是,从string这个字符的左边起,往后显示length个字符,里面的string可以是单纯的字符串,也可以是字符串类型的字段,例如我的string是"helloworld",现在我只想显示前5个字符,可以这样写select left(‘helloworld’, 5);
mysql中的数学、日期、字符串函数总结
7、length(string):这个函数的功能是用来计算字符串的长度的,里面的string可以是单纯的字符串,也可以是字符串类型的字段,例如我想计算"helloworld"这个字符串的长度,可以这样写select length(‘helloworld’);
mysql中的数学、日期、字符串函数总结
8、replace(str, string1, sting2):这个函数的功能是用,string2的字符串来替换,str字符串中的string1字符串,里面的string可以是单纯的字符串,也可以是字符串类型的字段,例如我有一个字符串,“helloapple”,现在我想用"world"来替换"apple",可以这样写,select replace(‘helloworld’, ‘apple’, ‘world’);
mysql中的数学、日期、字符串函数总结
9、strcmp(string1, string2):这个函数是用来比较两个字符串的大小的,比较方法是字典式比较,就是逐字符比较,如果string1大于string2,那么返回1,如果string2大于string1返回-1,里面的string可以是单纯的字符串,也可以是字符串类型的字段,例如我要比较"he"和“zpple"这两个字符串的大小,可以这样写,select strcmp(‘he’, ‘zpple’);
mysql中的数学、日期、字符串函数总结
10、substring(string, position, length):这个函数的功能是将string这个字符串,从position这个位置开始,往后取length个字符,进行显示里面的string可以是单纯的字符串,也可以是字符串类型的字段,例如我有一个字符串’helloworld’,现在我只想显示’world’这个单词,我可以这样写,select substring(‘helloworld’, 6, 5);

mysql中的数学、日期、字符串函数总结