数据库基础Ⅲ(字符串处理)
在Java语言中,我们经常会对字符串进行处理,在MySQL中,我们同样也有这样的函数来处理字符
串,即使用CONCAT函数。
concat函数
语法:
SELECT column_name1,CONCAT(column_name2,str,column_name3),column_name4 FROM table_name;
- 首先这是一个查询语句,最基本的结构是 SELECT 列名 FROM 表名
- CONCAT函数可以拼接列名,也可以拼接字符串
- 在使用CONCAT函数的时候可以同时查询其他的列
- CONCAT函数的参数之间用英文 , 分隔
比如现在我们想查询timi_adc表中英雄的id,以及名字+胜率,我们可以利用concat函数,把结果的可
阅读性变得更好:
SELECT
id,
concat(hero_name, '的胜率是', win_rate)
FROM
timi_adc;
我们可以看到查询结果有一列CONCAT,输出的第一条数据是,后羿的胜率是0.4995。
需要注意的是,如果拼接的值中有NULL,则结果一律为NULL,这是NULL本身特性决定的。
别名
我们优化拼接的结果,给他起一个别名,比如我希望查询结果的列名叫result,那么我们可以这么写:
SELECT
concat(hero_name, '的胜率是', win_rate) as result
FROM
timi_adc
WHERE
id = 3;
TRIM函数
数据库记录的是用户输入的数据,用户输入时的数据通常不是我们所预期的,有时候它会包含空格等我
们并不需要的字符,从而产生脏数据,为了保持数据的格式正确,我们经常会使用TRIM函数来清理数
据。
如使用
SELECT
trim(hero_name),
trim(fever)
FROM
timi_adc
WHERE
id = 20;
则在最后查找出的hero_name和fever的结果会自动去掉空格
语法拓展
trim()函数也可以精准的去掉前面或者后面的空格,或者其他的字符,语法如下
TRIM( BOTH|LEADING|TRAILING removed_str FROM str);
- TRIM函数可以加上LEADING来只除去前面的空格,或者加上TRAILING来只除去后面的空格,如果都不加,则默认是BOTH。
- TRIM函数可以删除指定的字符串内容,如果不加,则默认删除空格。
如:
SELECT
TRIM(
TRAILING 'Q'
FROM
fever
)
FROM
timi_adc
即去掉fever尾部的Q
REPLACE函数
TRIM()函数不能去掉字符串中间的值,如果要修改中间的值,我们可以使用REPLACE()函数,它的语法
如下:
UPDATE table_name
SET colunm_name =
REPLACE(column_name,string_find,string_to_replace)
WHERE conditions;
大家可以看到这个语法很复杂,它可以把找到的某个字符串替换成另一个字符串,其实我们可以直接用
UPDATE语句修改,所以REPLACE()函数的实用性并不高。