Mysql函数

1. 数学函数

 

Mysql数学函数
函数 作用
abs(x) 绝对值 abs(-0.5)=0.5
ceil(x),ceiling(x)      大于或等于x的最小整   数                                                        ceil(0.5)=1,ceiling(-0.5)=0
floor(x) 小于或等于x的最大整数 floor(0.5)=0,floor(-0.5)=-1
rand() 0-1的随机数  
rand(x) 0-1的随机数,x值相同时返回的随机数相同                                                                   
sign(x) x的符号(-1,0,1)                       sign(-0.5)=- 1,sign(0)=0,sign(0.5)=1                            
pi() 圆周率(3.141593) pi()=3.141593
truncate(x,y) x保留到小数点后y位的值 truncate(2.55,1)=2.5
round(x) 离x最近的整数 round(2.5)=3,round(2.2)=2
round(x,y) x小数点后y位的值,(四舍五入后) round(2.55,1)=2.6
pow(x,y),power(x,y) x的y次方 power(3,2)=pow(3,2)=9
sqrt(x) x的平方根 sqrt(16)=4
exp(x) e的x次方 exp(2)=7.38905609893065
mod(x,y) x除以y以后的余数 mod(5,2)=1
log(x) 自然对数(以e为底) log(7.38905609893065)=2
log10(x) 以10为底的对数 log10(100)=2
radians(x) 角度转换为弧度 radians(180)=3.141592653589793
degrees(x) 弧度转换为角度 degrees(pi())=180
sin(x) 正弦值 sin(pi()/2)=1
asin(x) 反正弦值 asin(1)=1.5707963267948966
cos(x) 余弦值 cos(0)=1
acos(x) 反余弦值 acos(1)=0
tan(x) 正切值 tan(pi()/4)=0.9999999999999999
atan(x),atan2(x,y) 反正切值 atan(1)=atan2(1)=0.7853981633974483
cot(x) 余切值 cot(1)=0.6420926159343306


2.字符串函数

合并字符串函数 concat_ws(x,s1,s2,...)

!! 各字符串用参数 x 隔开

Mysql函数_第1张图片

填充字符串函数 lpad(s1,len,s2) , rpad(s1,len,s2)

!! lpad(s1,len,s2)函数把字符串 s2 填充到 s1 的开始处,使字符串长度达到 len;

!! rpad(s1,len,s2)函数把字符串 s2 填充到 s1 的结尾处,使字符串长度达到 len;

Mysql函数_第2张图片


3.日期和时间函数

3.1获取当前日期:curdate(),current_date()

     获取当前时间:curtime(),current_time()

     获取当前日期和时间:now(),current_timestamp(),localtime(),sysdate(),localtimestamp()

3.2unix时间戳函数

     以unix时间戳形式返回当前时间:unix_timestamp()

     将时间 d 以unix时间戳形式返回:unix_timestamp(d)

     把unix时间戳的时间转换为普通格式的时间:from_unixtime(d)Mysql函数_第3张图片

3.3返回utc日期:utc_date()

     返回utc时间:utc_time()                     !! utc:Universal Coordinated Time,国际协调时间

Mysql函数_第4张图片

3.4获取月份:month(d),monthname(d)

Mysql函数_第5张图片

3.5获取星期:dayname(d) :Monday,...

                       dayofweek(d) :1(周日),...

                       weekday(d) :0(周一),...

3.6获取星期数:week(d),weekofyear(d)          :d是本年第几周

3.7获取天数:dayofyear(d) :本年第几天

                       dayofmonth(d) :本月第几天

3.8返回日期d中年份值:year(d)

     返回日期d是本年第几季度:quarter(d)

     返回时间t中小时值:hour(t)

     返回时间t中分钟值:minute(t)

     返回时间t中秒钟值:second(t)Mysql函数_第6张图片

3.9返回日期的指定值:extract(type from d)

    type:: year :年份

                month:月份

                day:几号

                hour:小时

                minute:分钟

                second:秒

3.10时间和秒钟转换

       time_to_sec(t)

       sec_to_time(s)

Mysql函数_第7张图片

