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) y を底とする x の対数を返します。 -
MOD(x,y) x/yの剰余を返します。 -
PI() 円周率 (pi) の値を返します。 -
RAND() 0 から 1 の間のランダムな値を返します。パラメータ (シード) を指定して、RAND() 乱数ジェネレータで指定された値を生成できます。 -
ROUND(x,y) パラメータ x の値を小数点以下 y 桁に丸めて返します。 -
SIGN(x) 数値xの符号を表す値を返します。 -
SQRT(x) 数値の平方根を返します。 -
TRUNCATE(x,y) 数値 x を小数点以下 y 桁に切り捨てた結果を返します。
2. 集計関数(GROUP BY句のSELECTクエリでよく使用される) -
AVG(col) 指定された列の平均値を返します。 -
COUNT(col) 指定された列のNULL以外の値の数を返します。 -
MIN(col) 指定された列の最小値を返します。 -
MAX(col) 指定された列の最大値を返します。 -
SUM(col) 指定された列のすべての値の合計を返します GROUP_CONCAT(col) グループに属する列の値を連結した結果を返します。
文字列関数 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から始まる文字列strの部分文字列とy文字を文字列instrに置き換え、結果を返します。 -
FIND_IN_SET(str,list) コンマ区切りのリストリストを分析し、strが見つかった場合はリスト内のstrの位置を返します。 -
LCASE(str)或LOWER(str) 文字列 str 内のすべての文字を小文字に変更した結果を返します。 -
LEFT(str,x) 文字列strの左端のx文字を返します。 -
LENGTH(s) 文字列strの文字数を返します。 -
LTRIM(str) 文字列strから先頭のスペースを削除します。 -
POSITION(substr,str) 文字列str内で部分文字列substrが最初に出現する位置を返します。 -
QUOTE(str) str内の一重引用符をバックスラッシュでエスケープします。 -
REPEAT(str,srchstr,rplcstr) 文字列strをx回繰り返した結果を返します。 -
REVERSE(str) 文字列strを反転した結果を返します。 -
RIGHT(str,x) 文字列strの右端のx文字を返します。 -
RTRIM(str) 文字列strの末尾のスペースを返します。 -
STRCMP(s1,s2) 文字列s1とs2を比較する TRIM(str) 文字列の先頭と末尾のスペースをすべて削除します。-
UCASE(str) またはUPPER(str) 文字列str内のすべての文字を大文字に変換した結果を返します。
IV. 日付と時刻の機能 CURDATE() またはCURRENT_DATE() は現在の日付を返しますCURTIME() またはCURRENT_TIME() 現在の時刻を返しますDATE_ADD(date,INTERVAL int keyword) 日付 date を間隔時間 int (int はキーワードに従ってフォーマットする必要があります) に追加した結果を返します。例: SELECTDATE_ADD(CURRENT_DATE,INTERVAL 6 MONTH); -
DATE_FORMAT(date,fmt) は、指定されたfmt形式に従って日付値をフォーマットします。 -
DATE_SUB(date,INTERVAL int keyword) date と interval int (int はキーワードに従ってフォーマットする必要があります) の結果を返します。例: SELECTDATE_SUB(CURRENT_DATE,INTERVAL 6 MONTH); -
DAYOFWEEK(date) 日付で表された曜日(1〜7)を返します。 -
DAYOFMONTH(date) は月の日数を返します(1〜31) -
DAYOFYEAR(date) は、その年の日数 (1~366) を返します。 -
DAYNAME(date) 、次のように date の曜日を返します: SELECT DAYNAME(CURRENT_DATE); -
FROM_UNIXTIME(ts,fmt) 指定されたfmtフォーマットに従ってUNIXタイムスタンプtsをフォーマットします。 -
HOUR(time) timeの時間値(0〜23)を返します。 -
MINUTE(time) 時間の分の値を返します(0〜59) -
MONTH(date) 日付の月の値を返します(1〜12) -
MONTHNAME(date) 、次のように date の月の名前を返します: SELECT MONTHNAME(CURRENT_DATE); -
NOW() 現在の日付と時刻を返します QUARTER(date) SELECT QUARTER(CURRENT_DATE); -
WEEK(date) 日付の年内の週(0~53)を返します。 -
YEAR(date) は日付の年を返します(1000〜9999)
例: 現在のシステム時刻を取得します。
FROM_UNIXTIME(UNIX_TIMESTAMP()) を選択します。
SELECT EXTRACT(YEAR_MONTH FROM CURRENT_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(birthday)),'%Y')+0 AS age FROM employee; したがって、Brithday が将来の場合、結果は 0 になります。 次の SQL ステートメントは、従業員の絶対年齢を計算します。つまり、誕生日が将来の日付である場合は、負の値が取得されます。
SELECT DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(birthday, '%Y') -(DATE_FORMAT(NOW(), '00-%m-%d') <DATE_FORMAT(birthday, '00-%m-%d')) AS 従業員の年齢 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() 関数を使用して、文字列 str をキーワード salt (キーのようにパスワードを一意に識別できる文字列) で暗号化します。 -
ENCODE(str,key) key をキーとして使用して文字列 str を暗号化します。ENCODE() を呼び出した結果はバイナリ文字列であり、BLOB 型で格納されます。 -
MD5() 文字列strのMD5チェックサムを計算します。 -
PASSWORD(str) 文字列 str の暗号化されたバージョンを返します。この暗号化プロセスは元に戻すことができず、UNIX パスワード暗号化プロセスとは異なるアルゴリズムを使用します。 -
SHA() 文字列strのセキュアハッシュアルゴリズム(SHA)チェックサムを計算します。
例:
ENCRYPT('root','salt')を選択します。
ENCODE('xufeng','key')を選択します。
SELECT DECODE(ENCODE('xufeng','key'),'key');#暗号化と復号化を同時に実行 SELECT AES_ENCRYPT('root','key');
AES_DECRYPT(AES_ENCRYPT('ルート','キー'),'キー')を選択します。
MD5('123456')を選択します。
SHA('123456')を選択します。 6. 制御フロー関数 MySQL には条件付き操作用の関数が 4 つあります。これらの関数は SQL 条件付きロジックを実装できるため、開発者は一部のアプリケーション ビジネス ロジックをデータベース バックエンドに変換できます。 MySQL 制御フロー関数: -
CASE WHEN[test1] THEN [result1]...ELSE [default] END testNが真であればresultNを返し、そうでなければdefaultを返す CASE [test] WHEN[val1] THEN [result]...ELSE [default]END testとvalNが等しい場合はresultNが返され、そうでない場合はdefaultが返されます。-
IF(test,t,f) テストが真であればtを返し、そうでない場合はfを返す IFNULL(arg1,arg2) arg1がnullでない場合は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 つのパラメータがあります。1 つ目は判定する式です。式が true の場合、IF() は 2 番目のパラメータを返します。false の場合、IF() は 3 番目のパラメータを返します。 例: SELECTIF(1<10,2,3),IF(56>100,'true','false'); IF() 関数は、結果が 2 つしかない場合に適しています。ただし、現実の世界では、条件テストで複数の分岐が必要になる場合があります。この場合、MySQL は CASE 関数を提供します。これは、PHP および Perl 言語のswitch-case 条件ルーチンと同じです。 CASE 関数の形式は多少複雑ですが、通常は次のようになります。
CASE [評価する式]
[値 1] の場合、[結果 1]
[値 2] の場合、[結果 2]
[値 3] の場合、[結果 3]
......
WHEN [値 n] THEN [結果 n]
ELSE [デフォルトの結果]
終わり ここで、最初のパラメータは判定される値または式であり、その後に一連のWHEN-THEN ブロックが続きます。各ブロックの最初のパラメータは比較する値を指定し、それが true の場合は結果が返されます。すべての WHEN-THEN ブロックは ELSE ブロックで終了します。END がすべての外側の CASE ブロックを終了すると、前の各ブロックが一致しない場合は、ELSE ブロックで指定されたデフォルトの結果が返されます。 ELSE ブロックが指定されておらず、すべての WHEN-THEN 比較が真でない場合、MySQL は NULL を返します。 CASE 関数には、次のように使用すると非常に便利な別の構文があります。
場合
WHEN [条件テスト 1] THEN [結果 1]
WHEN [条件テスト 2] THEN [結果 2]
ELSE [デフォルトの結果]
終わり この場合、返される結果は、対応する条件テストが真であるかどうかによって異なります。 例:
mysql>SELECT CASE '緑'
「赤」になったら「停止」
「緑」のときは「進む」で終了。
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','Not activated') AS RESULT FROMUserLoginInfo;
SELECT fname,lname,(math+sci+lit) AS total,
(数学+科学+文学) < 50 の場合、「D」
(数学+科学+文学) が 50 から 150 の間であれば 'C'
(数学+科学+文学)が151から250の間なら「B」
そうでなければ「A」終了
AS グレード FROM マーク;
SELECT IF(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() 関数で、大きな数値をカンマで区切られた読みやすいシーケンスにフォーマットします。 例:
フォーマットを選択してください(34234.34323432,3);
DATE_FORMAT(NOW(),'%W,%D %M %Y %r') を選択します。
DATE_FORMAT(NOW(),'%Y-%m-%d')を選択します。
DATE_FORMAT(19990330,'%Y-%m-%d')を選択します。
DATE_FORMAT(NOW(),'%h:%i %p')を選択します。
INET_ATON('10.122.89.47')を選択します。
INET_NTOA(175790383)を選択します。 8. 型変換機能 データ型の変換を実行するために、MySQL は値を指定されたデータ型に変換できるCAST() 関数を提供します。型: BINARY 、 CHAR 、 DATE 、 TIME 、 DATETIME 、 SIGNED 、 UNSIGNED 例:
CAST(NOW() AS SIGNED INTEGER)、CURDATE()+0 を選択します。
'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サーバのバージョンを返します
例:
データベース()、バージョン()、ユーザー()を選択します。
SELECTBENCHMARK(9999999,LOG(RAND()*PI()));#この例では、MySQL は LOG(RAND()*PI()) 式を 9999999 回計算します。 要約する 以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。 以下もご興味があるかもしれません:- MySQL ストアド プロシージャと共通関数のコード分析
- MySQLの共通関数の概要
- 一般的な MySQL 関数の例の概要 [集計関数、文字列、数値、時刻と日付の処理など]
- MySQLの一般的な関数
- よく使われるMySQL関数のまとめ(共有)
- MySQL よく使われる関数の詳細な概要
|