MySQL常用函数

一、数字函数

1).函数的写法:
    1).测试函数时:select 函数名(常量值);
               例如:abs(x):求x的绝对值
            select abs(-1);
    2).应用通常都是计算某个字段:select 函数名(字段名) from 表名;
               例如:abx(字段名):求这个字段的所有值的绝对值
            select abs(price) from product;
2).常用数字函数:
    1).abs(x/字段名):求x/字段的绝对值;
        示例:SELECT pname,ABS(price) FROM product;
    2).ceil(x/字段名):将"x/字段"的值向上取整
        示例:SELECT CEIL(3.4);
              SELECT CEIL(3.8);
              SELECT CEIL(price) FROM product;

    3).floor(x/字段名):将"x/字段"的值向下取整
        示例:SELECT FLOOR(3.4);
              SELECT FLOOR(3.8);
              SELECT FLOOR(price) FROM product;
    4).rand():产生一个0-->1的随机数;
        示例:SELECT RAND();   #每次运行都不一样

    5).rand(x):根据x的值,经过固定的算法产生一个随机数。x的值固定,每次生成的随机数是一样的。
        示例:SELECT RAND(12); #种子相同时,每次运行会得到相同的随机数
              SELECT RAND(price) FROM product;#使用某字段的值做种子
    6).sign(x/字段名):判断"x/字段"的值是正数、0、负数。"x/字段"是正数:返回1
                                                       "x/字段"的值是0:返回0
                               "x/字段"的值是负数:返回-1
        示例:
            SELECT SIGN(-12); #-1
            SELECT SIGN(0);   #0
            SELECT SIGN(24);  #1

            SELECT SIGN(price) FROM product;

二、字符串函数

1).length(x/字段名):求"x/字段"的值的长度(注意:如果是U8编码,每个中文是3个长度)
    示例:
        SELECT LENGTH('abcdefg');
        SELECT LENGTH(pname) FROM product;
2).concat(x1/字段1,x2/字段2,...,xn/字段n):将几个参数的值进行"字符串拼接":
    示例:
        SELECT CONCAT(pname,':',category_id,':',price) FROM product;
3).concat_ws(值/字段,x1/字段1,x2/字段2,...,xn/字段n):使用第一个参数做"分隔符"拼接后续的其它字符串/字段的值。
    示例:
        SELECT CONCAT_WS(':','aaa','bbb','ccc');
        SELECT CONCAT_WS(':',pname,category_id,price) FROM product;
4).insert(s1,x,len,s2) : 将字符串s2替换s1的x位置开始长度为len的字符串
    示例:
        SELECT INSERT('jfkdja',1,12,'abc');
        SELECT INSERT(pname,1,1,'*') FROM product;
5).left(s,n):返回字符串s的前n个字符
    示例:
        SELECT LEFT(pname,1) FROM product;
6).lpad(s1,len,s2):字符串s2来填充s1的开始处,使字符串长度达到len
    示例:
        SELECT LPAD('abc',0,'xx') -- xxabc
7).trim(s):去掉s两端的空格。
    示例:
        去掉字符串s开始和结尾处的空格

三、日期和时间函数

1).获取当前日期
    示例:
        INSERT INTO product VALUES(NULL,'宝马',28,NULL,CURDATE());
2).获取当前系统时间
    示例:
        SELECT CURTIME();
3).获取当前日期和时间
    示例:
        SELECT NOW();
4).获取日期中的月份值
    示例:
        SELECT * FROM product WHERE MONTH(prodate) = 9;
5).获取星期值
    示例:
        SELECT WEEKDAY(NOW());//0-星期一,1-星期二...
6).将"天"加上指定的值
    示例:
        SELECT ADDDATE('2017-10-01',-31)
7).格式化日期
    示例:
        SELECT DATE_FORMAT(NOW(),'%Y年%m月%d日 %h:%i:%s')

四、条件判断函数

1).if()函数:
    示例:
        SELECT IF(prodate > '2017-10-01' ,'早期','晚期') FROM product;
2).填充NULL:
    示例:
        SELECT IFNULL(category_id,'未填') FROM product;#如果category_id字段为null,使用第二个参数填充;否则显示category_id的原值;
3).多重判断:case语句
    示例:#1000(不含)以下的打印:便宜;1000--3000(包含)打印:价格合理;高于3000元打印:贵
            SELECT pname,CASE WHEN price < 1000 THEN '便宜'
                  WHEN price >= 1000 AND price <= 3000 THEN '价格合理'
                  WHEN price > 3000 THEN '贵'
                  ELSE '错误的价格'
                 END AS '价格' ,price FROM product;
4).判断一个表达式的多个可能的值的结果:
    示例:
        SELECT pname,CASE price 
                WHEN 1000 THEN '1千元'
                WHEN 2000 THEN '2千元'
                WHEN 3000 THEN '3千元'
                WHEN 4000 THEN '4千元'
                WHEN 5000 THEN '5千元'
                ELSE '非整千价格'
                 END AS '判断',price FROM product;

五、系统信息函数

1).获取系统的版本号
    示例:
        SELECT VERSION();

2).返回服务器的连接ID
    示例:
        SELECT CONNECTION_ID();

3).返回当前数据库名
    示例:
        SELECT DATABASE();
4).返回当前用户
    示例:
        SELECT USER();

六、加密函数

1).password(str)函数:
    示例:
        SELECT PASSWORD(pname) FROM product;
2).MD5(str)函数:
    示例:
        SELECT MD5(pname) FROM product;
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,367评论 6 512
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,959评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,750评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,226评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,252评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,975评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,592评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,497评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,027评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,147评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,274评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,953评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,623评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,143评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,260评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,607评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,271评论 2 358

推荐阅读更多精彩内容