MYSQL数据库与MSSQL对比学习MYSQL的心得(六)--函数
|
副标题[/!--empirenews.page--]
《MYSQL数据库与MSSQL对比学习MYSQL的心得(六)--函数》要点: MYSQL应用数学函数 MYSQL应用1、求余函数MOD(X,Y) MYSQL应用MOD(X,Y)返回x被y除后的余数,MOD()对于带有小数部分的数值也起作用,他返回除法运算后的精确余数 MYSQL应用 SELECT MOD(31,8) MYSQL应用
MYSQL应用2、四舍五入函数TRUNCATE(X,Y) MYSQL应用TRUNCATE(X,Y)返回被舍去至小数点后y位的数字x.若y的值为0,则结果不带有小数点或不带有小数部分. MYSQL应用若y设为负数,则截去(归零)x小数点左边起第y位开始后面所有低位的值. MYSQL应用 SELECT TRUNCATE(1.32,1) MYSQL应用
MYSQL应用TRUNCATE(1.32,1)保留小数点后一位数字,返回值为1.3 MYSQL应用TIPS:ROUND(X,Y)函数在截取值的时候会四舍五入,而TRUNCATE(x,y)直接截取值,并不进行四舍五入 MYSQL应用3、求余函数HEX(X)和UNHEX(X)函数 MYSQL应用有以下的代码可以演示HEX和UNHEX的功能: MYSQL应用
SELECT HEX('this is a test str')
MYSQL应用查询的结果为:746869732069732061207465737420737472 MYSQL应用
SELECT UNHEX('746869732069732061207465737420737472')
MYSQL应用查询的结果为:this is a test str MYSQL应用字符串函数 MYSQL应用计算字符串字符数的函数 MYSQL应用1、CHAR_LENGTH(STR)返回值为字符串str所包含的字符个数.一个多字节字符算作一个单字符 MYSQL应用
SELECT CHAR_LENGTH('DATE')
MYSQL应用
? 2、合并字符串函数CONCAT_WS(x,s1,s2,......) MYSQL应用CONCAT_WS(x,......),CONCAT_WS代表CONCAT with Separator,是CONCAT()函数的特殊形式. MYSQL应用第一个参数x是其他参数的分隔符,分隔符的位置放在要连接的两个字符串之间.分隔符可以是一个字符串,也可以是 MYSQL应用其他参数.如果分隔符为NULL,则结果为NULL.函数会忽略任何分隔符参数后的NULL值. MYSQL应用
SELECT CONCAT_WS('-','1st','2nd','3rd'),CONCAT_WS('-',NULL,'3rd')
MYSQL应用
MYSQL应用CONCAT_WS('-','3rd')使用分隔符‘-'将3个字符串连接成一个字符串,结果为“1st-2nd-3rd”; MYSQL应用CONCAT_WS('-','3rd')因为第二个值为NULL,所以第二个值不会出现在结果里 MYSQL应用3、替换字符串的函数INSERT(S1,X,LEN,S2) MYSQL应用INSERT(S1,S2)函数跟SQLSERVER里的STUFF()函数的功能是一样的,这里不作介绍了 MYSQL应用4、填充字符串的函数LPAD(S1,S2)和RPAD(S1,S2) MYSQL应用LPAD(S1,S2)返回字符串s1,其左边由字符串s2填补到len字符串长度.假如s1的长度大于len,则返回值被缩短至len字符. MYSQL应用LPAD()函数和RPAD()函数功能跟SQLSERVER里的 REPLACE()相似,不过功能更加强大 MYSQL应用
SELECT LPAD('hello',4,'??'),LPAD('hello',10,'??')
MYSQL应用
MYSQL应用字符串“hello”长度大于4,不需要填充,因此LPAD('hello','??')只返回被缩短的长度为4的子串 MYSQL应用字符串“hello”长度小于10,'??')返回结果为“?????hello”,左侧填充“?”,长度为10 MYSQL应用5、RPAD(S1,其右边被字符串s2填补至len字符长度.假如字符串s1的长度大于len,则返回值被缩短到len字符长度 MYSQL应用
SELECT RPAD('hello','?')
MYSQL应用
MYSQL应用?字符串“hello”长度大于4,因此RPAD('hello','?')只返回被缩短的长度为4的子串"hell" MYSQL应用6、删除空格的函数TRIM(S) MYSQL应用TRIM(S)删除字符串s两侧的空格 MYSQL应用MYSQL这里比SQLSERVER方便,SQLSERVER要删除两边的空格,需要使用: SELECT LTRIM(RTRIM(' hello ')) MYSQL应用
SELECT TRIM(' book ')
MYSQL应用
MYSQL应用删除指定字符串的函数TRIM(S1 FROM S) MYSQL应用7、TRIM(S1 FROM S)删除字符串s中两端所有的子字符串s1.s1为可选项,在未指定情况下,删除空格 MYSQL应用
SELECT TRIM('xy' FROM 'xyxboxyokxxyxy')
MYSQL应用
MYSQL应用?'xyxboxyokxxyxy'两端的重复字符串“xy”,而中间的“xy”并不删除,结果为 MYSQL应用xboxyokx MYSQL应用8、重复生成字符串的函数REPEAT(S,N) MYSQL应用这个函数跟SQLSERVER里的REPLICATE()函数是一样的,参数个数都是一样的,这里不作介绍了 MYSQL应用9、比较字符串大小的函数STRCMP(S1,S2) MYSQL应用STRCMP(S1,S2)若所有的字符串均相同,则返回0;若根据当前分类次序,第一个参数小于第二个,则返回-1,其他情况返回1 MYSQL应用
SELECT STRCMP('txt','txt2'),STRCMP('txt2','txt'),STRCMP('txt','txt')
MYSQL应用
MYSQL应用“txt”小于“txt2”,因此 STRCMP('txt','txt2') 返回结果为-1 MYSQL应用STRCMP('txt2','txt')返回结果为1 MYSQL应用“txt”与“txt”相等,因此STRCMP('txt','txt')返回结果为0 MYSQL应用10、匹配子串开始位置的函数 MYSQL应用LOCATE(STR1,STR)、POSITION(STR1 IN STR)、INSTR(STR,STR1)3个函数作用相同,返回子字符串str1在字符串str中的开始位置 MYSQL应用这三个函数跟SQLSERVER里的CHARINDEX()函数功能类似 MYSQL应用
SELECT LOCATE('ball','football'),POSITION('ball' IN 'football'),INSTR('football','ball')
MYSQL应用
MYSQL应用子字符串“ball”在字符串“football”中从第5个字母位置开始,因此3个函数返回结果都为5 MYSQL应用11、返回指定位置的字符串的函数 MYSQL应用ELT(N,字符串1,字符串2,字符串3,...,),若N=1,则返回值为字符串1,若N=2,则返回值为字符串2,以此类推. MYSQL应用若N小于1或大于参数的数目,则返回值为NULL MYSQL应用 SELECT ELT(3,ELT(3,'net','os') MYSQL应用
MYSQL应用由结果可以看到,'3rd')返回第3个位置的字符串“3rd”;指定返回字符串位置超出参数个数,返回NULL MYSQL应用12、返回指定字符串位置的函数FIELD(S,S1,S2,...) MYSQL应用FIELD(S,...)返回字符串s在列表s1,......中第一次出现的位置,在找不到s的情况下,返回值为0. (编辑:网站开发网_安阳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |












