=========================================== mysql 相关函数 =================================================

===========================================  数学函数  =====================================================

绝对值函数    abs()
圆周率函数    PI()
开平方根函数   sqrt()
求余函数    mod(x, y)  返回x除以y的余数
获取整数的函数   ceil(x), ceiling(x), 向上取整, floor(x) 向下取整
获取随机数的函数  rand(), 产生0-1之间的随机小数   rand(x),相同参数x获取的随机数相同,不同则不同
round(x), 返回最接近x的整数, round(x, y), 四舍五入,保留y位小数, truncate(x, y), 截取操作,保留y位小数
符号函数  sign(x), 返回x的符号, 0则返回0, -2放回-1
幂函数 pow(x, y) , power(x, y),返回x的y次方, exp(3) ,返回e的三次方
对数运算函数  log(x), log10(x)
角度与弧度相互转换的函数  radians(180) = 3.14   degrees(pi()) = 180
round(sin(pi())) = 0  cos(0) = 1   round(tan(pi()/4)) = 1

===========================================  字符串函数  ===================================================

计算字符串长度函数   char_length("date") = 4     length("张波")  = 6 返回字节长度  一个汉字三个字节
合并字符串函数       concat('my sql', '5.7') = 'my sql5.7'  concat_ws('-', '1', '2', '3') = '1-2-3'
替换字符串函数     insert(s1, x, len, s2)
字母大小写转换的函数  lower('BEAUTIFUL')=beautiful, lcase('Z') = z, upper('black')=BLACK, ucase('z')=Z
获取指定长度的字符串函数    left('foot', 2)=fo , right('foot', 2)=ot
填充字符串函数       lpad('she', 2, '??')= sh, lpad('she', 4, '??')= ?she,
                   rpad('she', 2, '??')= sh, rpad('she', 4, '??')= she?,
删除空格的函数       ltrim(' b ')='b '   rtrim(' b ')=' b'       trim(' b ')='b'
删除指定字符串函数  trim('xy' from 'xysxyxxy')= 'sxys'  删除两端的xy
重复生成字符串函数   repeat('my', 3)='mymymy'
空格函数    space(n)  返回n哥空格组成的字符串
替换函数    replace('xxxx.mysql.com', 'x', 'w')='www.mysql.com'
比较字符串大小的函数   strcmp('a', 'as') = -1   strcmp('as', 'as') = 0   strcmp('as', 'a') = 1
获取子串的函数    substring(s,n,len) 返回起始位置n,长度为len的子串  mid(s, n, len)和前面函数返回结果一样
获取子串开始位置的函数  locale('ball', 'football')=5  position('ball' in 'football')=5  insert('football', 'ball')=5
字符串逆序的函数     reverse('abc') = 'cba'
获取指定位置的字符串的函数   elt(3, '1', '2', '3')='3'   elt(4, '1', '2', '3')=null
                        field('hi', 'hihi', 'hi', 'h') = 2     field('hi', 'hihi', 'h') = 0
获取子串位置的函数     find_in_set('hi', 'hihi, hi, h')=2
选取字符串的函数       make_set(x, s1, s2)  跟二进制有关系  有点复杂  请读者自行验证

==========================================  日期和时间函数   =================================================

获取当前日期和时间的函数  curdate() = '2018-08-10'   current_date() = '2018-08-10'   curdate() + 0 = 20180810   返回数值型
                      current_timestamp() = localtime() = now() = sysdate() = '2018-08-10 23:33:33'
unix时间戳函数  unix_timestamp() = unix_timestamp(now()) = 1533915373  from_timestamp('1533915373') = '2018-08-10 23:33:33'
utc日期函数和utc时间函数   utc_date() = '2018-08-10'     utc_date() + 0 = '20180810'
                        utc_time() = '23:33:33'       utc_time() + 0 = '233333.000000'
