ホームページ > データベース > mysql チュートリアル > 【MySQL 09】よく使う関数

【MySQL 09】よく使う関数

黄舟
リリース: 2017-02-04 13:25:32
オリジナル
1055 人が閲覧しました

1. 数学関数

  • ABS(x)はxの絶対値を返します

  • BIN(x)はxの2進数を返します(OCTは8進数を返し、HEXは16進数を返します)

  • CEILING(x) x

  • EXP(x) より大きい最小の整数値 e (自然対数の底) の x 乗を返します

  • FLOOR(x) x

    より小さい最大の整数値を返します
  • GREATEST( x1,x2,…,xn) セット内の最大値を返します

  • LEAST(x1,x2,…,xn) セット内の最小値を返します

  • LN(x) x の自然対数 LOG( x,y) は x の y の底の対数を返します

  • MOD(x,y) は x/y の法 (剰余) を返します PI() は pi (pi) の値を返します

  • RAND() 0 から 1 までのランダムな値を返します。パラメーター (シード) を指定することで、RAND() 乱数ジェネレーターに指定された値を生成させることができます。

  • ROUND(x,y)は、小数点以下y桁のパラメータxの四捨五入した値を返します

  • SIGN(x)は、数値を表す符号の値を返します 平方根

  • TRUNCATE(x,y)数値 x を小数点以下 y 桁に切り捨てた結果を返します

  • 2. 集計関数

AVG(col) は指定された列の平均を返します

  • MIN(col) 指定された列の最小値を返します

  • MAX(col) 指定した列の最大値を返す

  • SUM(col) 指定した列のすべての値の合計を返す

  • GROUP_CONCAT(col) どれか一つに属する値を返すグループのカラム値を連結した結果

  • 3.文字列関数

ASCII(char)は文字のASCIIコード値を返しますBIT_LENGTH(str)は文字列のビット長を返します

  • CONCAT(s1 ,s2…,sn) s1,s2…,sn を文字列に連結します

  • CONCAT_WS(sep,s1,s2…,sn) s1,s2…,sn を文字列に連結し、sep で区切ります文字

  • INSERT(str,x,y,instr) は、x 番目の位置から始まる y 文字の長さの文字列 str の部分文字列を文字列 instr に置き換え、結果を返します

  • FIND_IN_SET(str, list) カンマ区切りを分析します リストのリスト、str が見つかった場合は、リスト内の str の位置を返します

  • LCASE(str) または LOWER(str) 文字列 str 内のすべての文字を小文字に変更した結果を返します

  • LEFT(str, x) 文字列の左端の x 文字を返します str

  • LENGTH(s) 文字列の文字数を返します str

  • LTRIM(str) 文字列 str

  • から先頭のスペースを切り取ります

    POSITION(substr,str) 文字列 str

  • QUOTE(str) 内で最初に出現する部分文字列 substr の位置を返します。 str

  • REPEAT(str,srchstr , rplcstr) 内の単一引用符をエスケープするにはバックスラッシュを使用します。文字列 str を繰り返した結果を返します

  • RTRIM(str) は文字列 str の末尾のスペースを返します
  • STRCMP(s1,s2) は文字列 s1 と s2 を比較します
  • TRIM(str) はすべてのスペースを削除します文字列
  • の先頭と末尾で UCASE(str) または UPPER(str) は、文字列 str 内のすべての文字を大文字に変換した結果を返します
  • 4. 日付と時刻の関数
  • CURDATE( ) または CURRENT_DATE() は現在の日付を返します
  • CURTIME() または CURRENT_TIME() は現在の時刻を返します
  • DATE_ADD(date,INTERVAL int キーワード) は日付と間隔時間の結果を返します int (int はフォーマットする必要があります)キーワードに従って)、例: SELECTDATE_ADD( CURRENT_DATE,INTERVAL 6 MONTH);

    DATE_FORMAT(date,fmt) は、指定された fmt 形式に従って日付値をフォーマットします
  • DATE_SUB(date,INTERVAL int キーワード)日付と間隔時間の結果を int で返します (int はキーワードに従ってフォーマットする必要があります)。例: SELECTDATE_SUB(CURRENT_DATE,INTERVAL 6 MONTH);
  • DAYOFWEEK(date) は曜日 (1 ~ 7) を返します。 date
  • で表されます。 DAYOFMONTH(date) は、date に対して月の日 (1 ~ 31) を返します。 DAYOFYEAR(date) は、date に対して年間の日 (1 ~ 366) を返します。週の名前 (例: SELECT DAYNAME(CURRENT_DATE);
  • FROM_UNIXTIME(ts,fmt) 指定された fmt 形式に従って、UNIX タイムスタンプ ts
  • HOUR(time) をフォーマットし、時の値を返します時間の値(0~23)を返します
  • MINUTE(time)は時間の分の値を返します(0~59)
  • MONTH(date)は日付の月の値を返します(1~12)
  • MONTHNAME (date) は、次のような日付名の月を返します。 SELECT
  • MONTHNAME(CURRENT_DATE);
  • NOW() は、現在の日付と時刻を返します
  • QUARTER(date) は、四半期 (1~) を返します4) SELECT QUARTER(CURRENT_DATE);
  • WEEK(date) など、年の日付の日付をその年の週 (0~53) として返します
  • YEAR(date) date の年を返します (1000~9999) いくつかの例: 現在のシステム時刻を取得します:

  • SELECT FROM_UNIXTIME(UNIX_TIMESTAMP());

  • SELEC TEXTRACT(YEAR_MONTH FROM CURR) ENT_DATE) ;

  • SELECT EXTRACT(DAY_SECOND FROM CURRENT_DATE);

  • SELECT EXTRACT(HOUR_MINUTE FROM CURRENT_DATE);

  • 2 つの日付値の差 (月数) を返します:

  • PERIOD_DIFF を選択(200302,199802)

  • Mysql で年齢を計算します:

  • SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW())-TO_DAYS(誕生日)),'%Y')+0 AS 年齢FROM社員;

  • このように、Brithdayを未来の年月日とすると、計算結果は0になります。

  • 次の SQL ステートメントは、従業員の絶対年齢を計算します。つまり、誕生日が将来の日付である場合、負の値が取得されます。

  • SELECT DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(誕生日, '%Y') -(DATE_FORMAT(NOW(), '00-%m-%d')

5、暗号化関数

  • AES_ENCRYPT(str,key): キー key を使用して Advanced Encryption Standard アルゴリズムを使用して文字列 str を暗号化した結果を返します。AES_ENCRYPT を呼び出した結果は、BLOB 型

  • に格納されたバイナリ文字列です。

    AES_DECRYPT(str,key) は、キー key を使用して Advanced Encryption Standard アルゴリズムを使用して文字列 str を復号化した結果を返します

  • DECODE(str,key): 暗号化された文字列 str を復号化するためのキーとして key を使用します

  • ENCRYPT (str, Salt): UNIXcrypt() 関数を使用し、キーワード Salt (キーと同様にパスワードを一意に決定できる文字列) を使用して文字列 str

  • ENCODE (str, key) を暗号化します。キーをパスワードとして使用します。キーは文字列 str を暗号化します。ENCODE() を呼び出した結果はバイナリ文字列であり、

  • MD5() は文字列 str の MD5 チェックサムを計算します。

  • PASSWORD(str) は、str の暗号化されたバージョンの文字列を返します。この暗号化プロセスは元に戻すことができず、UNIX パスワード暗号化プロセスとは異なるアルゴリズムを使用します。
  • SHA() は、パスワードのセキュア ハッシュ アルゴリズム (SHA) チェックサムを計算します。文字列 str
  • 例:
  • SELECT ENCRYPT('root','key');

    SELECT DECODE('xufeng','key'); 'key');
    #復号化をまとめます
    SELECT AES_ENCRYPT('root','key');
    SELECT MD5('123456) ');
    SELECT SHA( '123456');



    6. 制御フロー関数

  • MySQL には、条件付き演算のための 4 つの関数があり、開発者は一部のアプリケーション ビジネス ロジックをデータベースに変換できます。バックステージ。

