MySQL--常用数学函数汇总、查询加部分数学运算查询(一篇如同看电影的文章)

MySQL--常用数学函数汇总、查询加部分数学运算查询=一篇如同看电影的文章

      • MySQL里常用数学函数汇总与select查询加上数学运算查询
      • 1、开幕式说明&求关注唐诗
      • 2、MySQL常用数学函数汇总
      • 3、表格的创建
      • 4、部分题目
      • 5、文末彩蛋--轻松一刻

MySQL里常用数学函数汇总与select查询加上数学运算查询

        更多关于数据库知识请加关注哟~~。若需联系和想安装MySQL请加博主:
         QQ:3327908431
         微信:ZDSL1542334210

1、开幕式说明&求关注唐诗

        开幕式说明:大家好,我是人见人爱,花见花开,车见爆胎的CSND博主Jetuser-data,我为了缓解大家日常编写代码的辛苦,不用到处寻找这些繁杂的数学函数,今天为大家奉上一些常用的函数,都是基本操作,我咋怎么帅呢?任风吹乱我的秀发把!哈哈哈~多的不说,先来首唐诗压压惊
                                博主来把时间花
                                为了方便你我他
                                别夸博主毅力够
                                只愿阁下点关注

一不小心就展露了我的才华,另外如还未懂select语句的伙伴请参见文章:MySQL–select基础查询语句:https://blog.csdn.net/L1542334210/article/details/101225290

2、MySQL常用数学函数汇总

select mod(26,5);  #取余数 求26/5余数  --结果为 1
select abs(-42);   #取绝对值  --结果为 42
select floor(3.51); #返回不大于3.51 的最大整数  --结果为 3
select ceiling(3.51); #返回不小于3.51 的最小整数  --结果为 4
select round(3.51,0);  #四舍五入取整,此处取0位小数--结果为 4.0
select count(*);    #统计满足条件的 记录数
select max();     #求最大值
select min();     #求最小值
select avg();     #求平均数
select sign(-42);  #返回参数的符号(为-1、0或1)
select pi();       #返回圆周率  -- 结果为 3.141593
select exp(2); #e(2.718281…)是自然对数的底数 --结果为 7.38905609893065
select log(2.718281828); #返回n的自然对数,及以e为底 --结果为 0.9999999998约等于1
select log(10,100); #返回以10为底,100的对数 --结果为 2
select log10(100);  #返回以10为底,100的对数 --结果为 2
select sqrt(100);  #返回非负数的平方跟  --结果为 10
select pow(2,3);   #返回x的y次幂 2的3次幂   --结果为 8
select power(2,3); #返回x的y次幂 2的3次幂   --结果为 8
select sin(3);   #返回n的正弦值   --结果为 0.1411200080598672
select cos(3);  #返回n的余弦值  --结果为 -0.9899924966004454
select tan(3);  #返回n的正切值  --结果为 -0.1425465430742778
select cot(3);  #返回x的余切    --结果为 -7.015252551434534 
-- < > = <= != 见下方部分数学查询应用**--整理不易,给个关注呗--**

3、表格的创建

       先创建两张表:score–学生成绩表和stu–学生信息表

表一:学生信息表

 create table stu (s_id varchar(3), s_name varchar(4),s_sex varchar(1),s_age int,s_bothday varchar(11));  *#创建学生表*
 insert into  stu values
("001","李华","男",23,'1996-8-16'),
("002","王二","男",24,'1997-3-16'),
("003","赵敏","女",23,'1990-5-26'),
("004","张莹莹","女",22,'1995-2-16'),
("005","朱亚军","男",25,'1999-8-16'),
("006","马科","男",28,'1993-12-16');  *#输入学生信息*

表二:学生得分表

create table scores(s_id varchar(3),c_id varchar(2),score float); *#得分情况,score float规定分数为浮点型*
insert into score values 
("001","01",135),
("005","01",120),
("003","01",110),
("002","01",90),
("005","02",140),
("001","02",125.5),
("004","02",100),
("006","02",90),
("002","03",102),
("005","03",100.6),
("001","03",100),
("003","03",95.6),
("004","03",83),
("003","02",80),
("006","03",79.5);  *#输入学生得分*

