一起养成写作习惯!这是我参与「掘金日新计划 · 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('我们') |
|---|---|---|---|
| 5 | 2 | 5 | 6 |
从结果中可以看出CHAR_LENGTH就是看字符的个数。但是LENGTH是看成UTF-8计算的,汉字一个字符占3个长度,所以这里‘我们’是两个汉字,占6个长度。
示例三
SELECT CONCAT('hello', 'mysql'), CONCAT_WS('-', 'hello', 'mysql')
FROM DUAL
| CONCAT('hello', 'mysql') | CONCAT_WS('-', 'hello', 'mysql') |
|---|---|
| hellomysql | hello-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') |
|---|---|
| haaaaaoworld | hemmmo |
INSERT相当于替换的作用,将‘aaaaa’放在‘helloworld’的第二个位置开始,长度是3个字符的地方。
REPLACE将对应的字符替换成修改后的字符。如果找不到对应的字符串,就不替换。
示例五
SELECT UPPER('Hello'), LOWER('Hello')
FROM DUAL
| UPPER('Hello') | LOWER('Hello') |
|---|---|
| HELLO | hello |
UPPER大写,LOWER小写。
示例六
SELECT LEFT('hello', 2), RIGHT('hello', 3)
FROM DUAL
| LEFT('hello', 2) | RIGHT('hello', 3) |
|---|---|
| he | llo |
LEFT从左边开始截取字符串,RIGHT从右边开始截取字符串。
示例七
SELECT LPAD('hello', 10, ' '), RPAD('hello', 10, ' ')
FROM DUAL
| LPAD('hello', 10, ' ') | RPAD('hello', 10, ' ') |
|---|---|
| hello | hello |
LPAD可以实现右对齐的效果,RPAD可以实现左对齐的效果。
今天先学习到这里,明天继续。