ホームページ  >  記事  >  データベース  >  MYSQLデータベース関数集の概要

MYSQLデータベース関数集の概要

迷茫
迷茫オリジナル
2017-03-26 14:06:241141ブラウズ

1. 数学関数
ABS(x) x

の絶対値を返します。

BIN(x) Power の 2 進数を返します
FLOOR(x) x 未満の最大の整数値を返します
GREATEST(x1,x2,...,xn) セット内の最大値を返します
LEAST(x1,x2) ,...,xn) セット内の最小値を返します
LN(x) x の自然対数を返します
LOG(x,y) y の底の対数を返します pi (pi) の値を返します
RAND() 0 から 1 までのランダムな値を返します。パラメーター (シード) を指定すると、RAND() 乱数ジェネレーターで指定された値を生成できます。
ROUND(x,y) パラメータ x の値を小数点以下 y 桁で四捨五入して返します
SIGN(x) 数値の符号を表す値を返します 数値を切り捨てた結果 NULL 値の数
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) で始まる文字列 str の y 文字分の部分文字列を置換し、リスト内の 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) 文字列の右端の x 文字を返します 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 キーワード) は結果を返します日付と間隔時間の整数 (キーワードに従って整数をフォーマットする必要があります)、例:SELECTDATE_SUB(CURRENT_DATE,INTERVAL 6 MONTH);
DAYOFWEEK(date) 日付 (1~7) で表される曜日を返します
DAYOFMONTH (date) date で表される月の日 (1 ~ 31) を返します。)
DAYOFYEAR(date) date の年間の日 (1 ~ 366) を返します。 Format、フォーマット UNIX タイムスタンプ ts
HOUR(time) 時間を返します時間の値 (0~23)
MINUTE(time) 時間の分の値を返します (0~59)
MONTH(date) 日付の月の値を返します (1 ~12)MONTHNAME(date) の月の名前を返しますdate (例: SELECT MONTHNAME(CURRENT_DATE);NOW() 現在の日付と時刻を返します
QUARTER(date) date の四半期 (1 ~ 4) を返します (例: SELECT QUARTER(CURRENT_DATE);
WEEK) (date) 日付をその年の週として返します (0~53)
YEAR(date) 日付の年を返します (1000~9999)
いくつかの例:
現在のシステム時刻を取得します: SELECT 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 つの日付値の差 (月数) を返します: SELECT PERIOD_DIFF(200302, 199802);
Mysql で年齢を計算する:
SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW())-TO_DAYS(誕生日)),'%Y')+0 AS age 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 型の形式 storage
AES_DECRYPT(str,key) キーを使用して Advanced Encryption Standard アルゴリズムを使用して文字列 str を復号化した結果を返します key
DECODE(str,key) 暗号化された文字列 str を復号化するためのキーとして key を使用します
ENCRYPT (str,salt ) UNIXcrypt() 関数を使用して、文字列 str をキーワード Salt (キーと同じようにパスワードを一意に決定できる文字列) で暗号化します。
ENCODE(str,key) key をキーとして使用して、文字列 str を呼び出して ENCODE( ) を呼び出します。これは BLOB 型に格納されるバイナリ文字列です。
MD5() 文字列 str の MD5 チェックサムを計算します。
PASSWORD(str) 文字列 str の暗号化されたバージョンを返します。 この暗号化プロセスは元に戻せません。パスワード暗号化プロセスでは、さまざまなアルゴリズムが使用されます。
SHA() 文字列 str のセキュア ハッシュ アルゴリズム (SHA) チェックサムを計算します。
例:
SELECT ENCRYPT('root','salt');
SELECT ENCODE('xufeng','key');
SELECT DECODE( ENCODE('xufeng','key'),'key');#暗号化と復号化を一緒に行う
SELECT AES_ENCRYPT('root','key');
SELECT AES_DECRYPT(AES_ENCRYPT('root','key' ),' key');
SELECT MD5('123456');
SELECT SHA('123456');

6. 制御フロー関数
MySQL には、条件付き操作を実行するために使用される 4 つの関数があります。これらの関数は SQL 条件付きロジックを実装できます。により、開発者は一部のアプリケーション ビジネス ロジックをデータベース バックエンドに変換できます。
MySQL 制御フロー関数:
CASE WHEN[test1] THEN [result1]...ELSE [default] END testN が true の場合、resultN を返し、そうでない場合は、default
CASE [test] WHEN[val1] THEN [result] を返します。 .ELSE [default]END test と valN が等しい場合は resultN を返し、それ以外の場合は default
IF(test,t,f) を返します test が true の場合は t を返し、それ以外の場合は arg1 が等しくない場合は f
IFNULL(arg1,arg2) を返します。空の場合は arg1 を返し、そうでない場合は arg2 を返します
NULLIF(arg1,arg2) arg1=arg2 が NULL を返す場合、それ以外の場合は arg1 を返します
これらの関数の最初は、2 つのパラメーターを持ち、判定を実行する IFNULL() です。最初のパラメータが 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 番目のパラメーターを返します。 3 番目のパラメータ。
例: SELECTIF(1<10,2,3),IF(56>100,'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 [結果 3]
...
WHEN [val n] THEN [結果 n]
ELSE [デフォルトの結果]
END
ここで、最初のパラメータは判定対象の値または式で、次のパラメータは系列です各ブロックの最初のパラメータは、比較する値を指定します。それが 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) WHEN (math+sci+lit) BETWEEN 50 AND 150 THEN 'C '
WHEN (math+sci+lit) BETWEEN 151 AND 250 THEN 'B'
ELSE 'A' END
AS 成績 FROM マーク;
SELECT IF(ENCRYPT('sue','ts')=upass,'allow' ,'deny') AS LoginResultFROM users WHERE uname = 'sue'; #A ログイン検証

7. 書式設定関数
DATE_FORMAT(date,fmt) 文字列 fmt に従って日付 date 値を書式設定します
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();
SELECTBENCHMARK(9999999,LOG(RAND()*PI()));#この例では、MySQL は LOG(RAND()*PI()) 式を 9999999 回計算します


以上がMYSQLデータベース関数集の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。