字符串函数

SELECT 字段名1,字段名2,...FROM 表名

作用:查看整张表中每一条数据给定字段的值

CONCAT(charl, char2)

返回两个字符串连接后的结果,两个参数charl、char2 是要连接的两个字符串。
Oracle中等价操作是:连接操作符"||"
如果charl和char2任何一个为NULL ,相当于连接了一个空格

SELECT CONCAT(CONCAT(ename, ':', sal)
FROM emp;
多个字串连接,用||更直观 SELECT ename || ':' || sal FROM emp;

MySQL中只有CONCAT,但是可以多个参数。参数中有null则直接返回null。

LENGTH(char)

用于返回字符串的长度
如果字符类型是VARCHAR ,返回字符的实际长度,如果字符类型是CHAR ,长度还要包括后补的空格。
例:
SELECT ename, LENGTH(ename) FROM emp;

UPPER、LOWER和INITCAP

大小写转换函数,用来转换字符的大小写。
UPPER(char)用于将字符转换为大写形式
LOWER(char)用于将字符转换小写形式
INITCAP(char)用于将字符串中每个单词的首字符大写,其它字符小写,单词之间用空格和非字母字符分隔,如果输入的参数是NULL值,仍然返回NULL值。
MySQL没有INITCAP……
DUAL称为伪表,使用的目的有两个
1,查询的内容和任何一张表无关
2,满足语法要求
否则SELECT语句会表中有多少数据显示多少数据。

例:
SELECT UPPER(hello world), LOWER(HELLO WORLD), INITCAP(hello world) FROM DUAL;

TRIM、LTRIM、RTRIM

TRIM(c2 FROM cl):从c1的前后截去c2
LTRIM(cl[,c2]):从c1的左边(Left)截去c2
RTRIM(cl[,c2]):从c1的右边(Right)截去c2
如果没有c2,就去除空格
TRIM经常用来去掉字符串前后的空格

在MySQL中的语法为:TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str)

例:
SELECT TRIM(' e ') FROM DUAL;
去除两边空白

MySQL例子:

mysql> SELECT TRIM(LEADING 'x' FROM 'xxxbarxxx');   
--删除指定的首字符 x  

    -> 'barxxx'  

mysql> SELECT TRIM(BOTH 'x' FROM 'xxxbarxxx');      
--删除指定的首尾字符 x  

    -> 'bar'  

mysql> SELECT TRIM(TRAILING 'xyz' FROM 'barxxyz');  
--删除指定的尾字符 x  

    -> 'barx'  

LPAD、RPAD

补位函数,用于在字符串char1的左端或右端用char2补足到n位,char2可重复多次。
LPAD(char1,n,char2)左补位函数
RPAD(char1,n,char2)右补位函数
中间的n表示n位,如果n的长度没有char1的长度大,则去掉右边多余的位数,只保留n位。

例:
SELECT ename, LPAD(sal, 6, '$') as "salary" FROM emp;

SUBSTR

SUBSTR(char,[m[,n]])
用于获取字符串的子串,返回char中从m位开始取n个字
符。
如果m = 0,则从首字符开始,如果m取负数,则从尾部开始
如果没有设置n ,或者n的长度超过了char的长度,则取
到字符串末尾为止。

例:

SELECT SUBSTR('helloworld',6) FROM DUAL;
-->world

SELECT SUBSTR('helloworld',6,4) FROM DUAL;
-->worl

数据库的数据不是从0开始的,而是从1开始!!!

INSTR

INSTR(char1, char2[,n[,m]]):
返回子串char2在源字符串char1中的位置。

从n的位置开始搜索,没有指定n,从第1个字符开始搜索;
m用于指定子串的第m次出现次数,如果不指定取值1
如果在char1中没有找到子串char2 ,返回0

SELECT INSTR('thinking in java','in') FROM dual;
--查看字符串中第一次出现in的位置

SELECT INSTR('thinking in java','in',4) FROM dual;
--查看字符串中从第四个字符开始第一次出现in的位置

SELECT INSTR('thinking in java','in',4,2) FROM dual;
--查看字符串中从第四个字符开始第二次出现in的位置

--若给定条件下没有找到对应位置,则返回0

MySQL中只有两个char1和char2两个参数。
MySQL中有LOCATE函数,LOCATE(char2, char1[,n]):
不过char2和char1是与INSTR相反的。

你可能感兴趣的:(字符串函数)