暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL学习笔记05-统计函数_字符串_日期_数学函数

数据字节大爆炸 2021-08-18
627

内容有点多,专心的写,厚积薄发,然后发现你才是王者,嘿嘿

以下介绍的所有函数,均既可以在查询中使用,又可以在插入数据中使用。

dual表是一个 MySQL 内置的一个不存在的虚表,方便做测试用的。

1、统计函数1.1 Count (统计数量)1.2 Sum(求和)1.3 Avg(求平均值)1.4 Max/Min(求最大和最小)2、分组3、字符串函数3.1 Charset(字符集)3.2 Concat(拼接字符串)1.3 Length(计算字节数)3.4 Replace(替换字符串函数)3.5 Substring(切片取子串)3.6 Left|right(从首尾取子串)3.7 Lcase|ucase(字符串大小写)3.8 Ltrim|rtrim|trim(去除首尾空格)3.9 Strcmp(比较两字符串的大小)3.10 instr(索引子串的位置)4、数学函数4.1 Abs(取绝对值)4.2 进制转换4.3 上下取整4.4 Format(格式化数字)4.5 Mod(取余数)4.7 Greatest|least(求最大和最小)4.8 rand(随机数)总结:

写作环境:

MacOS、MySQL8.0

写SQL工具:Navicat15.0和电脑自带终端

写作软件:Typora

作者:西园公子:www.zwjjiaozhu.top

预计阅读完本文需:7分钟

01
 统计函数

用来测试代码例子的表t9,表内容如下,本章所有操作均是使用该表。

1.1
 Count(统计数量)

1)COUNT(*):统计满足条件的行数量,*表示匹配所有。

小例子1统计数学在 90 到 100 之间的行数量?


2)count(column_name)统计满足列column_name不为NULL的数量

小例子2统计数学不为的行数量?


1.2
 Sum(求和)


SUM(column_name)求出所有满足条件的列(column_name)对应的数值相加的总和

小例子3求出满足数学在 90 到 100 之间所有行的英语之和?



1.3
 Avg(求平均值)

AVG(column_name)求出所有满足条件的列(column_name)对应的数值相加总和的平均值

小例子4求出满足数学在 90 到 100 之间所有行的英语之和的平均值?



1.4
Max/Min(求最大和最小)

MAX([distinct] column_name)求出所有满足条件的 column_name  对应的数值相的最大值

MIN(column_name):求出所有满足条件的列(column_name)对应的数值相的最小值


02
 分组

超级重点,必须要掌握!

1)GROUP BY column_name按照 column_name 为一组进行分组

小例子5:按照英语分数进行分组,求出每组的英语总和、英语数量、英语的平均值?

2)HAVING指定分组的过滤条件,通常与GROUP BY配合使用

小例子6:按照英语分数进行分组,且英语总和大于100分,求出每组的英语总和、数学总和?


03
 字符串函数


主要是关于字符串相关的拼接、大小写互转、求长度之类的。


3.1
 Character(字符集)

charset(column_name):返回列字符段对应的字符集。


3.2
 Concat(拼接字符串)

concat(column_name, str, ……)拼接字符串,可以拼接列字段。

小例子7:对表中的每个字段都拼接出形如 “数学:98,英语:82” 并输出?



3.3
Length(计算字节数)

length(str):返回字符串 str 的字节数

注:汉字一般是 3 个字节,一个字母是 1 个字节。



3.4
 Replace(替换字符串)

replace(str, old, new)将字符串 str 中的 old 字符串替换成 new 字符串。



3.5
 Substring(切片取子串)


substring(str, position, len)返回字符串 str 的从位置[positon, position+len]的子串。

注:如果不设置 len 的值则默认是到最后。



3.6
 Left|Right(从首尾取子串)

left(str, len)最左边开始取 len 长度的字符串并返回。right(str, len)最右边开始取 len 长度的字符串并返回。



3.7
 Lcase|Ucase(字符串转大小写)

lcase(str)转成小写ucase(str)转成大写。



3.8
 Ltrim|Rtrim|Trim(去除首尾空格)

ltrim(str)去除 str 最左边的空格,rtrim(str)去除 str 最右边的空格,trim(str)去除 str 首尾两端的空格。



3.9
 Strcmp(比较两字符串的大小)

strcmp(str1, str2)逐字符比较 str1 和 str2 的大小。

注:后面 str2 的比前一个 str1 大则返回 1 , 否则返回 -1



3.1
 instr(索引字符串的位置)

instr(str, substr)返回子串 substr 在 str 中的首位置。

注:索引是从 1 开始计数


04
 数字函数


4.1
 Abs(取绝对值)

abs(num)返回数字类型的 num 的绝对值。



4.2
 进制转换

bin(num)十进制转 2 进制,oct(num)十进制转 8 进制,hex(num)十进制转 16 进制。(binary、octonary、hexadecimal)

conv(num, from_base, to_base)将数字 num 从 from_base 进制转成 to_base 进制。(convert)



4.3
 上下取整

ceiling(num)向上取整取大于 num 的最小整,floor(num)向下取整,取小于 num 的最大整数。



4.4
 Format(格式化数字)

fromat(num, num_places)将数字 num 转成保留 num_places 位小数的数(四舍五入)



4.5
 Mod(取余数)

mod(num, num2)返回 num 除以 num2 的余数。



4.7
 Greatest|least(求最大和最小)

greatest(value1, value2, ...)返回里面的最大值,l
east(value1, value2, ...):返回里面的最小值。

其中参数 value 可以是混合参数:

  • 如果有一个参数NULL则立即返回 NULL,不做任何比较。

  • 如果参数是数字字符串混合的,则按照数字进行进行比较。

小例子8:使用greatest方法求出,每一个同学的英语、数学、68 中的最大值,并输出?



4.8
 Rand(产生随机数)

rand(send)若不设置 send 参数,会产生成一个 0 和 1之间的随机数,若设置 seed 则会生成一个定值



总结


说明:本文章的代码统一使用图片显示,主要是因为效果好,如果你想复制代码进行练习的话,可以到文章底部的原文链接

对应的文章,里面有详细的代码。


内容有点多,需多多练习,熟能生巧~


关注我,和我一起向大牛前进吧~

文章转载自数据字节大爆炸,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论