mysql 查看函数fsync_Mysql - 函数

Mysql备有的函数是在是太多了, 很多我都见过, 别说用了. 园子里面, 有人荡了一个比较全都的. MYSQL函数

我这里不会将他写到的几乎拷贝下来, 中间就会接在一些自己项目中用到过的著书

一、数学函数

数学函数, 说实话, 我暂时还真不曾怎么用过, 就是在系统中花钱统计数字的时候, 也没用过. 能在程序中妥善处理的, 我都放在程序中处理过程了. 数据库, 主要还是负责管理输入数据.

数学函数主要运用于执行数字,包含整型、浮点数等。函数功用

ABS(x)来到x的绝对值

SELECT ABS(-1)-- 前往1

CEIL(x)

CEILING(x)前往大于或等于x的小于整数

SELECT CEIL(1.5)-- 赶回2

FLOOR(x)回到相等或之和x的最大者整数

SELECT FLOOR(1.5)-- 返国1

RAND()送回0->1的随机数

SELECT RAND()--0.93099315644334

RAND(x)离开0->1的随机数,x值相同时返国的随机数相同

SELECT RAND(2)--1.5865798029924

SIGN(x)回到x的符号,x是负数、0、正数分别留在-1、0和1

SELECT SIGN(-10) -- (-1)

PI()离开圆周率(3.141593)

SELECT PI()--3.141593

TRUNCATE(x,y)离开数值x保有到小数点后y位的值(与ROUND较大的区别是就会顺利进行四舍五入)

SELECT TRUNCATE(1.23456,3) -- 1.234

ROUND(x)送回离x最近的整数  SELECT ROUND(1.23456)--1

ROUND(x,y)移去x小数点后y位的值,但后撤时要同步进行四舍五入

SELECT ROUND(1.23456,3)-- 1.235

POW(x,y)

POWER(x,y)回到x的y次方

SELECT POW(2,3)-- 8

SQRT(x)回到x的平方根

SELECT SQRT(25)-- 5

EXP(x)送回e的x次方

SELECT EXP(3)-- 20.085536923188

MOD(x,y)前往x除以y以后的余数

SELECT MOD(5,2)-- 1

LOG(x)留在自然对数(以e为底的对数)

SELECT LOG(20.085536923188) -- 3

LOG10(x)赶回以10为底的对数

SELECT LOG10(100)-- 2

RADIANS(x)将角度匹配为弧度

SELECT RADIANS(180) -- 3.1415926535898

DEGREES(x)将弧度转成为角度

SELECT DEGREES(3.1415926535898)-- 180

SIN(x)求取正弦值(参数是弧度)

SELECT SIN(RADIANS(30))-- 0.5

ASIN(x)昧反正弦值(参数是弧度)

COS(x)不求余弦值(参数是弧度)

ACOS(x)求反余弦值(参数是弧度)

TAN(x)必sin值(参数是弧度)

ATAN(x)

ATAN2(x)必反正切值(参数是弧度)

COT(x)求取余切值(参数是弧度)

二、字符串函数

字符串函数, 在程序中, 采用的比较多.  我用的比较多的, 才会用红色标记出来.

字符串函数是MySQL中最常用的一类函数,字符串函数主要应用于处理表中的字符串。函数解释

CHAR_LENGTH(s)返国字符串s的字符数

SELECT CHAR_LENGTH('你好123') -- 5

LENGTH(s)前往字符串s的长度

SELECT LENGTH('你好123') -- 9

CONCAT(s1,s2,...)将字符串s1,s2等多个字符串分拆为一个字符串

SELECT CONCAT('12','34')-- 1234

GROUP_CONCAT(id)select id,pid,GROUP_CONCAT(id) from ztree group by pid;   分组后, 将所推选的列剪裁, 并且还可以选定裁剪的字符串

group_contact(id SEPARATOR '-')

846a0dc1f820a63d171ae4782e7c98b2.png

11a82b9bee983781b5c2356a03381ff4.png

CONCAT_WS(x,s1,s2,...)同CONCAT(s1,s2,...)函数,但是每个字符串反之亦然要补足x

