字符串函数

 字符串函数
    符串函数用于在 SQL 里以不同于现有存储方式的格式来表示字符串。
一、计算长度 LENGTH
        LENGTH 函数用于得到字符串、数字、日期或表达式的长度,单位是字节。
        语法:LENGTH(str)
        描述:返回字符串 str 的长度,单位为字节。
        一个多字节字符算作多字节。这意味着对于一个包含5个2字节字符的字符串,LENGTH() 的返回值为10。
        例1:显示 PRODUCTS_TBL 表里产品描述及其长度:
         SELECT  PROD_DESC, LENGTH(PROD_DESC) FROM PRODUCTS_TBL;
        结果:
             
二、字符替换 REPLACE
    1、函数语法
        REPLACE 函数用于将字符串里的部分字符用另一个字符串替换。
        语法:REPLACE(str, from_str, to_str)
        描述:返回字符串 str 中所有的子字符串from_str 都被字符串to_str替代后的字符串。

     例2:用‘Ww’替代‘w’:
         SELECT REPLACE('www.mysql.com', 'w', 'Ww');
        结果: 'WwWwWw.mysql.com'
        例3:下面的语句返回雇员表里的全部城市,并且把城市名称里的I 都替换成Z:
         SELECT CITY, REPLACE(CITY, 'I', 'Z')
         FROM EMPLOYEE_TBL;
        结果:
             
    2、批量替换指定字段中的字符串
        批量替换指定字段中的字符串是数据库应用中很常见的需求。
        语法:UPDATE 表名 SET
        指定字段 = replace(指定字段, old_str, new_str)WHERE 条件;
        例:把 article 表中 ID 小于5000的记录里,content 字段中的"解决"替换成"解放",那么语法就是:UPDATE article SET content = replace(content, '解决', '解放') WHERE ID<5000;
       是不是很方便?
三、去掉空格 TRIM
        TRIM 函数用于将字符串里开始和结尾的空格删除。
        语法:TRIM(str)
        描述:返回字符串 str, 开始和结尾的空格被删除。
        例4:SELECT TRIM('  bar   ');
        结果: 'bar'
        语法: LTRIM(str)
        描述:返回字符串 str,其引导空格字符被删除。
        例5:SELECT LTRIM('  barbar');
        结果: 'barbar'
        语法: RTRIM(str)
        描述:返回字符串 str,结尾空格字符被删去。
        例6:SELECT RTRIM('barbar   ');
        结果: 'barbar'
四、字符串的拼接 CONCAT
        CONCAT 函数用来把几个字符串拼接起来。
        语法: CONCAT(str1, str2, ...)                  
        描述:返回str1,str2,...连接产生的字符串。
        例7: SELECT CONCAT('My', 'S', 'QL');
        结果:'MySQL'
        例8:把雇员表里个人的姓和名拼接起来,并且在两值之间放置一个逗号:
        SELECT CONCAT(LAST_NAME, ',', FIRST_NAME) AS name
        FROM EMPLOYEE_TBL; 

    结果:
          

五、转化大小写
    1、转化为大写 UPPER
        语法: UPPER(str)
        描述:把字符串 str 里的小写字母转化为大写。
        例9:把 country 里的 name 转化为大写:
        select name, upper(name) from country;
        结果:
                

     2、转化为小写 LOWER
        语法:LOWER(str)
        描述:把字符串 str 里的大写字母转化为小写。
        例10:把雇员表里的 city 转化为小写:
        select city, lower(city) from employee_tbl;
        结果:
          

六、其它字符串函数
    1、返回子字符串 SUBSTRING
        语法:SUBSTRING(str, pos, len)
        描述:从字符串 str 返回一个长度为 len 的子字符串,起始于位置 pos。 

    例:SELECT SUBSTRING('Quadratically',5,6);
        结果: 'ratica'       
    2、寻找子字符串 INSTR
        INSTR 函数用于在字符串里寻找指定的子字符串,返回其所在的位置。
        语法:INSTR(str,substr)
        描述:返回字符串 str 中子字符串 substr 的第一个出现位置。若 substr 不在 str 中,则返回0。
        例: SELECT INSTR('foobarbar', 'bar');
        结果:4
        例: SELECT INSTR('xbar', 'foobar');
        结果:0
    3、左侧字符串 LEFT
        语法:LEFT(str,len)
        描述:返回字符串 str 最左侧的 len 个字符。

    例: SELECT LEFT('foobarbar', 5);
        结果:'fooba'
    4、右侧字符串 RIGHT
        语法:RIGHT(str,len)
        描述:返回字符串 str 最右侧的 len 个字符。 
        例: SELECT RIGHT('foobarbar', 4);
        结果:'rbar'
    5、左填充 LPAD
        语法:LPAD(str,len,padstr)
        描述:在字符串 str 左侧添加字符串 padstr,使其总长度达到 len。假如 str 的长度大于len, 则返回值被缩短至 len 字符。
        例: SELECT LPAD('hi',4,'??');
        结果: '??hi'
        例: SELECT LPAD('hi',1,'??');
        结果: 'h'
    6、右填充 RPAD
        语法: RPAD(str,len,padstr)
        描述:在字符串 str 右侧添加字符串 padstr,使其总长度达到 len。假如 str 的长度大于 len,则返回值被缩短至 len 字符。
        例: SELECT RPAD('hi',5,'?');
        结果: 'hi???'
        例:SELECT RPAD('hi',1,'?');
        结果: 'h'
    7、ASCII 函数
        语法:ASCII(str)
        描述:返回字符串 str 最左侧字符的 ASCII 码。
        例: ASCII('A') 返回65;
        ASCII('B') 返回66;
        ASCII('C') 返回67;
        ASCII('a') 返回97;
        ASCII('2') 返回50;
        ASCII(2) 返回50;
        ASCII('dx') 返回100。