MYSQL数据库(十四)- 字符函数

来源:互联网 发布:java字符串相等的判断 编辑:程序博客网 时间:2024/05/16 14:30

目录

这里写图片描述


常用字符运算符

这里写图片描述
这里写图片描述

concat()                  字符链接concat_ws()             使用指定的分隔符进行字符链接format()                  数字格式化lower()                 转换成小写upper()                   转换成大写left()                    获得左侧字符right()                   获得右侧字符length()                获取字符串的长度ltrim()                   删除前导空格rtrim()                   删除后续空格trim()                    删除前导和后续空格subsuring()               字符串截取[not] like                模式匹配peplace() n               字符串替换

案例

----------------------concat() ---------------------------//例如一、使用concat()连接字符“1111”和字符“2222”//连接字符mysql> select concat('1111','2222');+-----------------------+| concat('1111','2222') |+-----------------------+| 11112222              |+-----------------------+//例如二、使用concat()把“1111”和字符“2222”,并用“_”连接mysql> select concat('111','_','222');+-------------------------+| concat('111','_','222') |+-------------------------+| 111_222                 |+-------------------------+1 row in set (0.00 sec)//例如三、连接数据表中,列名称//例如需要连接 id和name的参数合成一个,并打印出结果mysql> select * from ceshi;+----+------+------+| id | name | sex  |+----+------+------+|  1 | 老王     | 男     ||  2 | 老耿    | 帅哥    ||  3 | 老李     | 男     ||  4 | 老王     | 男     ||  5 | 老王     | 男     ||  6 | 小花    | 女    ||  7 | 小翠    | 妇女    ||  8 | 小三    | 女    ||  9 | 小名    | 儿童    || 10 | 小狼    | 动物     || 11 | 小龙    | 动物     |+----+------+------+11 rows in set (0.00 sec)//这里用到的就是concat();mysql> select concat(id,name) as fullname from ceshi;+----------+| fullname |+----------+| 1老王        || 2老耿       || 3老李        || 4老王        || 5老王        || 6小花       || 7小翠       || 8小三       || 9小名       || 10小狼      || 11小龙      |+----------+11 rows in set (0.00 sec)----------------------concat_ws() ---------------------------//作用:使用指定的分隔符进行字符链接//第一个‘|’是需要用的分割符号,后面跟的是分割的内容。例如下面案例mysql> select concat_ws('|','a','b','c');+----------------------------+| concat_ws('|','a','b','c') |+----------------------------+| a|b|c                      |+----------------------------+1 row in set (0.00 sec)----------------------format() ---------------------------//作用,格式化//案例:格式化数字:1234456.2345,并保留两位数mysql> select format(1234456.2345,2);+------------------------+| format(1234456.2345,2) |+------------------------+| 1,234,456.23           |+------------------------+1 row in set (0.00 sec)----------------------lower()和upper() ---------------------------作用:lower,转换成小写upper,转换成大写//大写转换成小写mysql> select lower('MYSQL');+----------------+| lower('MYSQL') |+----------------+| mysql          |+----------------+1 row in set (0.01 sec)//小写转换成大写mysql> select UPPER('mysql');+----------------+| UPPER('mysql') |+----------------+| MYSQL          |+----------------+1 row in set (0.00 sec)----------------------left()和right() ---------------------------作用:left,获取左边字符right,获取右边字符//案例一:获取左边字符mysql> select left('aabbccddee',2);+----------------------+| left('aabbccddee',2) |+----------------------+| aa                   |+----------------------+1 row in set (0.00 sec)//案例二:获取右边字符mysql> select right('aabbccddee',2);+-----------------------+| right('aabbccddee',2) |+-----------------------+| ee                    |+-----------------------+1 row in set (0.00 sec)----------------------length() ---------------------------//作用:获取字符长度,记住空格也算一位mysql> select length('my s ql');+-------------------+| length('my s ql') |+-------------------+|                 7 |+-------------------+1 row in set (0.04 sec)----------------------ltrim()、rtrim()、trim() ---------------------------作用:ltrim():删除前导空格 ,第一个字符之前的空格rtrim():删除后导空格,最后一个字符之后的空格trim();删除前导和后续空格//案例一://删除前导字符,mysql> select ltrim('  aaa  ');+------------------+| ltrim('  aaa  ') |+------------------+| aaa              |+------------------+1 row in set (0.00 sec)//删除后长度为5,因为前面两个空格删除掉了mysql> select length(ltrim('  aaa  '));+--------------------------+| length(ltrim('  aaa  ')) |+--------------------------+|                        5 |+--------------------------+//案例二://删除了后两个空格mysql> select rtrim('  aaa  ');+------------------+| rtrim('  aaa  ') |+------------------+|   aaa            |+------------------+1 row in set (0.00 sec)//删除后两个空格,长度也是为5mysql> select length(rtrim('  aaa  '));+--------------------------+| length(rtrim('  aaa  ')) |+--------------------------+|                        5 |+--------------------------+1 row in set (0.00 sec)//案例三://删除前导和后导空格,mysql> select trim('  aaa  ');+-----------------+| trim('  aaa  ') |+-----------------+| aaa             |+-----------------+1 row in set (0.00 sec)//删除前导和后导空格,注意,第一个字符和最后一个字符之间的空格不会被删除mysql> select trim('  a aa  ');+------------------+| trim('  a aa  ') |+------------------+| a aa             |+------------------+1 row in set (0.00 sec)//案例四:删除字符串中%%%%aaaaa%%%%中的前导的“%”字符//成功删除了前面的%字符。mysql> select trim(leading'%' from '%%%%aaaaa%%%%');+---------------------------------------+| trim(leading'%' from '%%%%aaaaa%%%%') |+---------------------------------------+| aaaaa%%%%                             |+---------------------------------------+1 row in set (0.00 sec)案例五:删除字符串中%%%%aaaaa%%%%中的后导的“%”字符//成功删除了后面的%字符。mysql> select trim(trailing'%' from '%%%%aaaaa%%%%');+----------------------------------------+| trim(trailing'%' from '%%%%aaaaa%%%%') |+----------------------------------------+| %%%%aaaaa                              |+----------------------------------------+1 row in set (0.00 sec)//案例六:全部删除前导和后导的%//全部删除前导和后导的%,但是切记,字符中的空格得不到删除。mysql> select trim(both'%' from '%%%%aaaaa%%%%');+------------------------------------+| trim(both'%' from '%%%%aaaaa%%%%') |+------------------------------------+| aaaaa                              |+------------------------------------+1 row in set (0.00 sec)----------------------replace() ---------------------------作用:替换(可以一换一,也可以一环多)//案例一:?好替换成$*mysql> select replace('?sssssss??aaaaa??bbbbb??ggggggg???','?','$*');+--------------------------------------------------------+| replace('?sssssss??aaaaa??bbbbb??ggggggg???','?','$*') |+--------------------------------------------------------+| $*sssssss$*$*aaaaa$*$*bbbbb$*$*ggggggg$*$*$*           |+--------------------------------------------------------+1 row in set (0.00 sec)//案例二:两个?更换成*号。只有一个或者多余2个?好的,不能更换。mysql> select replace('?sssssss??aaaaa??bbbbb??ggggggg???','??','*');+--------------------------------------------------------+| replace('?sssssss??aaaaa??bbbbb??ggggggg???','??','*') |+--------------------------------------------------------+| ?sssssss*aaaaa*bbbbb*ggggggg*?                         |+--------------------------------------------------------+1 row in set (0.00 sec)----------------------substring() ---------------------------//作用:字符串的截取//注意:我们java开发中,也有这个关键字,区别起始下表mysql是从1开始,java中是从0开始。//案例一mysql> select substring('abhjju',1,2);+-------------------------+| substring('abhjju',1,2) |+-------------------------+| ab                      |+-------------------------+1 row in set (0.00 sec)//案例二:也可以写负值,但是请注意,位置可以是负,但是长度不可以为负mysql> select substring('abhjju',-1);+------------------------+| substring('abhjju',-1) |+------------------------+| u                      |+------------------------+1 row in set (0.02 sec)

//———————-【not】like) —————————
如图1:
这里写图片描述

ESCAPE 过滤1后面的%为普通字符%代表任意字符,_代表任意一个字符。like语句查找“%”时,使用这个模式'%1%%',escape '1'模糊查询        like '% ab%';        like '_ab%';        not like ' ';        select like '%\%%' escape '\'; 特殊\
原创粉丝点击