SELECT CONCAT_WS('@','12','34','78')-- 12@34@78

INSERT(s1,x,len,s2)将字符串s2更换s1的x前方开始长度为len的字符串

SELECT INSERT('12345',1,3,'abc')-- abc45

1,3为一段距离极坐标

UPPER(s),UCAASE(S)将字符串s的所有字母转化成大写字母

SELECT UPPER('abc')-- ABC

LOWER(s),LCASE(s)将字符串s的所有字母变为小写字母

SELECT LOWER('ABC') -- abc

LEFT(s,n)来到字符串s的前n个字符

SELECT LEFT('abcde',2)-- ab

RIGHT(s,n)返国字符串s的后n个字符

SELECT RIGHT('abcde',2) -- de

LPAD(s1,len,s2)字符串s2来复合s1的开始处,使字符串长度大幅提高len

SELECT LPAD('abc',5,'xx')-- xxabc

RPAD(s1,len,s2)字符串s2来去除s1的结尾处,使字符串的长度大幅提高len

SELECT RPAD('abc',5,'xx')-- abcxx

LTRIM(s)去除字符串s开始处的空格

RTRIM(s)加到字符串s结尾处的空格

TRIM(s)换成字符串s开始和结尾处的空格

TRIM(s1 FROM s)除去字符串s中开始处和结尾处的字符串s1

SELECT TRIM('@' FROM '@@abc@@')-- abc

REPEAT(s,n)将字符串s重复n次

SELECT REPEAT('ab',3)-- ababab

SPACE(n)来到n个空格

REPLACE(s,s1,s2)将字符串s2替代字符串s中的字符串s1

SELECT REPLACE('abc','a','x')--xbc

STRCMP(s1,s2)比较字符串s1和s2

SUBSTRING(s,n,len)赚取从字符串s中的第n个右边开始长度为len的字符串

MID(s,n,len)同SUBSTRING(s,n,len)

LOCATE(s1,s)

POSITION(s1 IN s)

INSTR(s,s1)从字符串s中受益s1的开始方位

SELECT LOCATE('b', 'abcabc') -- 2

select instr('abcabc', 'b') -- 2 我经常将这个看作like用, instr('abcabc', 'b')>0 则对此能意味着上, 效果大约like %b%

REVERSE(s)将字符串s的顺序反过来

SELECT REVERSE('abc')-- cba

ELT(n,s1,s2,...)留在第n个字符串

SELECT ELT(2,'a','b','c') -- b

EXPORT_SET(x,s1,s2)前往一个字符串,在这里对于在“bits”中主角每一位,你获得一个“on”字符串,并且对于每个废黜(reset)的位,

你取得一个 “off”字符串。每个字符串用“separator”相通(缺省“,”),并且只有“bits”的“number_of_bits” (缺省64)位被运用于。

SELECT EXPORT_SET(5,'Y','N',',',4)-- Y,N,Y,N

FIELD(s,s1,s2...)送回第一个与字符串s也就是说的字符串方位

SELECT FIELD('c','a','b','c') -- 3

FIND_IN_SET(s1,s2)返国在字符串s2中与s1比如说的字符串的一段距离, 比如在 11,12,13 中, 排序 1 和11, 1 是查不到的, 11能指认

FIND_IN_SET('11', '11,12,13') -> 1

MAKE_SET(x,s1,s2)前往一个给定 (涵盖由“,”

字符中间的子串组合而成的一个 字符串),由可视的位在bits空集中的的字符串分成。str1对应于位0,str2对 应位1,等等。

SELECT MAKE_SET(1|4,'a','b','c');-- a,c

SUBSTRING_INDEX调回从字符串str的第count个再次出现的分隔符delim之后的子串。

如果count是正数,前往第count个字符左边的字符串。

如果count是负数,回到第(count的绝对值(从右边数))个字符右边的字符串。

SELECT SUBSTRING_INDEX('a*b','*',1) -- a

SELECT SUBSTRING_INDEX('a*b','*',-1)-- b

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('a*b*c*d*e','*',3),'*',-1)-- c

