MySql

来源:互联网 发布:淘宝新品上架 手机 编辑:程序博客网 时间:2024/05/06 08:50

本篇博文记录MySql常用函数与应用实例。


【1】字符串拼接函数

  • 将字符串直接拼接起来;
CONCAT(str1,str2,...)

Navicat 实例:

select * from tb_user where user_name like CONCAT('%','演示','%')

【2】添加分隔符的字符串拼接函数

  • 将字符串通过分隔符拼接起来;
CONCAT_WS(separator,str1,str2,...)

Navicat 实例:

select CONCAT_WS(',','123456','45','9')

这里写图片描述


【3】格式化函数

  • 不只是格式化日期!
CONVERT(expr,type);orCAST(expr AS type)//二者功能相似

The type can be one of the following values :

 BINARY[(N)] CHAR[(N)]  DATE   DATETIME  DECIMAL   SIGNED [INTEGER]  TIME   UNSIGNED [INTEGER]

Navicat 实例:

 select    CONVERT(SYSDATE(),datetime) as datetime , CONVERT(SYSDATE(),date) as date from dual;

这里写图片描述

select cast(now() as char);select cast((1/3)*100 as UNSIGNED) as percent from dual;--result will be 33

这里写图片描述


【4】带编码的格式化函数

`CONVERT`(expr USING transcoding_name)

Navicat 实例:

select CONVERT('duifek' USING 'utf8')

【5】字符串转日期

STR_TO_DATE(str,format)

Navicat 实例:

select   STR_TO_DATE('2012-02-02 12:12:12','%Y-%m-%d') as date ,  STR_TO_DATE('2012-02-02 12:12:12','%Y-%m-%d %H:%i:%s') as datetime   from dual;

这里写图片描述


【6】日期格式化

  • 日期格式化专用函数
DATE_FORMAT(date,format)
  • Navicat 实例:
select DATE_FORMAT(SYSDATE(),'%Y-%m-%d') as date,DATE_FORMAT(SYSDATE(),'%Y-%m-%d %H:%i:%s') as datetimefrom dual;

这里写图片描述


【7】字符串截取

点击查看字符串截取函数


【8】查看字符串字符集

  • 语法格式如下
charset(str);
  • Navicat 实例:
select CHARSET("中国");

这里写图片描述


【9】查看字符串字节长度

  • 语法格式如下
length(str);

【10】查看字符串字符长度

  • 语法格式如下
cha_length(str);

【11】判断字符串是否包含某个字符串

  • 语法格式如下
INSTR (string ,substring ) 
  • 示例如下:

这里写图片描述
|
返回substring首次在string中出现的位置,不存在返回0。


【12】字符串比较函数

字符串比较是逐字符比较,不区分大小写。

select STRCMP ("中国你好" ,"中国你好" ) ;

相等返回0;大于返回 1 ;小于 返回 -1 。


【13】lpad (str ,length ,pad )

左填充,将字符串按照某个指定的填充方式,填充到指定长度(字符,即中英无关)。

即,重复用pad加在string开头,直到字串长度为length。

 select  lpad ('hello' ,11 ,'ar' ),lpad ('hello' ,11 ,'国' );

这里写图片描述

同样存在的还有右填充,rpad (string2 ,length ,pad ),其他说明同上。


【14】LCASE(string)

将字符串转换为小写。

 select  LCASE('ABC'),LCASE('abcd'),LCASE('abDEd')

这里写图片描述

将字符串转换成大写如下:

select ucase(' abc '),UCASE('aBC')

这里写图片描述


【15】去除字符串两端空格

只能去掉两端,不能去掉中间。

SELECT TRIM(' a b c ');orSELECT trim(' ' FROM ' a b c ');

这里写图片描述


【16】去除字符串所有空格

语法格式如下:

`REPLACE`(str,from_str,to_str);-- 不只是可以去掉所有空格,replace函数意思用指定to_str替换掉字符串中所有的from_str.

示例如下:

SELECT replace(' a b c ',' ','');

这里写图片描述


【17】去除左端空格

语法格式如下:

LTRIM(str)

示例如下:

select ltrim(' abc ');

这里写图片描述

去除右端空格同上,rtrim(' abc ')

于此,也可实现去除字符串两端空格。

 select RTRIM(LTRIM(' abc ')); or  select LTRIM(RTRIM(' abc '));

同样的问题,不能去除字符串内部的空格。


【18】去除指定位置字符串。

TRIM([[BOTH|LEADING|TRAILING] [str]FROM]string);

both : 从字符串两端去除指定str;
leading:从左(前)端去除指定str;
trailing:从右(后)端去除指定str;

both:

SELECT trim(both ' ' FROM ' a b c ');SELECT RTRIM(LTRIM(' a b c '));SELECT trim(' a b c ');

这里写图片描述

leading

SELECT TRIM(LEADING ' ' FROM ' a b c '),LTRIM(' a b c ');

这里写图片描述

trailing

SELECT TRIM(trailing ' ' FROM ' a b c '),RTRIM(' a b c ');

这里写图片描述


【19】LOCATE (substr,str[,position])

从指定位置开始判断字符串中是否存在某个字符串,默认从index=1(第一位)开始查找。

若有,返回index;若无,返回 0。

select LOCATE('abc','abcagabcde'),LOCATE('abc','abcagabcde',2);

这里写图片描述


【20】REPEAT(str,count )

将字符串重复count次。

select REPEAT('abc',3)

这里写图片描述


【21】space(count)

生成count个空格。

SELECT concat('abc',repeat(' ',3),'d',SPACE(0));

这里写图片描述


【22】LOAD_FILE(fileName)

读取指定路径下的文件到内存。

SELECT LOAD_FILE('D:/temDirectory/backup.txt') ;

这里写图片描述


【23】insert(str,pos,len,newstr)

select insert('abcdefg',3,3,'中国人好'),-- 从index开始的三个字符被newstr替换insert('abcdefg',30,3,'中国人好'),-- index大于字符串长度,返回原字符串insert('abcdefg',3,30,'中国人好'),-- 从index开始的所有字符被newstr替换insert('abcdefg',null,3,'中国人好'),-- index 为null 返回null insert('abcdefg',3,null,'中国人好'),-- pos 为null 返回nullinsert('abcdefg','',3,'中国人好'),-- 无index 返回原字符串insert('abcdefg','','','中国人好'),-- 无index 无pos 返回原字符串insert('abcdefg',3,'','中国人好');-- 从index开始的位置插入newstr

这里写图片描述

0 0
原创粉丝点击