mysqlのSQL関数

16065 ワード

さんじゅつかんすう
  • ABS:絶対値
  • を取る
  • MOD:取り残し
  • ROUND:四捨五入時指定小数点数
  • SELECT ABS(-1);  #     1
    
    SELECT MOD(22,5);  # 22%5     2
    
    SELECT ROUND(15.43,1); #     15.4
    

    文字列関数
  • CONCAT:複数の文字列を
  • に接続
  • LENGTH:フィールドの長さを計算して、1つの漢字は3つの文字を計算して、アルファベットと数字は1つの文字の
  • を計算します
  • CHAR_LENGTH:すべて1文字
  • として計算
  • LOWER:すべて小文字に変換
  • UPPER:すべて大文字
  • に変更
  • REPLACE:置換文字
  • SUBSTRING:切り取り文字列(文字列、切り取り開始位置、切り取り長)
  • SELECT CONCAT("%","pibigstar"); #     %pibigstar
    SELECT LENGTH("  "); #     6
    SELECT CHAR_LENGTH("  "); #     2
    SELECT LOWER("AB"); #     ab
    SELECT UPPER("ab") #     AB
    SELECT REPLACE("abc","a", "f"); #     fbc
    SELECT SUBSTRING("abc", 1, 2); #     ab
    

    日付関数
  • DATEDIFF:2時間の比較
  • CURRENT_DATE:システムの現在の日付
  • CURRENT_TIME:システム現在時刻
  • CURRENT_TIMESTAMP:システム現在時刻(日付+時間)
  • ECTRACT:具体的な年、月、日
  • を抽出
  • DATE:時刻を返す日付部
  • YEAR:戻り時間の年部分
  • MONTH:戻り時間の月間部分
  • DAY:戻り時間の日数分
  • HOUR:戻り時間の時間部分
  • MINUTE:戻り時間の分部
  • SECOND:戻り時間の秒部分
  • SELECT CURRENT_DATE(); # 2019-06-29
    SELECT CURRENT_TIME(); # 21:44:33
    SELECT CURRENT_TIMESTAMP(); # 2019-06-29 21:44:33
    SELECT EXTRACT(YEAR FROM '2019-06-29'); # 2019
    SELECT DATE('2019-06-29 21:44:33'); # 2019-06-29
    SELECT DAY('2019-06-29 21:44:33');  # 29
    
    #        
    SELECT * FROM user WHERE DATEDIFF(create_at,now())=0
    #        
    SELECT * FROM user WHERE DATEDIFF(create_at,now())=-1
    #         
    SELECT * FROM user WHERE MONTH(create_at)=MONTH(now())
    

    へんかんかんすう
  • CAST:強制データ型変換
  • COALESCE:最初の非Null値
  • を返します.
    SELECT CAST(65.243 AS DECIMAL(8,2)); # 65.24
    SELECT COALESCE(null,null,2,3); # 2
    

    集約関数
  • SUM:求和
  • AVG:平均値
  • を求める
  • MAX:最大値
  • を見つける
  • MIN:最小値(パラメータを受信)
  • を見つける
  • LEAST:複数のフィールドの最小値(複数のパラメータを受信)
  • を見つける.
  • COUNT:カウント
  • SELECT SUM(age) FROM user;
    SELECT AVG(age) FROM user;
    SELECT MAX(age) FROM user;
    SELECT MIN(age) FROM user;
    SELECT COUNT(*) FROM user; #       ,  null
    SELECT COUNT(age) FROM user; #   age null,   
    SELECT COUNT(*) FROM user GROUP BY age;
    SELECT LEAST(end_time,now());
    

    SELECTのクエリでは、キーワードの順序を逆さまにすることはできません.
    SELECT...FROM...WHERE...GROUP BY...HAVING...ORDER BY...LIMIT...
    

    カーソル操作
    
    CREATE PROCEDURE update_attendance()
    BEGIN
        DECLARE s int DEFAULT 0;
        DECLARE id varchar(32);
    	DECLARE name varchar(32);
        --     ,  sql         
        DECLARE report CURSOR FOR SELECT id,name FROM admin_user where sex = '1';
        --                    
        DECLARE CONTINUE HANDLER FOR NOT FOUND SET s=1;
        --     
        open report;
            --            ,  :             ,      sql        
            fetch report into id, name;
            --  s   1,        ,     
            while s<>1 do
                --       
    			UPDATE admin_sex SET user_id = id WHERE name = name;
            --  s  1        ,    
            end while;
        --     
        close report;
    END;