MySQL 制御フロー関数:

  • CASE WHEN[test1] THEN [result1]…ELSE [デフォルト] END

    testN が true の場合は resultN を返し、それ以外の場合はデフォルトを返します

  • CASE [test ] WHEN[val1] THEN [result]…ELSE [default]END

  • testとvalNが等しい場合はresultNを返し、それ以外の場合はdefaultを返す

  • IF(test,t,f) testがtrueの場合はreturn t; それ以外の場合は f

  • IFNULL(arg1,arg2) を返します arg1 が空でない場合は arg1 を返し、それ以外の場合は arg2 を返します

  • NULLIF(arg1,arg2) arg1=arg2 の場合は NULL を返し、それ以外の場合は arg1 を返します

  • これらの関数の最初の関数は IFNULL() で、2 つのパラメーターを受け取り、最初のパラメーターを評価します。最初のパラメータが NULL でない場合、関数は最初のパラメータを呼び出し元に返します。NULL の場合は 2 番目のパラメータが返されます。

  • 例: SELECT IFNULL(1,2), IFNULL(NULL,10),IFNULL(4*NULL,'false'); NULLIF() 関数は、指定された 2 つのパラメーターが等しいかどうかを確認します。等しい場合は NULL が返され、等しくない場合は最初のパラメータが返されます。

  • 例: SELECT NULLIF(1,1),NULLIF('A','B'),NULLIF(2+3,4+1);

  • および多くのによって提供されるIF()関数スクリプト言語 同様に、MySQL の IF() 関数にも単純な条件テストを作成できます。この関数には 3 つのパラメータがあり、式が true の場合は IF() が 2 番目のパラメータを返します。 , IF() は 3 番目のパラメータを返します。

  • 例: SELECTIF(1100,'true','false');

  • IF() 関数は、考えられる結果は 2 つあります。ただし、現実の世界では、条件付きテストで複数の分岐が必要になる場合があります。この場合、MySQL は CASE 関数を提供します。これは、PHP および Perl 言語の switch-case 条件付きルーチンと同じです。

  • CASE 関数の形式はやや複雑で、通常は次のようになります: CASE [評価される式] WHEN [val 1] THEN [結果 1] WHEN [val 2] THEN [結果 2] WHEN [val 3] THEN [result 3] ... WHEN [val n] THEN [result n] ELSE [default result] END

  • ここで、最初のパラメータは判定対象の値または式であり、次のパラメータは一連の WHEN- THEN ブロック。各ブロックの最初のパラメーターは比較する値を指定し、true の場合は結果が返されます。すべての WHEN-THEN ブロックは ELSE ブロックで終了し、END がすべての外側の CASE ブロックを終了する場合、先行する各ブロックが一致しない場合は、ELSE ブロックで指定されたデフォルトの結果が返されます。 ELSE ブロックが指定されておらず、すべての WHEN-THEN 比較が false の場合、MySQL は NULL を返します。

  • CASE 関数には、次のような別の構文があり、非常に便利に使用できることがあります: CASE WHEN [条件テスト 1] THEN [結果 1] WHEN [条件テスト 2] THEN [結果 2] ELSE [デフォルトの結果] END この場合、返される結果は、対応する条件テストが true かどうかによって異なります。

  • 例:

  • mysql>SELECT CASE 'green' WHEN 'red' THEN 'stop' WHEN 'green' THEN 'go' END;

  • SELECT CASE 9 WHEN 1 THEN 'a' WHEN 2 THEN 'b' ELSE 'N/A' END; SELECT CASE WHEN (2+2)=4 THEN 'OK' WHEN(2+2)<>4 THEN 'not OK' END ASSTATUS;

  • SELECT Name,IF((IsActive = 1),'Activated','Inactive') AS RESULT FROMUserLoginInfo; SELECT fname,lname,(math+sci+lit) AS total, CASE WHEN (math+sci+lit) < 50 THEN 'D' WHEN (math+sci+lit) BETWEEN 50 AND 150 THEN 'C' WHEN (math+sci+lit) BETWEEN 151 AND 250 THEN 'B' ELSE 'A' END AS Grade FROM マーク; ENCRYPT('sue','ts')=upass,'allow','deny') AS LoginResultFROM users WHERE uname = 'sue';#ログイン検証