3.11计算日期和时间

 (1) to_days(d) :日期d与0000年1月1日的天数

      from_days(n):从0000年1月1日开始 n 天后日期

      datediff(d1,d2):日期d1和d2之间相隔的天数

 (2) adddate(d,n) :起始日期 d 加上 n 天的日期

      subdate(d,n) :起始日期 d 减去 n 天的日期

      addtime(t,n) :起始时间 t 加上 n 秒的时间

      subtime(t,n) :起始时间 t 减去 n 秒的时间

 (3)  adddate(d,interval expr type),date_add(d,interval expr type):起始日期d加上一个时间段后日期

       subdate(d,interval expr type) :起始日期d减去一个时间段后日期

        

MYsql日期间隔类型
type 含义 expr形式(时间段长度)
year yy
month mm
day dd
hour hh
minute mm
second ss
year_month 年-月                               yy与mm间用任意符号隔开                                                           
day_hour 日-时 dd与hh间用任意符号隔开
day_minute 日-分 dd与mm间用任意符号隔开
day_second 日-秒 dd与ss间用任意符号隔开
hour_minute 时-分 hh与mm间用任意符号隔开
hour_second 时-秒 hh与ss间用任意符号隔开
minute_second 分-秒 mm与ss间用任意符号隔开
Mysql函数_第8张图片

3.12将日期和时间格式化

   date_format(d,f):按f格式要求显示日期d

   time_format(t,f):按f格式要求显示时间t

   get_format(type,s):根据字符串s获取type类型数据的显示格式

   !! date_format(d,get_format(type,s))


4.条件判断函数

4.1 if(expr,v1,v2) :expr成立,返回v1,否则返回v2

 例:select grade,if(grade>=60,'pass','fail') from student
4.2 ifnull(v1,v2) :若v1不为空,显示v1值,否则显示v2值

 例:select grade,ifnull(grade,‘no grade') from student

 4.3 case函数 
  

4.3.1 case when expr1 then v1

                  [when expr2 then v2 ...]

                  [else vn]

          end 字段

4.3.2 case expr

             when e1 then v1

             [when e2 then v2 ...]

             [else vn]

         end 字段


5.系统信息函数


MYsql系统信息函数
  函数 作用
version()              数据库版本号    
connection_id() 服务器连接数
datebase(),schema()         当前数据库名                                         
user(),system_user(),session_user() 当前用户
current_user(),current_user 当前用户
charset(str) 字符串str的字符集
collation(str) 字符串str的字符排列方式   
last_insert_id() 最近生成的auto_increment值


6.加密函数

6.1 password(str) :主要用来给用户的密码加密,此加密不可逆。

     !! 不能将未加密的密码直接存储到Mysql的user表中

6.2 md5(str) :主要用于对普通的数据加密

6.3 encode(str,pswd_str) :使用字符串pswd_str来加密字符串str.加密的结果是一个二进制数,必须使用blob类型的                                           字段来保存

6.4 decode(crypt_str,pswd_str) :使用字符串pswd_str来为crypt_str解密。

  例:

Mysql函数_第9张图片


7.其他函数

7.1 format(x,n) :将数字x进行格式化,将x保留到小数点后n位(四舍五入)<=>round(x,y)

7.2 ascII(s) :返回字符串s的第一个字符的ASCII码

      bin(x) :返回x的二进制编码

      hex(x) :x的十六进制编码

      oct(x) :x的八进制编码

      conv(x,f1,f2) :将x从f1进制数变成f2进制数

7.3 inet_aton(ip) :将ip地址转换为数字表示

      inet_ntoa(n) :将数字n转换成ip形式

7.4 get_lock(name,time) :定义一个名称为nam、持续时间长度为time秒的锁

      release_lock(name) :解除名称为name的锁

      is_free_lock(name) :是否使用名称为name的锁

7.5 benchmark(count,expr) :将表达式expr重复执行count次,然后返回执行时间

7.6 convert(s using cs) :将字符串s的字符集变成cs

7.7 cast(x as type)和convert(x,type) :将x变成type类型

你可能感兴趣的:(Mysql学习笔记)