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相反的。