这篇博文略微有点长嗷~大侠们请留步!!!!!!
函数概念:
类似于java的方法,将一组逻辑语句封装在方法体中,对外暴露方法名
好处:
1、隐藏了实现细节
2、 提高代码的重用性
调用:
select 函数名(实参列表) 【 from 表 】;
分类:
1、单行函数
字符函数
数学函数
日期函数
流程控制函数
其他函数
2、分组函数
功能:做统计计使用,又称为统计函数、聚合函数、组函数
一、 单行函数
1、字符函数
1)length 获取参数的字节个数
#案例:
查询John的字节长度
注:一个字母占一个字节,所以John的字节长度为 4.

另外还需要分字符集的情况:
若编码是gbk,一个汉字占两个字节
若编码是utf-8,一个汉字占三个字节

#案例:
查询“喋喋MySQL”的字节长度

这里‘喋喋’是两个汉字,在编码为gbk的情况下,相当于四个字节,最终‘喋喋mysql’一共有9个字节。
2)concat拼接
拼接字符串

3)substr/substring截取索引后的字符
【PS】那么问题来了, 索引是什么呢?
定义:索引(Index)是帮助MySQL高效获取数据的数据结构。我们可以简单理解为:快速查找排好序的一种数据结构。
1. 截取时索引从1开始
#从(“喋喋小菜鸡的”中)第一个索引开始截取

2. 截取从指定索引处后面的索引字符
#从(“喋喋小菜鸡的”中)的第三个索引开始截取

3. 截取从指定索引处指定字符长度的字符(第二个数字表示占xx位)
#从(“喋喋小菜鸡的”中)的第一个索引开始截取,截取的字符长度为2

#案例:
姓名中首字符大写,其他字符小写然后用_拼接,显示出来

4)instr 返回子串第一次出现的索引

注:
Instr用于返回子串(‘喋喋’)在大的字符串(‘喋喋小菜鸡’)的起始索引,
如果找不到,则返回0 。

5)upper 转换成大写

6)lower 转换成小写

#案例:
将姓变大写,名变小写

7)trim去前后指定的空格和字符
# 案例1:
首先,查询( “MySQL笔记” )的字符长度(为15)

其次,去掉( “MySQL笔记” )的前后空格

最后,再查询( “MySQL笔记” )的字符长度(为9)

由此得知,trim去掉了前后空格。

# 案例2
如果是两个x,,若想去掉( “MySQL笔记” )前后的空格,那么会以xx为一个单位

8)ltrim去左边空格
首先,查询( “MySQL笔记” )的字符长度为13

其次,ltrim去掉左边的空格

最后,再次查询( “MySQL笔记” )的字符长度,即为9

9)rtrim去右边空格
同样的,首先,查询( “MySQL笔记” )的字符长度为14

其次,rtrim去掉右边的空格

最后,再次查询( “MySQL笔记” )的字符长度为11

10)replace替换
语法格式如下:
replace(str,from_str,to_str)
在字符串 str 中所有出现的字符串 from_str 均被 to_str替换,然后返回这个字符串
#案例:
首先,查询departments的所有信息

然后,将第一行“Adm”中的d替换为r,返回结果,即可实现。

11)lpad用指定的字符实现左填充指定长度
语法格式如下:
lpad( string, padded_length, [ pad_string ] );
string :准备被填充的字符串;
padded_length:填充之后的字符串长度,也就是该函数返回的字符串长度,如果这个数量比原字符串的长度要短,lpad函数将会把字符串截取成从左到右的n个字符;
pad_string:填充字符串,是一个可选参数,这个字符串是要粘贴到string的左边,如果这个参数未写,lpad函数将会在string的左边粘贴空格。
#案例1:
用@来实现左填充(”MySQL笔记“在这里都代表字符,因此其字符长度为7)

注:
案例1中的15,指的是字符长度,除了特殊说明为字节的情况下,其他都为字符
如果本身长度超过指定长度,lpad和rpad都是从右边截断
#案例2
该函数返回的字符串长度(1<“MySQL笔记”),lpad函数将会从左到右的1个字符,即为M

12)rpad右填充
用 *$ 来实现右填充(”MySQL笔记“在这里都代表字符,因此其字符长度为7)

看到这里,别忘记给喋喋点赞嗷~~~~
后续更新中,继续关注【手动狗头】
本文深入讲解SQL中的函数概念,包括单行函数如字符、数学、日期等,以及分组函数的使用,通过实例演示如何利用函数提升代码效率与重用性。
956

被折叠的 条评论
为什么被折叠?



