mysql(聚合/字符串/日期与时间)函数(含实战练习)

本博文源于mysql,旨在对mysql中的函数进行详细训练。

数值型函数

数值型函数,大家可以理解为高级语言中的函数,直接跟高级语言函数一般使用就行了。

ABS函数

格式ABS(x)

 SELECT ABS(5),ABS(-2.4),ABS(0);

在这里插入图片描述

MOD函数

求余函数,格式MOD(x,y)

SELECT MOD(63,8),MOD(22,10);

在这里插入图片描述

SQRT函数

平方根函数SQRT(x);

select sqrt(4),sqrt(5);

在这里插入图片描述

SIGN函数

高数中的符号函数SIGN(X)

select SIGN(5),SIGN(-2),SIGN(0);

在这里插入图片描述

GEIL与CEILING函数

格式CEIL(X),CEILING(X)返回不小于x的最小整数值

扫描二维码关注公众号,回复: 11341511 查看本文章
 select CEIL(-2.5),CEILING(6.2);

在这里插入图片描述

三角函数

格式

SIN(X)
COS(X)
TAN(X)
ASIN(X)
ACOS(X)
ATAN(X)

这些大家都应该看得懂,下面演示正弦

 select SIN(1),SIN(0.5*PI());

在这里插入图片描述

字符串函数

LENGTH函数

求长度函数,格式LENGTH(字符串)

 select length('name'),length('zhangsan');

在这里插入图片描述

UPPER和LOWER函数

小写变大写UPPER(X)大写转小写LOWER(X)

 SELECT UPPER('green'),LOWER('Blue');

在这里插入图片描述

LEFT与RIGHT函数

这个跟MATLAB的函数类似,从左边从右边,python好像也有LEFTLEFT(S,X)返回字符串从左边x长度的字符串,同理RIGHT(S,X)返回从右边x长度的字符串

 select left('name',2),right('name',2);

在这里插入图片描述

CONCAT 函数

CONCAT(s1,s2,…)函数返回结果为连接参数产生的字符串,或许有一个或多个参数,若有一个参数为NULL,返回NULL

 select concat('name',':zhangsan'),concat('name',NULL);

在这里插入图片描述

TRIM函数

删除空格函数TRIM(s)删除字符串s两侧的空格

select trim('        name           ');

在这里插入图片描述

INSERT函数

替换字符串函数INSERT(s1,x,len,s2)返回字符串s1,子字符串起始于x位置,并且用len个字符长的字符串代替s2,若x超过字符串长度,则返回为原始字符串。假如len的长度大于其它字符串的长度,则从位置x开始替换。若任何一个参数为NULL,则返回值为NULL

 SELECT INSERT('Football',2,4,'Play'),
 INSERT('Football',-1,4,'Play'),
 INSERT('Football',3,20,'Play');

在这里插入图片描述
第一个INSERT比较规矩,第二个从-1开始,-1就是末尾因此大于4所以直接返回原字符串,后面因为起始于小于长度,直接从第三个位置全部直接替换为Play。

SUBSTRING函数

格式SUBSTRING(s,n,len)跟高级语言类似,在s字符串的第n位置剥离len长度字符串。n若是负数直接从末尾数的倒数几个开始截取。

 SELECT substring('mysql',2,2),substring('mysql',-2,2);

在这里插入图片描述

REVERSE函数

跟高级语言类似REVERSE(s)反转字符串

select REVERSE('HELLO');

在这里插入图片描述

REPLACE函数

也差不多,替换字符串函数REPLACE(s,s1,s2)使用字符串s2替换字符串s中所有的字符串s1

 select replace('aaa.mysql.com','a','w');

在这里插入图片描述

日期与时间函数

NOW和SYSDATE函数

一个是当前时间,一个是系统时间,如果一切正常,那肯定是相等。相信大家也遇到两者时间不等的情况,可以类比记忆windows系统时间不准,链接网络校准时间。

 select now(),sysdate();

在这里插入图片描述

CURDATE 函数和CURRENT_DATE函数

两者函数类似,都是打印出当前日期

 select curdate(),current_date(),current_date()+0;

第三种是将当前日期(日期类型)转换数值类型
在这里插入图片描述

CURTIME函数和CURRENT_TIME函数

两者函数类似,都是打印出当前时间

 select curtime(),current_time(),current_time()+0;

在这里插入图片描述

DAYOFWEEK函数和WEEKDAY函数

都是返回指定日期在某一周内的位置,第一个是将周日当作1开始,第二个函数是将周一当作0开始的。

select DAYOFWEEK(CURDATE()),WEEKDAY(CURDATE());

今天2020-06-16,周二,因此两种索引方式相差两天。
在这里插入图片描述

DAYOFMONTH函数和DAYOFYEAR函数

字面意思理解一个是日期在一年中的位置,一个是日期在一个月中的位置。

 select dayofyear(CURDATE()),dayofmonth(CURDATE());

在这里插入图片描述

MONTH函数和MONTHNAME函数

按照英文f翻译成中文的理解,一个是返回日期中的月份,一个是返回日期中月份的英文名称

 select month(CURDATE()),monthname(CURDATE());

在这里插入图片描述

DATEDIFF函数

这个函数格式比较特殊DATEDIFF(date1,date2)是指date1-date2

select datediff(CURDATE(),curdate()-1),datediff(CURDATE(),curdate()+2);

特殊就特殊在两者相减!
在这里插入图片描述

ADDDATE函数

这个是执行日期加的操作ADDDATE(date,INTERVAL expr type)

select adddate('2020-6-20 9:59:59',interval 1 second),
adddate('2020-6-20 9:59:59',interval '1:1' MINUTE_SECOND);

在这里插入图片描述

聚合函数

演示下面的聚合函数,需要创建这样一张表:
自身如果没有test_db数据库的,自己创一个做练习

CREATE DATABASES test_db;
USE test_db;
 create table tb_students_score
    -> (student_name VARCHAR(10) PRIMARY KEY,
    -> student_score INT(4));

并插入这样的信息

 INSERT INTO tb_students_score values('zhangsan',99);
 INSERT INTO tb_students_score values('wnagmei',44);
  INSERT INTO tb_students_score values('liushuai',89);

MAX函数

函数的含义为求取最大值,

例子:查找学生分数表最高分

 select MAX(student_score) as max FROM tb_students_score;

在这里插入图片描述

MIN函数

这个与max类似,直接上例子

例子:查找学生分数表最低分

 select MIN(student_score) as min FROM tb_students_score;

在这里插入图片描述

COUNT函数

count分为两种情况,一种是COUNT(*)计算表中总的行数,无论某列有数值或者为空值.COUNT(字段名)计算指定下列总的行数,计算时忽略空值的行。

select count(*) from tb_students_score;
select count(student_name) from tb_students_score;

例子:查询学生信息表总行数

在这里插入图片描述

AVG函数

这个是求平均的函数,来个例子加深影响

例子:求取学生成绩表中的平均分

select avg(student_score) as avg from tb_students_score;

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_37149062/article/details/106770694