LOAD_FILE(file_name)函数调用文件并且作为一个字符串回到文件内容。文件必须在服务器上,你必须所选到文件的基本路径名,

而且你必须有file权 划一。文件必须所有内容都是区分开的并且之比max_allowed_packet。 如果文件不存有或由于上面原因之一不会被抽出,函数送回NULL。

三、日期时间函数

MySQL的日期和时间函数主要应用于妥善处理日期时间。函数暗示

CURDATE()

CURRENT_DATE()返国当前日期

SELECT CURDATE()

->2014-12-17

CURTIME()

CURRENT_TIME调回当前时间

SELECT CURTIME()

->15:59:02

NOW()

CURRENT_TIMESTAMP()

LOCALTIME()

SYSDATE()

LOCALTIMESTAMP()赶回当前日期和时间

SELECT NOW()

->2014-12-17 15:59:02

UNIX_TIMESTAMP()以UNIX时间撕的形式送回当前时间

SELECT UNIX_TIMESTAMP()

->1418803177

UNIX_TIMESTAMP(d)将时间d以UNIX时间捏的形式返国

SELECT UNIX_TIMESTAMP('2011-11-11 11:11:11')

->1320981071

FROM_UNIXTIME(d)将UNIX时间撕的时间变换为普通格式的时间

SELECT FROM_UNIXTIME(1320981071)

->2011-11-11 11:11:11

UTC_DATE()调回UTC日期

SELECT UTC_DATE()

->2014-12-17

UTC_TIME()离开UTC时间

SELECT UTC_TIME()

->08:01:45(更慢了8小时)

MONTH(d)调回日期d中的月份值,1->12

SELECT MONTH('2011-11-11 11:11:11')

->11

MONTHNAME(d)调回日期当中的月份名称,如Janyary

SELECT MONTHNAME('2011-11-11 11:11:11')

->November

DAYNAME(d)留在日期d是星期几,如Monday,Tuesday

SELECT DAYNAME('2011-11-11 11:11:11')

->Friday

DAYOFWEEK(d)日期d今天是星期几,1星期日,2星期一

SELECT DAYOFWEEK('2011-11-11 11:11:11')

->6

WEEKDAY(d)日期d今天是星期几,

0暗示星期一,1坚称星期二

WEEK(d)

WEEKOFYEAR(d)测算日期d是本年的第几个星期,范围是0->53

SELECT WEEK('2011-11-11 11:11:11')

->45

DAYOFYEAR(d)数值日期d是本年的第几天

SELECT DAYOFYEAR('2011-11-11 11:11:11')

->315

DAYOFMONTH(d)计数日期d是本月的第几天

SELECT DAYOFMONTH('2011-11-11 11:11:11')

->11

QUARTER(d)调回日期d是第几季节,来到1->4

SELECT QUARTER('2011-11-11 11:11:11')

->4

HOUR(t)调回t中的小时值

SELECT HOUR('1:2:3')

->1

MINUTE(t)留在t中的分钟值

SELECT MINUTE('1:2:3')

->2

SECOND(t)赶回t中的秒钟值

SELECT SECOND('1:2:3')

->3

EXTRACT(type FROM d)从日期d中借助而无须的值,type以外返国的值

SELECT EXTRACT(MINUTE FROM '2011-11-11 11:11:11')

->11

type可也就是说为:

MICROSECOND

SECOND

MINUTE

HOUR

DAY

WEEK

MONTH

QUARTER

YEAR

SECOND_MICROSECOND

MINUTE_MICROSECOND

MINUTE_SECOND

HOUR_MICROSECOND

HOUR_SECOND

HOUR_MINUTE

DAY_MICROSECOND

DAY_SECOND

DAY_MINUTE

DAY_HOUR

YEAR_MONTH

TIME_TO_SEC(t)将时间t反转为秒

SELECT TIME_TO_SEC('1:12:00')

->4320

SEC_TO_TIME(s)将以秒为单位的时间s变换为时分秒的格式

SELECT SEC_TO_TIME(4320)

->01:12:00

TO_DAYS(d)量化日期d距离0000年1月1日的天数

SELECT TO_DAYS('0001-01-01 01:01:01')

