侧边栏壁纸
博主头像
孔子说JAVA博主等级

成功只是一只沦落在鸡窝里的鹰,成功永远属于自信且有毅力的人!

  • 累计撰写 297 篇文章
  • 累计创建 134 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录

MySql字符串函数的使用方式

孔子说JAVA
2022-09-11 / 0 评论 / 0 点赞 / 31 阅读 / 5,371 字 / 正在检测是否收录...

MySQL数据库中提供了很丰富的函数,这些函数可以帮助用户更加方便的处理表中的数据,他们会对传递进来的参数进行处理,并返回一个处理结果,也就是返回一个值。MySQL函数包括数学函数、字符串函数、日期和时间函数、条件判断函数、系统信息函数、加密函数、格式化函数等。通过这些函数,可以简化用户的操作。SELECT语句及其条件表达式都可以使用这些函数。同时,INSERT 、UPDATE、DELECT语句及其条件表达式也可以使用这些函数。本文主要讲解字符串函数,函数列表如下:

函数名称 作 用
LENGTH 计算字符串长度函数,返回字符串的字节长度
CONCAT 合并字符串函数,返回结果为连接参数产生的字符串,参数可以使一个或多个
INSERT 替换字符串函数
LOWER 将字符串中的字母转换为小写
UPPER 将字符串中的字母转换为大写
LEFT 从左侧字截取符串,返回字符串左边的若干个字符
RIGHT 从右侧字截取符串,返回字符串右边的若干个字符
TRIM 删除字符串左右两侧的空格
REPLACE 字符串替换函数,返回替换后的新字符串
SUBSTRING 截取字符串,返回从指定位置开始的指定长度的字符换
REVERSE 字符串反转(逆序)函数,返回与原始字符串顺序相反的字符串

1、LENGTH 字符串长度函数

LENGTH(str) 函数的返回值为字符串的字节长度,使用 uft8(UNICODE 的一种变长字符编码,又称万国码)编码字符集时,一个汉字是 3 个字节,一个数字或字母是一个字节。

mysql> SELECT LENGTH('name'),LENGTH('数据库');
+----------------+---------------------+
|LENGTH('name')  | LENGTH('数据库')    |
+----------------+---------------------+
|              4 |                   9 |
+----------------+---------------------+
1 row in set (0.04 sec)

由运行结果可以看到,一个汉字是 3 个字节,“数据库”字符串占 9 个字节。英文字符的个数和所占的字节相同,一个字符占 1 个字节。

2、CONCAT 字符串拼接函数

CONCAT(sl,s2,…) 函数返回结果为连接参数产生的字符串,或许有一个或多个参数。若有任何一个参数为 NULL,则返回值为 NULL。若所有参数均为非二进制字符串,则结果为非二进制字符串。若自变量中含有任一二进制字符串,则结果为一个二进制字符串。

mysql> SELECT CONCAT('MySQL','5.7'),CONCAT('MySQL',NULL);
+-----------------------+----------------------+
| CONCAT('MySQL','5.7') | CONCAT('MySQL',NULL) |
+-----------------------+----------------------+
| MySQL5.7              | NULL                 |
+-----------------------+----------------------+
1 row in set (0.03 sec)

由运行结果可知,CONCAT(‘MySQL’,‘5.7’) 返回两个字符串连接后的字符串;CONCAT(‘MySQL’,NULL) 中有一个参数为 NULL,因此返回结果为 NULL。

3、INSERT 替换字符串函数

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

mysql> SELECT INSERT('Football',2,4,'Play') AS col1,
    -> INSERT('Football',-1,4,'Play') AS col2,
    -> INSERT('Football',3,20,'Play') AS col3;
+----------+----------+--------+
| col1     | col2     | col3   |
+----------+----------+--------+
| FPlayall | Football | FoPlay |
+----------+----------+--------+
1 row in set (0.04 sec)

由执行结果可知:

  • 第一个函数 INSERT(‘Football’,2,4,‘Play’) 将“Football”从第 2 个字符开始长度为 4 的字符串替换为 Play,结果为“FPlayall”;
  • 第二个函数 (‘Football’,-1,4,‘Play’) 中的起始位置 -1 超出了字符串长度,直接返回原字符串;
  • 第三个函数 INSERT(‘Football’,3,20,‘Play’) 替换长度超出了原字符串长度,则从第 3 个字符开始,截取后面所有的字符,并替换为指定字符 Play,结果为“FoPlay”。

4、LOWER 字母小写转换函数

字母小写转换函数 LOWER(str) 可以将字符串 str 中的字母字符全部转换成小写。

mysql> SELECT LOWER('BLUE'),LOWER('Blue');
+---------------+---------------+
| LOWER('BLUE') | LOWER('Blue') |
+---------------+---------------+
| blue          | blue          |
+---------------+---------------+
1 row in set (0.03 sec)