4、部分题目

我们依然是基于问题讲解该部分
题目一:查询不及格的学生成绩信息

分析:不及格说明条件小于及格线,成绩信息是成绩表所有字段,于是代码为:

 select *  from score where score <90;

#Result:
004| 03 | 83 |
003| 02 | 80 |
006| 03 | 03 |

#这里我们利用数学运算符号大于小于或等于,以满分150,及格线90分度量。

题目二:查询学生编号为001的学生成绩最低分

分析:只需要最低分,所以只要一个可以表示分数的字段即可,最低分就需要使用数学中min()函数,于是参见代码:

 select min(score)  from scores where s_id = '001';

#Result:
| min(score) |
| 100 |
#这对比一下不难发现,查询到的字段为min(score),可是我们不需要这样,我们需要得到显而易见的结果,于是:

 select min(score) 最低分 from scores where s_id = '001';

#Result:
| 最低分 |
| 100 |
#这里便得到我们想要的结果,'min(score) 最低分’就是将计算得到的结果字段命名输出,我们查询了什么一目了然。

题目三:查询学生编号为001的学生成绩总分、平均分、最高分、最低分

分析:正如上面所说,数学函数中最小值min,最大值max,平均分用avg,我们对每个查询都重新命名一下,于是代码为:

select s_id,sum(coure) 总分,
avg(coure) 平均分,
max(coure) 最高分,
min(coure) 最低分 
from score where s_id=001;

#Result:
#s_id 总分 平均分 最高分 最低分
#001 360.5 120.17 135 100

题目四:查找成绩在60-80分区间的成绩信息
分析:区间之间的做法和题目一非常类似,只不过判断在区间中有两种做法,and 连接和 between。语法分别为: <条件1> and <条件2> ;between <条件1> and <条件2>;代码实现:

 select * from scores where score>=60 and score <=80;
 select * from scores where score between 60 and 80;
 select * from score where (coure>=60)* (coure<=80);

三行代码都是一样的,结果均为:
003 02 80
006 03 79.5

#总结:可以看到,’*'表示将同时满足coure>=60与coure<=80间的记录查找出来。

题目五:查找成绩不在60-80分区间的成绩信息
分析:有between 就有not between 。也可以同样利用数学大于小于符号,不在60-80就是小于60以及大于80的,这里区分and和or,and表示同时满足两个条件,or是满足其中一个即可。本题中,要不在60-80分之间就得用or,因为and是同时满足,对于任意一个分数,它要么小于60,要么在60-80之间,要么在80分以上,不可能存在同时小于60和大于80的分数,所以用or。请睁大你们的双眼,代码为:

 select * from scores where score not between 60 and 80;
 select * from scores where  score<60 or score>80;

两行代码结果均为:
005 01 120
003 01 110
002 01 90
005 02 140
001 02 125.5
004 02 100
006 02 90
002 03 102
005 03 100.6
001 03 100
003 03 95.6
004 03 83

5、文末彩蛋–轻松一刻

        不知道大家有没有看新闻,之前新闻上说可以把动物器官移植到人身上,我好朋友小熊一听就可高兴,就问我“这真的吗?真的可以把动物器官移植到人身上吗?”我说那当然了。他接着说“那可不可以把驴的器官移植到人的身上?”我好奇就问驴身上哪个器官是人挺喜欢的吗?他说到“就是黑黑的又大又粗的哪个…”我接着打断说到“哦哦…你平常和你女友在一起是不是精卫填海的感觉?犹如鱼儿游在荷塘…”他拼命解释说“不是,不是,我是喜欢驴那又大又粗的黑耳朵,这样移植两个在我身上,走起路来的话呢比较拉风”,哈哈哈,我笑着说“熊啊,要不是我读书少,我真信你…”

        那今天就到这里了,每篇文章都有彩蛋–轻松一刻哟~谢谢观赏,我是Jetuser-data。
CSND:L1542334210
MySQL--常用数学函数汇总、查询加部分数学运算查询(一篇如同看电影的文章)_第1张图片
祝大家工作顺利!阖家欢乐!

你可能感兴趣的:(MySQL,数学运算查询)