获取月份的函数   month('2018-08-10') = 8    monthname('2018-08-10') = August
获取星期的函数   dayname('2018-08-12')=sunday    dayofweek('2018-08-12')=1   weekday('2018-08-12')=6
获取星期数的函数  week('2018-08-12')  weekofyear(d)    返回某天在一年中的第几周   用的不多吧   详情请看书
返回一年中的第几天  dayofyear('2016-02-20')=51     dayofmonth('2016-02-20')=20  返回一个月中的第几天
返回指定日期对应的年份  year('11-02-03')=2011   00-69   -   2000-2069
返回对应的季度  quarter('2018-04-01')=2       minute('16-02-03 10:10:11')=10  返回对应的分钟值
返回指定时间的秒数    second('16-02-03 10:10:11')=11
获取日期指定值得函数   extract('year from '2016-02-03') = 2016    extract('year_month from '2016-02-03') = 201602
                    extract('day_minute from '2016-02-03 10:10:22') = 031010
时间秒针转换函数   time_to_sec('23:23:00')=84180   23 * 3600 + 23 * 60 + 0 = 84180
                sec_to_time 与上面互为反函数
计算时间和日期的函数  date_add('2010-12-31 23:59:59', interval 1 second) = 2011-01-01 00:00:00
                   adddate('2010-12-31 23:59:59', interval 1 second) = 2011-01-01 00:00:00
                   date_add('2010-12-31 23:59:59', interval '1:1' minute_second) = 2011-01-01 00:01:00
                   date_sub 和 subdate是上面函数的反函数
                   addtime('2010-12-31 23:59:59', '1:1:1') = 2011-01-01 01:01:00   subtime()  是反函数
返回两个日期之间的间隔天数  datediff(date1, date2) = date1 - date2
日期和时间格式化函数       date_format('2018-08-12 14:12:12', '%W %M %Y') = sunday August 2018
格式化请参阅书本157页  太多了  还有time_format(date, '%x')

================================= 条件判断函数,系统信息函数, 加/解密函数,其他函数 ====================================

条件判断函数 if(expr, v1, v2)  如果expr为真 返回v1, 为假返回v2  if(1>2, 2, 3) = 3
           ifnull(v1, v2)  v1不为null  返回v1 否则返回v2  ifnull(1, 2) = 1    ifnull(null, 10) = 10
           case expr when v1 then r1 [when v2 then r2] [else rn] end
           expr = vn 则返回对应的then后面的rn值, 否则返回end
           case when v1 then r1  when v2 then r2 else rn  vn为true则返回对应then后面的rn

系统信息函数  version()  查看mysql的版本号 5.7.10    connection_id()  查看mysql服务器当前连接次数
            show processlist  当前用户连接信息  这个可以用到哦  特别是查看 mysql账号的时候   ***********重点关注**********
            书上面有各个字段名的解释  不懂得可以参考一下    162页
            show database() , show schema()  查看当前数据库  返回mysql
            show user(), current_user(), system_user()   查看用户名
获取字符串的字符集和排列方式的函数  charset('abs') = utf8   charset(convert('abs' using latin1)) = latin1
            collation()  返回字符串排列方式   latin2_general_ci   utf8_general_ci
查看最后一次插入生成的生成的第一个ID  last_insert_id()

加密函数     password(str)  MD5(str) encode(str, pswd_str) 使用pswd_str加密str
解密函数     decode(encode(str, pswd_str), pswd_str) = str
格式化函数   format(x, n) format(12.3456, 2) = 12.34  format(12.3456, 6) = 12.345600  保留小数点位指定值  **重点关注**
不同进制的数字进行转换到的函数    conv(n, form_base, to_base)   详情请看书   168
IP地址与数字相互转换的函数       inet_aton('209.207.224.40') = 3520061480  字符串网络地址转换成数值网络地址
加锁函数和解锁函数     get_lock(str, timeout)  get_lock('lock1', 10)   = 1 加锁成功  0 加锁失败
                    is_used_lock(str)       is_used_lock('lock1')  = 1 正在被使用
                    is_free_lock(str)       is_free_lock('lock1')  = 0 正在被使用
                    release_lock(str)       release_lock('lock1')  = 1 解锁成功
重复执行指定操作函数   benchmark(count, expr)     expr函数执行count次
改变字符集的函数       charset(convert('abs' using latin1)) = latin1
改变数据类型的函数     case(x, as type), convert(x, type)     意思显而易见
                    case(100, as char(2)) = 10
                    convert('2018-08-12 15:22:23', time)   =  15: 22: 23  这是一个美好的周末  听着朴树的空帆船(很好听的歌哦)

=========================================== mysql 相关函数 结束 =================================================