码迷,mamicode.com
首页 > 数据库 > 详细

mysql的常用函数(全)

时间:2015-07-12 20:07:02      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:

一. 使用字符串函数

1. 合并字符串函数CONCAT()和CONCAT_WS()
1.1 函数CONCAT()
CONCAT()函数会将传入的参数连接起来返回所合并的字符串类型数据。如果其中一个参数为NULL,则返回值为NULL。
SELECT CONCAT(My,S,QL) 合并后字符串;

技术分享

SELECT CONCAT(CURDATE(),12.34) 合并后字符串;

技术分享

SELECT CONCAT(My,S,QL,NULL) 合并后字符串;

技术分享

1.2 函数CONCAT_WS()

CONCAT_WS(SEP,S1,S2,…SN)函数与CONCAT()相比,多了一个表示分割符的SEP参数,即不仅将传入的其他参数连接起来,而且还会通过分割符将各个字符串分割开。分隔符可以是一个字符串,也可以是其他参数。如果分隔符为NULL,则返回结果为NULL。函数会忽略任何分隔符参数后的NULL值。

SELECT CONCAT_WS(-,029,88461234) 合并后字符串

技术分享

执行SQL函数CONCAT_WS(),当分割符参数的值为NULL时,具体SQL语句如下:

SELECT CONCAT_WS(NULL,029,88461234) 合并后字符串;

技术分享

执行结果显示,当所传入的第一个参数值为NULL,返回的结果值将为NULL,因此返回结果为NULL。

执行SQL函数CONCAT_WS(),当分割符参数后值存在NULL时,具体SQL语句如下:

SELECT CONCAT_WS(-,029,NULL,88461234) 合并后字符串;

技术分享

执行结果显示,当所传入的参数(除第一个参数外)值中有NULL,返回的结果值将忽略NULL,因此返回结果为029-88461234。

2. 比较字符串大小函数STRCMP()

STRCMP(str1,str2)函数用来比较字符串参数str1和str2,如果参数str1大于str2,则返回结果1;如果参数str1小于str2,则返回结果-1;如果参数str1等于str2,则返回结果0。

SELECT STRCMP(abc,abd),
    STRCMP(abc,abc),
    STRCMP(abc,abb);

技术分享

3. 获取字符串长度函数LENGTH()和字符数函数CHAR_LENGTH()

通过函数LENGTH()和CHAR_LENGTH()获取字符串的长度。LENGTH(str)函数会获取传人的参数str的长度,CHAR_LENGTH(str)函数会获取传人的参数str的字符串。

3.1 函数LENGTH()

SELECT MySQL 英文字符串,LENGTH(MySQL) 字符串字符长度,常建功 中文字符串,LENGTH(常建功) 字符串字符长度

技术分享

由于一个英文字符占一个字节,所以字符串‘MySQL‘的长度为5,由于一个汉字字符占3个字符(有的书说是2个),所以字符串常建功的长度为6。

3.2 函数CHAR_LENGTH()

SELECT MySQL 英文字符串,CHAR_LENGTH(MySQL) 字符串字符长度,常建功 中文字符串,CHAR_LENGTH(常建功) 字符串字符长度

技术分享

字符串‘MySQL‘共有5个字符,但是占有6个字节空间。这是因为每个字符串都会以\0结束,结束符\0也会占用一个字节空间。

4. 实现字母大小写转换函数UPPER()和字符数函数LOWER()
4.1 函数UPPER()和UCASE()函数会将字符串中的所有字母转换成大写字母。
SELECT mysql 字符串,UPPER(mysql) 转换后字符串,UCASE(mysql) 转换后字符串;

技术分享

4.2 函数LOWER()和LCASE()函数会将字符串中的所有字母转换成小写字母。

SELECT MYSQL 字符串,LOWER(MYSQL) 转换后字符串,LCASE(MYSQL) 转换后字符串;

技术分享

5. 查找字符串

5.1 返回字符串位置的函数FIND_IN_SET() 。

通过函数FIND_IN_SET(str1,str2)获取相匹配字符串的位置,该函数会返回在字符串str2中与str1相匹配的字符串的位置,参数str2字符串中将包含若干个用逗号隔开的字符串。

SELECT FIND_IN_SET(MySQL,orcle,sql server,MySQL) 位置;

技术分享

5.2 返回指定字符串位置的函数FIELD()

通过函数FIELD(str,str1,str2…) 获取相匹配字符串的位置。该函数将会返回第一个与字符串str匹配的字符串的位置。

SELECT FIELD(MySQL,orcle,sql server,MySQL) 位置;

技术分享

5.3 返回子字符串相匹配的开始位置

可以通过三个函数获取子字符串相匹配的开始位置,它们分别为函数LOCATE()、POSITION()和INSTR()。