7、書式設定関数

  • DATE_FORMAT(date ,fmt) 文字列 fmt に従って日付値をフォーマットします

  • FORMAT(x,y) x をカンマで区切られた一連の数値にフォーマットします。y は結果の小数点以下の桁数です

  • INET_ATON (ip ) IP アドレスの数値表現を返します

  • INET_NTOA(num) 数値で表される IP アドレスを返します

  • TIME_FORMAT(time,fmt) 文字列 fmt に従って時間値をフォーマットします
    最も単純なものは FORMAT です() 関数。大きな数値をカンマ区切りの人間が判読できるシーケンスにフォーマットできます。

  • 例:

  • SELECT FORMAT(34234.34323432,3);

  • SELECT DATE_FORMAT(NOW(),'%W,%D %M %Y %r');

  • SELECT DATE_FORMAT(NOW(),'%Y-%m-%d');

  • SELECT DATE_FORMAT(19990330,'%Y-%m-%d');

  • SELECT DATE_FORMAT(NOW() ,'%h:%i %p');

  • SELECT INET_ATON('10.122.89.47');

  • SELECT INET_NTOA(175790383);

8. 型変換関数

  • のためにデータ型変換のために、MySQL は値を指定されたデータ型に変換できる CAST() 関数を提供します。

タイプには、BINARY、CHAR、DATE、TIME、DATETIME、SIGNED、UNSIGNEDが含まれます

  • 例:

SELECT CAST(NOW() AS SIGNED INTEGER),CURDATE()+0; 
SELECT ‘f’=BINARY ‘F’,’f’=CAST(‘F’ AS BINARY);
ログイン後にコピー

9. システム情報関数

  • DATABASE()は現在のデータベース名を返します

  • BENCHMARK(count,expr) 式 expr count 回繰り返します

  • CONNECTION_ID() 現在の顧客の接続 ID を返します

  • FOUND_ROWS() 最後の SELECT クエリによって取得された行の合計数を返します

  • USER () または SYSTEM_USER() は現在のログイン ユーザー名を返します

  • VERSION() は MySQL サーバーのバージョンを返します

  • 例:
    SELECT DATABASE(),VERSION(),USER(); SELECT BENCHMARK(9999999,LOG (RAND()*PI()));
    #この例では、MySQL は LOG(RAND()*PI()) 式を 9999999 回計算します。

上記は [MySQL 09] でよく使用される関数の内容です。さらに関連する内容については、PHP 中国語 Web サイト (www.php.cn) をご覧ください。


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート