MySQL学习-函数(四)

147 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第24天,点击查看活动详情

前言

上篇我们又学习了一部分MySQL中的函数。有兴趣的小伙伴可以阅读(# MySQL学习-函数(三))。
下面继续学习MySQL中的函数。

字符串函数

示例一

SELECT ASCII('Abcdef')
FROM DUAL
ASCII('Abcdef')
65

ASCII('Abcdef')返回的是第一个字符‘A’的ASCII值,也就是65。

示例二

SELECT CHAR_LENGTH('hello'), CHAR_LENGTH('我们'), LENGTH('hello'), LENGTH('我们')
FROM DUAL
CHAR_LENGTH('hello')CHAR_LENGTH('我们')LENGTH('hello')LENGTH('我们')
5256

从结果中可以看出CHAR_LENGTH就是看字符的个数。但是LENGTH是看成UTF-8计算的,汉字一个字符占3个长度,所以这里‘我们’是两个汉字,占6个长度。

示例三

SELECT CONCAT('hello', 'mysql'), CONCAT_WS('-', 'hello', 'mysql')
FROM DUAL
CONCAT('hello', 'mysql')CONCAT_WS('-', 'hello', 'mysql')
hellomysqlhello-mysql

CONCAT就是将多个字符串拼接在一起。
CONCAT_WS就是使用第一个参数对后面的字符串参数进行连接,所以结果是‘hello-mysql’。如果第一个参数是空,那么结果就是‘hellomysql’,与CONCAT的结果相同。

示例四

INSERT,REPLACE函数,使用时需要注意字符串的索引是从1开始的。

SELECT INSERT('helloworld', 2, 3, 'aaaaa'), REPLACE('hello', 'll', 'mmm')
FROM DUAL
INSERT('helloworld', 2, 3, 'aaaaa')REPLACE('hello', 'll', 'mmm')
haaaaaoworldhemmmo

INSERT相当于替换的作用,将‘aaaaa’放在‘helloworld’的第二个位置开始,长度是3个字符的地方。
REPLACE将对应的字符替换成修改后的字符。如果找不到对应的字符串,就不替换。

示例五

SELECT UPPER('Hello'), LOWER('Hello')
FROM DUAL
UPPER('Hello')LOWER('Hello')
HELLOhello

UPPER大写,LOWER小写。

示例六

SELECT LEFT('hello', 2), RIGHT('hello', 3)
FROM DUAL
LEFT('hello', 2)RIGHT('hello', 3)
hello

LEFT从左边开始截取字符串,RIGHT从右边开始截取字符串。

示例七

SELECT LPAD('hello', 10, ' '), RPAD('hello', 10, ' ')
FROM DUAL
LPAD('hello', 10, ' ')RPAD('hello', 10, ' ')
hellohello

LPAD可以实现右对齐的效果,RPAD可以实现左对齐的效果。

今天先学习到这里,明天继续。