内容有点多,专心的写,厚积薄发,然后发现你才是王者,嘿嘿
以下介绍的所有函数,均既可以在查询中使用,又可以在插入数据中使用。
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.4Max/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.3Length(计算字节数)
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 则会生成一个定值
总结
说明:本文章的代码统一使用图片显示,主要是因为效果好,如果你想复制代码进行练习的话,可以到文章底部的原文链接
对应的文章,里面有详细的代码。
内容有点多,需多多练习,熟能生巧~
关注我,和我一起向大牛前进吧~