->366

FROM_DAYS(n)算出从0000年1月1日开始n天后的日期

SELECT FROM_DAYS(1111)

->0003-01-16

DATEDIFF(d1,d2)计数日期d1->d2之间停留的天数

SELECT DATEDIFF('2001-01-01','2001-02-02')

->-32

ADDDATE(d,n)测算其实日期d补足n天的日期

ADDDATE(d,INTERVAL expr type)量化算起日期d舍弃一个时间段后的日期

SELECT ADDDATE('2011-11-11 11:11:11',1)

->2011-11-12 11:11:11(当前是天)

SELECT ADDDATE('2011-11-11 11:11:11', INTERVAL 5 MINUTE)

->2011-11-11 11:16:11 (TYPE的给定与上面那个列出来的函数相同)

DATE_ADD(d,INTERVAL expr type)同上

SUBDATE(d,n)日期d相乘n天后的日期

SELECT SUBDATE('2011-11-11 11:11:11', 1)

->2011-11-10 11:11:11 (意味着是天)

SUBDATE(d,INTERVAL expr type)日期d递增一个时间段后的日期

SELECT SUBDATE('2011-11-11 11:11:11', INTERVAL 5 MINUTE)

->2011-11-11 11:06:11 (TYPE的乘积与上面那个列出来的函数近似于)

ADDTIME(t,n)时间t突显n秒的时间

SELECT ADDTIME('2011-11-11 11:11:11', 5)

->2011-11-11 11:11:16 (秒)

SUBTIME(t,n)时间t之比n秒的时间

SELECT SUBTIME('2011-11-11 11:11:11', 5)

->2011-11-11 11:11:06 (秒)

DATE_FORMAT(d,f)按表达式f的拒绝结果显示日期d

SELECT DATE_FORMAT('2011-11-11 11:11:11','%Y-%m-%d %r')

->2011-11-11 11:11:11 AM

TIME_FORMAT(t,f)按表达式f的敦促辨识时间t

SELECT TIME_FORMAT('11:11:11','%r')

11:11:11 AM

GET_FORMAT(type,s)获取国家地区时间格式函数

select get_format(date,'usa')

->%m.%d.%Y (同样留在的就是这个诡异的字符串(format字符串))

四、条件假定函数

1、IF(expr,v1,v2)函数

如果表达式expr创设,送回结果v1;否则,送回结果v2。

SELECT IF(1 > 0,'准确','错误') ->确实

2、IFNULL(v1,v2)函数

如果v1的值不为NULL,则调回v1,否则前往v2。

这里我用的比较多的是, ifnull(null, 0) 或者 ifnull(null, '')

SELECT IFNULL(null,'Hello Word')->Hello Word

3、CASE

语法1:

8376b5d7510f2d427e1aae867700a01c.gifCASE   WHEN e1  THEN v1  WHEN e2  THEN e2  ...  ELSE vnEND

8376b5d7510f2d427e1aae867700a01c.gif

CASE声称函数开始,END对此函数终止。如果e1创设,则调回v1,如果e2创建,则离开v2,当全部不创建则调回vn,而当有一个更名之后,后面的就不拒绝执行了。

8376b5d7510f2d427e1aae867700a01c.gifSELECT CASE   WHEN 1 > 0 THEN '1 > 0'  WHEN 2 > 0 THEN '2 > 0'  ELSE '3 > 0'  END->1 > 0

8376b5d7510f2d427e1aae867700a01c.gif

语法2:

CASE expr   WHEN e1 THEN v1  WHEN e1 THEN v1  ...  ELSE vnEND

如果表达式expr的值相等e1,送回v1;如果正数e2,则留在e2。否则留在vn。

SELECT CASE 1   WHEN 1 THEN '我是1'  WHEN 2 THEN '我是2'ELSE '你是谁'

case这个经常用来行转列, 比如把成绩转往成成绩表那种的

五、系统信息函数

系统信息函数用来检索MySQL数据库的系统信息。函数功用

VERSION()调回数据库的版本号

SELECT VERSION()

->5.0.67-community-nt