由结果可以看到,原来所有字母为大写的,全部转换为小写,如“BLUE”,转换之后为“blue”;大小写字母混合的字符串,小写不变,大写字母转换为小写字母,如“Blue”,转换之后为“bule”。

5、UPPER 字母大写转换函数

字母大写转换函数 UPPER(str) 可以将字符串 str 中的字母字符全部转换成大写。

mysql> SELECT UPPER('green'),UPPER('Green');
+----------------+----------------+
| UPPER('green') | UPPER('Green') |
+----------------+----------------+
| GREEN          | GREEN          |
+----------------+----------------+
1 row in set (0.03 sec)

由结果可以看到,原来所有字母字符为小写的,全部转换为大写,如“green”,转换之后为“GREEN”;大小写字母混合的字符串,大写不变,小写字母转换为大写字母,如“Green”,转换之后为“GREEN”。

6、LEFT 从左侧截取字符串函数

LEFT(s,n) 函数返回字符串 s 最左边的 n 个字符。

mysql> SELECT LEFT('MySQL',2);
+-----------------+
| LEFT('MySQL',2) |
+-----------------+
| My              |
+-----------------+
1 row in set (0.04 sec)

由运行结果可知,返回字符串“MySQL”左边开始的长度为 2 的子字符串,结果为“My”。

7、RIGHT 从右侧截取字符串函数

RIGHT(s,n) 函数返回字符串 s 最右边的 n 个字符。

mysql> SELECT RIGHT('MySQL',3);
+------------------+
| RIGHT('MySQL',3) |
+------------------+
| SQL              |
+------------------+
1 row in set (0.00 sec)

由执行结果可知,函数返回字符串“MySQL”右边开始的长度为3的子字符串,结果为“SQL”。

8、TRIM 删除空格函数

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

mysql> SELECT '[   mobile   ]',CONCAT('[',TRIM('   mobile   '),']');
+----------------+--------------------------------------+
| [   mobile   ] | CONCAT('[',TRIM('   mobile   '),']') |
+----------------+--------------------------------------+
| [   mobile   ] | [mobile]                             |
+----------------+--------------------------------------+
1 row in set (0.07 sec)

由执行结果可知,函数执行之后字符串“mobile”两边的空格被删除,结果为“mobile”。

9、REPLACE 字符串替换函数

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

mysql> SELECT REPLACE('aaa.mysql.com','a','w');
+----------------------------------+
| REPLACE('aaa.mysql.com','a','w') |
+----------------------------------+
| www.mysql.com                    |
+----------------------------------+
1 row in set (0.00 sec)

由运行结果可以看出,使用 REPLACE(‘aaa.mysql.com’,‘a’,‘w’) 将“aaa.mysql.com”字符串的“a”字符替换为“w”字符,结果为“www.mysql.com”。

10、SUBSTRING 截取字符串函数

获取子串函数 SUBSTRING(s,n,len) 带有 len 参数的格式,从字符串 s 返回一个长度同 len 字符相同的子字符串,起始于位置 n。也可能对 n 使用一个负值。假若这样,则子字符串的位置起始于字符串结尾的第 n 个字符,即倒数第 n 个字符,而不是字符串的开头位置。

mysql> SELECT SUBSTRING('computer',3) AS col1,
    -> SUBSTRING('computer',3,4) AS col2,
    -> SUBSTRING('computer',-3) AS col3,
    -> SUBSTRING('computer',-5,3) AS col4;
+--------+------+------+------+
| col1   | col2 | col3 | col4 |
+--------+------+------+------+
| mputer | mput | ter  | put  |
+--------+------+------+------+
1 row in set (0.00 sec)

SUBSTRING(‘computer’,3) 返回从第 3 个位置开始到字符串结尾的子字符串,结果为“mputer”;SUBSTRING(‘computer’,3,4) 返回从第 3 个位置开始长度为 4 的子字符串,结果为“mput”;

SUBSTRING(computer,-3) 返回从倒数第 3 个位置到字符串结尾的子字符串,结果为“ter”;SUBSTRING(computer,-5,3) 返回从倒数第 5 个位置开始长度为 3 的子字符串,结果为“put”。

11、REVERSE 反转字符串函数

字符串逆序函数 REVERSE(s) 可以将字符串 s 反转,返回的字符串的顺序和 s 字符串的顺序相反。

mysql> SELECT REVERSE('hello');
+------------------+
| REVERSE('hello') |
+------------------+
| olleh            |
+------------------+
1 row in set (0.00 sec)

由运行结果可以看出,字符串“hello”经过 REVERSE 函数处理之后所有字符顺序被反转,结果为“olleh”。

0

评论区