字符串函数

案例:
- 使用UPPER()/LOWER()函数转换字符型数据大小写。
忽略大小写的查询EMP表中姓名是smith的信息(提前把EMP表中7369员工的姓名从SMITH更新为smit)
| — 更新数据UPDATE EMP SET ENAME =’smith’ WHERE EMPNO=7369; — 在严格区分大小写的情况下,下面的语句时无法查询到数据的SELECT * FROM EMP WHERE BINARY ENAME = ‘SMITH’; — 可以使用LOWER()SELECT * FROM EMP WHERE BINARY LOWER(ENAME)= LOWER(‘SMITH’) ; — 也可以使用UPPER()函数SELECT * FROM EMP WHERE BINARY UPPER(ENAME)= “SMITH”; |
| — 更新数据UPDATE EMP SET ENAME =’smith’ WHERE EMPNO=7369; — 在严格区分大小写的情况下,下面的语句时无法查询到数据的SELECT * FROM EMP WHERE BINARY ENAME = ‘SMITH’; — 可以使用LOWER()SELECT * FROM EMP WHERE BINARY LOWER(ENAME)= LOWER(‘SMITH’) ; — 也可以使用UPPER()函数SELECT * FROM EMP WHERE BINARY UPPER(ENAME)= “SMITH”; |
| — 更新数据UPDATE EMP SET ENAME =’smith’ WHERE EMPNO=7369; — 在严格区分大小写的情况下,下面的语句时无法查询到数据的SELECT * FROM EMP WHERE BINARY ENAME = ‘SMITH’; — 可以使用LOWER()SELECT * FROM EMP WHERE BINARY LOWER(ENAME)= LOWER(‘SMITH’) ; — 也可以使用UPPER()函数SELECT * FROM EMP WHERE BINARY UPPER(ENAME)= “SMITH”; |
| — 更新数据UPDATE EMP SET ENAME =’smith’ WHERE EMPNO=7369; — 在严格区分大小写的情况下,下面的语句时无法查询到数据的SELECT * FROM EMP WHERE BINARY ENAME = ‘SMITH’; — 可以使用LOWER()SELECT * FROM EMP WHERE BINARY LOWER(ENAME)= LOWER(‘SMITH’) ; — 也可以使用UPPER()函数SELECT * FROM EMP WHERE BINARY UPPER(ENAME)= “SMITH”; |
| — 更新数据UPDATE EMP SET ENAME =’smith’ WHERE EMPNO=7369; — 在严格区分大小写的情况下,下面的语句时无法查询到数据的SELECT * FROM EMP WHERE BINARY ENAME = ‘SMITH’; — 可以使用LOWER()SELECT * FROM EMP WHERE BINARY LOWER(ENAME)= LOWER(‘SMITH’) ; — 也可以使用UPPER()函数SELECT * FROM EMP WHERE BINARY UPPER(ENAME)= “SMITH”; |
| — 更新数据UPDATE EMP SET ENAME =’smith’ WHERE EMPNO=7369; — 在严格区分大小写的情况下,下面的语句时无法查询到数据的SELECT * FROM EMP WHERE BINARY ENAME = ‘SMITH’; — 可以使用LOWER()SELECT * FROM EMP WHERE BINARY LOWER(ENAME)= LOWER(‘SMITH’) ; — 也可以使用UPPER()函数SELECT * FROM EMP WHERE BINARY UPPER(ENAME)= “SMITH”; |
| — 更新数据UPDATE EMP SET ENAME =’smith’ WHERE EMPNO=7369; — 在严格区分大小写的情况下,下面的语句时无法查询到数据的SELECT * FROM EMP WHERE BINARY ENAME = ‘SMITH’; — 可以使用LOWER()SELECT * FROM EMP WHERE BINARY LOWER(ENAME)= LOWER(‘SMITH’) ; — 也可以使用UPPER()函数SELECT * FROM EMP WHERE BINARY UPPER(ENAME)= “SMITH”; |
| — 更新数据UPDATE EMP SET ENAME =’smith’ WHERE EMPNO=7369; — 在严格区分大小写的情况下,下面的语句时无法查询到数据的SELECT * FROM EMP WHERE BINARY ENAME = ‘SMITH’; — 可以使用LOWER()SELECT * FROM EMP WHERE BINARY LOWER(ENAME)= LOWER(‘SMITH’) ; — 也可以使用UPPER()函数SELECT * FROM EMP WHERE BINARY UPPER(ENAME)= “SMITH”; |
| — 更新数据UPDATE EMP SET ENAME =’smith’ WHERE EMPNO=7369; — 在严格区分大小写的情况下,下面的语句时无法查询到数据的SELECT * FROM EMP WHERE BINARY ENAME = ‘SMITH’; — 可以使用LOWER()SELECT * FROM EMP WHERE BINARY LOWER(ENAME)= LOWER(‘SMITH’) ; — 也可以使用UPPER()函数SELECT * FROM EMP WHERE BINARY UPPER(ENAME)= “SMITH”; |
| — 更新数据UPDATE EMP SET ENAME =’smith’ WHERE EMPNO=7369; — 在严格区分大小写的情况下,下面的语句时无法查询到数据的SELECT * FROM EMP WHERE BINARY ENAME = ‘SMITH’; — 可以使用LOWER()SELECT * FROM EMP WHERE BINARY LOWER(ENAME)= LOWER(‘SMITH’) ; — 也可以使用UPPER()函数SELECT * FROM EMP WHERE BINARY UPPER(ENAME)= “SMITH”; |
| — 更新数据UPDATE EMP SET ENAME =’smith’ WHERE EMPNO=7369; — 在严格区分大小写的情况下,下面的语句时无法查询到数据的SELECT * FROM EMP WHERE BINARY ENAME = ‘SMITH’; — 可以使用LOWER()SELECT * FROM EMP WHERE BINARY LOWER(ENAME)= LOWER(‘SMITH’) ; — 也可以使用UPPER()函数SELECT * FROM EMP WHERE BINARY UPPER(ENAME)= “SMITH”; |
- 使用CONCATA()把多个字符型的数据拼接到一起。
将ENAME大写,职位小写,最后使用_拼接在一起,显示为 ‘姓名_职位”
| SELECT CONCAT( UPPER(ENAME),”_” , LOWER(JOB)) AS ‘姓名_职位’ FROM EMP; |
- 使用SUBSTR()/SUBSTRING()从一个字符串中截取子串
java中索引都是从0开始的 ,sql语言中 索引都是从1开始的
SELECT SUBSTR(“HelloWorldMySql” ,6); — 从6截取到字符串的末尾 “WorldMySql”
SELECT SUBSTR(“HelloWorldMySql” ,6,2); — 从6开始截取,截取2个字符,结果是 “Wo”
将ENAME首字符大写,其他字符小写,并且JOB首字符大写,其他字符小写,最后拼接在一起
| SELECT CONCAT( UPPER( SUBSTR(ENAME,1,1)) ,LOWER(SUBSTR(ENAME,2)) ,”-” ,Upper(SUBSTR(JOB,1,1)), LOWER(SUBSTR(JOB,2))) “员工姓名-职位”FROM EMP; |
| SELECT CONCAT( UPPER( SUBSTR(ENAME,1,1)) ,LOWER(SUBSTR(ENAME,2)) ,”-” ,Upper(SUBSTR(JOB,1,1)), LOWER(SUBSTR(JOB,2))) “员工姓名-职位”FROM EMP; |
| SELECT CONCAT( UPPER( SUBSTR(ENAME,1,1)) ,LOWER(SUBSTR(ENAME,2)) ,”-” ,Upper(SUBSTR(JOB,1,1)), LOWER(SUBSTR(JOB,2))) “员工姓名-职位”FROM EMP; |
- instr 获取子串在字符串中第一次出现的索引
| SELECT INSTR(“HelloMySqlWorldMySql”,”MySql”) “INDEX” |
- lpad 用指定的字符左填充到指定的位数
| SELECT LPAD(“Hello”,10,’*’); — 结果是”*****Hello” |
- rpad 用指定的字符左填充到指定的位数
| SELECT RPAD(“Hello”,10,’*’); — 结果是”Hello*****” |
- trim 去前后空格或指定字符
| SELECT LENGTH(‘ He llo ‘) ‘原来的长度’ ,TRIM(‘ He llo ‘) ,LENGTH(TRIM(‘ He llo ‘)) ‘去掉空格之后的长度’ |
| SELECT LENGTH(‘ He llo ‘) ‘原来的长度’ ,TRIM(‘ He llo ‘) ,LENGTH(TRIM(‘ He llo ‘)) ‘去掉空格之后的长度’ |
| SELECT LENGTH(‘ He llo ‘) ‘原来的长度’ ,TRIM(‘ He llo ‘) ,LENGTH(TRIM(‘ He llo ‘)) ‘去掉空格之后的长度’ |
| SELECT TRIM(BOTH ‘好’ FROM “好好好好Hel好lo好好”); — BOTH可以忽略,默认去除前后的指定字符SELECT TRIM(LEADING ‘好’ FROM “好好好好Hel好lo好好”); — 去除字符串前面指定字符 |
| SELECT TRIM(BOTH ‘好’ FROM “好好好好Hel好lo好好”); — BOTH可以忽略,默认去除前后的指定字符SELECT TRIM(LEADING ‘好’ FROM “好好好好Hel好lo好好”); — 去除字符串前面指定字符 |
- length 获取字符型数据的个数
查询员工的姓名及其名字的长度
| SELECT ENAME ,LENGTH(ENAME) ‘名字长度’ FROM EMP; |
- replace(str, a, b)用字符串b替换字符串str中所有出现的字符串a
| — 把字符串中的”MySql”替换为”Oracle”SELECT REPLACE(“HelloMysqlWorldMysql”,”Mysql”,”Oracle”); |
| — 把字符串中的”MySql”替换为”Oracle”SELECT REPLACE(“HelloMysqlWorldMysql”,”Mysql”,”Oracle”); |
Java培训