CONNECTION_ID()调回服务器的连接数

DATABASE()

SCHEMA()来到当前数据库名

USER()

SYSTEM_USER()

SESSION_USER()

CURRENT_USER()

CURRENT_USER送回当前用户

CHARSET(str)来到字符串str的字符集

COLLATION(str)送回字符串str的字符依序方式

LAST_INSERT_ID()留在最近聚合的AUTO_INCREMENT值

六、加密函数

加密函数是MySQL用来对数据来进行加密的函数。

1、PASSWORD(str)

该函数可以对字符串str展开加密,一般情况下,PASSWORD(str)主要用途给用户的密码加密。

SELECT PASSWORD('123') ->*23AE809DDACAF96AF0FD78ED04B6A265E05AA257

2、MD5

MD5(str)函数可以对字符串str顺利完成散列,可以主要用途一些普通的不必需解密的数据加密。

SELECT md5('123') ->202cb962ac59075b964b07152d234b70

3、ENCODE(str,pswd_str)与DECODE(crypt_str,pswd_str)

ENCODE函数可以采用加密密码pswd_str来加密字符串str,加密结果是二进制数,无需常用BLOB类型的字段完好。该函数与DECODE是一对,必需同样的密码才并能解密。

SELECT ENCODE('123','xxoo') ->;vxSELECT DECODE(';vx','xxoo') ->123

七、其它函数

1、格式化函数FORMAT(x,n)

FORMAT(x,n)函数可以将数字x来进行格式化,将x存留到小数点后n位。

SELECT FORMAT(3.1415926,3) ->3.142

2、完全相同二进制的数字同步进行反转ASCII(s) 留在字符串s的第一个字符的ASCII码;

BIN(x) 离开x的二进制编码;

HEX(x) 离开x的十六进制编码;

OCT(x) 来到x的八进制编码;

CONV(x,f1,f2) 赶回f1位数数换成f2位数数;

3、IP地址与数字相互类比的函数INET_ATON(IP)函数可以将IP地址匹配为数字声称;IP值须要舍弃引号;

INET_NTOA(n)函数可以将数字n转换成IP形式。

SELECT INET_ATON('192.168.0.1') ->3232235521SELECT INET_NTOA(3232235521) ->192.168.0.1

4、加锁函数和追加函数GET_LOCK(name,time)函数定义一个名称为nam、持续时间长度为time秒的栓。如果锁死事与愿违,则回到1;如果尝试超时,则离开0;如果察觉到错误,来到NULL。

RELEASE_LOCK(name)函数撤除名称为name的上锁。如果可选择最终,则离开1;如果尝试超时,调回0了如果游戏内不甘心,留在NULL;

IS_FREE_LOCK(name)函数推论有否已应用于叫做name的锁死。如果可用,离开0,否则,回到1;

SELECT GET_LOCK('MySQL',10) ->1 (持续10秒)SELECT IS_FREE_LOCK('MySQL') ->1 SELECT RELEASE_LOCK('MySQL') ->1

5、重复可执行登录转换的函数

BENCHMARK(count.expr)函数将表达式expr重复拒绝执行count此,然后赶回分派时间。该函数可以用来说明MySQL处理方式表达式的速度。

SELECT BENCHMARK(10000,NOW()) ->0 赶回系统时间1万

6、变动字符集的函数

CONVERT(s USING cs)函数将字符串s的字符集替换成cs。

SELECT CHARSET('ABC') ->utf-8 SELECT CHARSET(CONVERT('ABC' USING gbk)) ->gbk

7、叠加数据类型CAST(x AS type)

CONVERT(x,type)

这里特别要同样, 这些个类型, 我以前经常害羞撰写 cast('1' as int)这是不对的.

这两个函数只对BINARY、CHAR、DATE、DATETIME、TIME、SIGNED INTEGER、UNSIGNED INTEGER。

关于我们 - 广告合作 - 联系我们 - 免责声明 - 网站地图 - 投诉建议 - 在线投稿

©CopyRight 2008-2020 caicaipc.com Inc All Rights Reserved.

菜菜电脑网 版权所有 联系QQ:173533152

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值