LOCATE(str1,str) 函数将会返回参数str中字符串str1的开始位置。其他两个函数定义如下:POSITION(str1 IN str) INSTR(str,str1)。

SELECT LOCATE(SQL,MySQL) 位置,
POSITION(SQL IN MySQL) 位置,
INSTR(MySQL,SQL) 位置;

技术分享

5.4 返回指定位置的字符串的函数ELT()

通过函数ELT(n,str1,str2…)获取指定位置的字符串,该函数将会返回第n个字符串。

SELECT ELT(1,MySQL,orcle,sql server) 第1个位置的字符串;

技术分享

5.5 选择字符串的函数MAKE_SET()

可以通过函数MAKE_SET(num,str1,str2…strn)获取字符串,该函数首先会将数值num转换成二进制数,然后按照二进制数从参数str1,str2,……,strn中选取相应的字符串。在通过二进制数来选择字符串时,会从右到左的顺序读取该值,如果值为1值选择该字符串,否则将不选择该字符串。

SELECT BIN(5) 二进制数,MAKE_SET(5,MySQL,Oracle,SQL Server,PostgreSQL) 选取后的字符串,
    BIN(7) 二进制数,MAKE_SET(7,MySQL,Oracle,SQL Server,PostgreSQL) 选取后的字符串;

技术分享

6. 从现有字符串中截取子字符串

在MySQL中提供了丰富的函数去实现截取子字符串功能,分别为函数LEFT()、函数RIGHT()、函数SUBSTRING()和函数MID()。

6.1 从左边或右边截取子字符串

LEFT(str,num):返回字符串str中的包含前num个字母(从左边数)的字符串。

RIGHT(str,num):返回字符串str中的包含后num个字母(从右边数)的字符串。

SELECT MySQL 字符串,LEFT(MySQL,2) 前两个字符,RIGHT(MySQL,3) 后三个字符;

技术分享

6.2 截取指定位置和长度子字符串

SUBSTRING(str,num,len):返回字符串str中的第num个位置开始长度为len的子字符串。

MID(str,num,len)

SELECT oraclemysql 字符串,SUBSTRING(oraclemysql,7,5) 截取子字符串,MID(oraclemysql,7,5) 截取子字符串;

技术分享

7. 去除字符串的首尾空格

在MySQL中提供了丰富函数去实现去除字符串空格功能,分别为函数LTRIM()、函数RTRIM()和函数TRIM()。LTRIM(str)去除字符串开始处空格,RTRIM(str)去除字符串结束处空格,TRIM(str)去除字符串首尾空格。

SELECT CONCAT(-,  MySQL,-) 原来字符串,CHAR_LENGTH(CONCAT(-,  MySQL,-)) 原来字符串长度,
CONCAT(-,LTRIM(  MySQL),-) 处理后字符串,CHAR_LENGTH(CONCAT(-,LTRIM(  MySQL),-)) 处理后字符串串长度

技术分享

8. 替换字符串
8.1 使用INSERT()函数
INSERT(str,pos,len,newstr):该函数会将字符串str中的pos位置开始长度为len的字符串用字符串ewstr来替换。如果参数pos的值超过字符串长度,则返回值为原始字符串str。如果len的长度大于原来字符串(str)中所剩字符串的长度,则从位置pos开始进行全部替换。若任何一个参数为NULL,则返回值为NULL。
SELECT 这是MySQL数据库管理系统 字符串,
    INSERT(这是MySQL数据库管理系统,3,5,Oracle) 转换后字符串;

技术分享

执行SQL函数INSERT(),当替换的起始位置大于字符串长度,具体SQL语句如下:

SELECT 这是MySQL数据库管理系统 字符串, CHAR_LENGTH(这是MySQL数据库管理系统) 字符串字符数,
    INSERT(这是MySQL数据库管理系统,16,15,Oracle) 转换后字符串;

技术分享

执行SQL函数INSERT(),当所要替换的长度大于原来字符串中所剩字符串的长度,则从起始位置开始进行全部替换,具体SQL语句如下:

SELECT 这是MySQL数据库管理系统 字符串,CHAR_LENGTH(MySQL数据库管理系统) 剩余字符数,
    INSERT(这是MySQL数据库管理系统,3,15,Oracle) 转换后字符串;

技术分享

8.2 使用REPLACE()函数

REPLACE(str,substr,newstr)):该函数会将字符串str中的子字符串substr用字符串newstr来替换。

SELECT 这是MySQL数据库管理系统 原字符串,
    REPLACE(这是MySQL数据库管理系统,MySQL,Oracle) 替换后字符串;

技术分享

二. 使用数值函数

一. 使用日期函数

一. 使用系统信息函数

mysql的常用函数(全)

标签:

原文地址:http://www.cnblogs.com/longshiyVip/p/4641319.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!