zoukankan      html  css  js  c++  java
  • msyql常用函数

    在业务开发中,mysql其实也有很多常用的函数,来方便查询数据。

    有的时候根据业务需要也可以写到存储进程中,但是这是不建议的,因为业务一旦复杂起来存储进程中的sql会越来越长,可读性太差,后期维护起来会很难。

    好了,开始说正题吧。

    字符串相关函数:

    concat(s1,s2,s3,...) --把传入的参数连接成为一个字符串。
       //例如,select concat('aaa','bbb','ccc'),concat('aaa',null);任何字符串与 NULL 进行连接的结果都将是 NULL
    INSERT(str ,x,y,instr) --将字符串 str 从第 x 位置开始,y 个字符长的子串替换为字符串 instr。
       //例如,select insert('beijing2008you',12,3,'me')
    LOWER(str)和 UPPER(str) --把字符串转换成小写或大写
       //例如,select lower('BEIJING');select upper('beijing');
    LEFT(str,x)和 RIGHT(str,x) --分别返回字符串最左边的 x 个字符和最右边的 x 个字符。
       //例如,select left('qwertasd',1);select right('qwertasd',1);如果第二个参数是 NULL,那么将不返回任何字符串。
    LPAD(str,n ,pad)和 RPAD(str,n ,pad) --用字符串 pad 对 str 最左边和最右边进行填充,直到长度为 n 个字符长度。
       //例如,select lpad('2008',20,'beijing');select rpad('2008',20,'beijing')
    LTRIM(str)和 RTRIM(str) --去掉字符串 str 左侧和右侧空格。
       //例如,select ltrim('     |beijing');select rtrim('beijing|      ');
    LTRIM(str)和 RTRIM(str) --去掉字符串 str 左侧和右侧空格。
       //例如,select ltrim('     |beijing');select rtrim('beijing|      ');
    REPEAT(str,x) --返回 str 重复 x 次的结果。
       //例如,select repeat('mysql',3)
    REPLACE(str,a,b) --用字符串 b 替换字符串 str 中所有出现的字符串 a。
       //例如,select replace('beijing_2012','_2012','2008');
    STRCMP(s1,s2) --比较字符串 s1 和 s2 的 ASCII 码值的大小。如果 s1 比 s2 小,那么返回-1;如果 s1 与 s2 相等,那么返回 0;如果 s1 比 s2 大,那么返回 1//例如,select strcmp('a','b'),strcmp('b','b'),strcmp('c','b');
    TRIM(str) --去掉目标字符串的开头和结尾的空格。
       //例如,select trim(' $ beijing2008 $ ');
    SUBSTRING(str,x,y) --返回从字符串 str 中的第 x 位置起 y 个字符长度的字串。
       //例如,select substring('beijing2008',8,4),substring('beijing2008',1,7);

    数组函数:

    ABS(x) --返回 x 的绝对值。
       //例如,select abs(-0.8);
    CEIL(x) --返回大于 x 的最大整数。
       //例如,select ceil(-0.4);select ceil(0.4);
    FLOOR(x) --返回小于 x 的最大整数,和 CEIL 的用法刚好相反。
       //例如,select floor(0.4);
    MOD(x,y) --返回 x/y 的模。和 x%y 的结果相同,模数和被模数任何一个为 NULL 结果都为 NULL。
       //例如,select MOD(15,10),MOD(1,11),MOD(NULL,10);
    RAND() --返回 01 内的随机值。每次执行结果都不一样。
       //例如,select RAND(),RAND();
       //例如,select ceil(100*rand()),ceil(100*rand());
    ROUND(x,y) --返回参数 x 的四舍五入的有 y 位小数的值。如果是整数,将会保留 y 位数量的 0;如果不写 y,则默认 y 为 0,即将 x 四舍五入后取整。适合于将所有数字保留同样小数位的情况。   
      //例如,select ROUND(1.1),ROUND(1.136,2),ROUND(1,2); TRUNCATE(x,y) --返回数字 x 截断为 y 位小数的结果。 //例如,select ROUND(1.235,2),TRUNCATE(1.235,2);
    AVG(str) --取平均值
      //例如,select avg(`amount`) from table where name in('刘亚鹏','李四') and amount > 90;

    日期和时间函数:

    CURDATE() --返回当前日期,只包含年月日。
       //例如,select CURDATE();
    CURTIME() --返回当前时间,只包含时分秒。
       //例如,select CURTIME();
    NOW() --返回当前的日期和时间,年月日时分秒全都包含。
       //例如,select NOW();
    UNIX_TIMESTAMP(date) --返回日期 date 的 UNIX 时间戳。
       //例如,select UNIX_TIMESTAMP(now());
    FROM_UNIXTIME(unixtime) --返回UNIXTIME时间戳的日期值。
       //例如,select FROM_UNIXTIME(1184134516);
    WEEK(DATE)和 YEAR(DATE) --前者返回所给的日期是一年中的第几周,后者返回所给的日期是哪一年。   
      //例如,select WEEK(now()),YEAR(now()); HOUR(time)和 MINUTE(time) --前者返回所给时间的小时,后者返回所给时间的分钟。 //例如, select HOUR(CURTIME()),MINUTE(CURTIME()); MONTHNAME(date) --返回 date 的英文月份名称。 //例如,select MONTHNAME(now()); DATE_FORMAT(date,fmt) --按字符串 fmt 格式化日期 date 值。 //例如 ,select DATE_FORMAT(now(),'%M,%D,%Y'); DATE_ADD(date,INTERVAL expr type) --返回与所给日期 date 相差 INTERVAL 时间段的日期。 //例如,select now() current,date_add(now(),INTERVAL 31 day) after31days,date_add(now(),INTERVAL '1_2' year_month) after_oneyear_twomonth;
    DATEDIFF(date1,date2) --用来计算两个日期之间相差的天数。 //例如,select DATEDIFF('2008-08-08',now());

    流程函数:

    IF(value,t f) --如果 value 是真,返回 t;否则返回 f。
       //例如,select if(salary>2000,'high','low') from salary;
    IFNULL(value1,value2) --如果 value1 不为空返回 value1,否则返回 value2。
       //例如,select ifnull(salary,0) from salary;
    CASE WHEN [value1] THEN[result1]…ELSE[default]END --如果 value1 是真,返回 result1,否则返回 default
      //例如, select case when salary<=2000 then 'low' else 'high' end from salary; CASE [expr] WHEN [value1] THEN[result1]…ELSE[default]END --如果 expr 等于 value1,返回 result1,否则返回 default
      //例如,select case salary when 1000 then 'low' when 2000 then 'mid' else 'high' end from
    salary;

    其他函数:

    DATABASE() --返回当前数据库名。
    VERSION() --返回当前数据库版本。
    USER() --返回当前登录用户名。
    INET_ATON(IP) --返回 IP 地址的网络字节序表示。
    INET_NTOA(num) --返回网络字节序代表的 IP 地址。
    PASSWORD(str) --返回字符串 str 的加密版本,一个 41 位长的字符串。(只可用于密码)
    MD5(str) --返回字符串 str 的 MD5 值,常用来对应用中的数据进行加密。

  • 相关阅读:
    美女程序员是如何将QQ转换成题目中那串数字的--读博文《找女神要QQ号码》
    C#微信开发-微信JS-SDK(1)之通过config接口注入权限验证配置
    AjaxUpload.3.5.js之ASP.NET 文件上传
    web开发常用的js验证,利用正则表达式验证邮箱、手机、身份证等输入
    HNU_结对项目_小初高数学学习软件_功能说明
    转载:alpha测试和beta测试的区别;黑盒测试和白盒测试的区别;
    HNU_个人项目_中小学数学卷子自动生成程序_简要分析HnuLyx代码
    文件与磁盘空间管理---外存分配方式、存储空间管理
    Java程序设计——不一样的开始 IP地址判定
    Java编程思想—八皇后问题(数组法、堆栈法)
  • 原文地址:https://www.cnblogs.com/two-bees/p/11807221.html
Copyright © 2011-2022 走看看