MySQL--mysqlの一般的に使用される関数

1.数学関数
ABS(x)はxの絶対値を返します
BIN(x)はバイナリxが(OCT戻りオクタル、HEX戻り16進数)を返し
CEILING(x)はxよりも小さい整数より大きな戻り
EXP(X)をXとのパワーの値E(下の自然対数)を返し
床(x)は、x
GREATEST(x1、x2、...、xn)より小さい最大の整数値を 返します
LEAST(x1、x2、...、xn)は、セット
LN(x)の最小値を返します
x の自然対数を返します LOG(x、y)は、
MOD(x、y)に基づいてx の対数を 返します。x/ yの係数を返します(剰余)
PI()は、pi(pi)
RAND()の値を返します。 0から1までのランダムな値を返します。パラメータ(シード)を指定することにより、RAND()乱数ジェネレータに指定した値を生成させることができます。
ROUND(x、y)は、パラメーターxの丸められた値を小数点以下y桁で
返します
。SIGN(x)は、数値xを表す符号の値を返します。SQRT(x)は、数値の 平方根を
返します。 yの小数点以下は、結果置き

(一般問合せSELECTにGROUP BY節で使用される)は、2つ、集約関数
AVG(COL)が指定された列の平均値を返し
COUNT(COL)が指定された非NULL値の列数を返し
MIN(COL)戻ります指定された列の最小値
MAX(col)は、指定された列の最大値を返します
SUM(COL)は、すべての列の値と返し
GROUP_CONCAT(COL)列の値は、一つのグループの組み合わせに属する戻り結果によって接続されている

3、文字列関数
ASCII(文字)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をx位置から置き換え、y文字部分文字列は文字列instrに置き換えられ、結果
FIND_IN_SET(str、listカンマで区切ったリストファイルの)分析は、リストにSTR、STR復帰位置を発見した場合は
LCASE(STR)またはLOWER(STR)が小文字に変更されたすべての文字列strの結果を返します
)LEFT(strの、xと文字を返します
文字列str LENGTH(s)の左端のx文字は、 文字列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を返します。

第四に、日付と時刻関数
CURDATE()やCURRENT_DATE()は、現在の日付を返します
CURTIME()またはCURRENT_TIMEを()現在の
日付を返すDATE_ADD(日付、INTERVAL intキーワード)は、日付日付と間隔int(intはキーワードに従ってフォーマットする必要があります)の結果を返します。例:SELECTDATE_ADD(CURRENT_DATE、INTERVAL 6 MONTH);
DATE_FORMAT(date、fmt)指定されたfmt形式
DATE_SUB(日付、INTERVAL intキーワード)に従って日付日付値をフォーマットします。日付の 日付と間隔int(intはキーワードに従ってフォーマットする必要があります)の結果を返します。たとえば、次のようになります。SELECTDATE_SUB(CURRENT_DATE、INTERVAL 6 MONTH);
最初の数日間(1〜7)DAYOFWEEK(日付 ) 週で表される日付を返し
DAYOFMONTH(日付)日付を返し月(1〜31)の日です
DAYOFYEAR(日付)は、帰着日の最初の年であります少し ( - 366 1)
DAYNAME(日付)は、次のような日付の曜日を返します:SELECT DAYNAME(CURRENT_DATE);
FROM_UNIXTIME(ts、fmt)形式UNIXタイムスタンプを指定されたfmt形式に従ってts
HOUR(時間)は、時間の時間値(0〜23 )を返します
MINUTE(時間)は時間(0〜59
の分の値を返します MONTH(日付)は日付(1〜12)の月の値を
返しますMONTHNAME(日付)は次のような日付の月名を返します:SELECT MONTHNAME(CURRENT_DATE);
NOW()が返されます日付と時刻現在の
SELECT(CURRENT_DATE)などの四半期など、QUARTER(日付)年の日付の四半期(1〜4)を返します。
WEEK(日)は、今年の週の日付の日付を返します(〜53が0である)
年(日付)年の日付を返します(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(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)は、高度な暗号化標準アルゴリズムを使用して文字列strをキーkeyで暗号化した結果を返します。AES_ENCRYPTの呼び出し結果はバイナリ文字列です。 BLOBタイプのストレージ
AES_DECRYPT(str、key)は、高度な暗号化標準アルゴリズム
DECODE(str、key)を使用してキーkeyで文字列strを復号化した結果を返し、キーを キーとして使用して暗号化された文字列str
ENCRYPT(str、salt)を復号化し ます。 UNIXcrypt()関数は、文字列strをキーワードsalt(キーと同じようにパスワードを一意に決定できる文字列)で暗号化します。
ENCODE(str、key)はkeyをキーとして使用して文字列strを暗号化します。ENCODE()を呼び出した結果はバイナリ文字列であり、BLOBタイプ
MD5()に格納され ます。文字列strのMD5チェックサムが計算されます
。PASSWORD(str)は文字列strの暗号化バージョン。この暗号化プロセスは元に戻すことができず、UNIXパスワード暗号化プロセスとは異なるアルゴリズムを使用します。
SHA()は、ハッシュアルゴリズム(SHA)、チェックサムセキュアSTR文字列を計算
例:
ENCRYPT(「ルート」、「塩」)を選択します。
ENCODE(「Xufeng」、「キー」)を選択し、
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を返し、そうでない場合はデフォルトの
IF(test、t、f)を返します。バックF
空でない場合IFNULL(ARG1、ARG2)ARG1、リターン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言語のスイッチケース条件付きルーチンと同じです。
CASE関数の形式は、通常は次のように少し複雑です
。CASE [評価される式]
WHEN [値1] THEN [結果1]
WHEN [値2] THEN [結果2]
WHEN [値3] THEN [結果3]
。 .....
WHEN [val n] THEN [result n]
ELSE [default result]
END
ここで、最初のパラメータは、判定される値または式であり、その後に一連のWHEN-THENブロックが続きます。ブロックの最初のパラメーターは比較する値を指定し、それがtrueの場合、結果が返されます。すべてのWHEN-THENブロックはELSEブロックで終了します。ENDがすべての外部CASEブロックを終了するときに、先行する各ブロックが一致しない場合、ELSEブロックで指定されたデフォルトの結果が返されます。ELSEブロックが指定されておらず、すべてのWHEN-THEN比較が真でない場合、MySQLはNULLを返します。
CASE関数には別の構文があり、次のように使用すると非常に便利な場合があります
。CASE
WHEN [条件付きテスト1] THEN [結果1]
WHEN [条件付きテスト2] THEN [結果2]
ELSE [デフォルトの結果]
END
この条件で返される結果は、対応する条件テストが真であるかどうかによって異なります。
例:
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(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 '


SELECT IF(ENCRYPT( 'スー' 、 'TS')= upass、 '拒否'、 '許可')AS LoginResultFROMユーザーWHEREのuname = 'スー';# ログイン認証

VII書式設定機能
に従い、DATE_FORMAT(日付、FMT)文字列fmt形式の日付日付値
FORMAT(x、y)xをコンマで区切った一連の数値としてフォーマットします。yは結果の小数点以下の桁数です
INET_ATON(ip)はIPアドレスの数を返します
INET_NTOA(num)は数を返しますこれは、IPアドレス表す
書式文字列FMT時間値時間に応じてTIME_FORMAT(時間、FMT)
カンマで区切って読み取り可能であるようにフォーマット大きい数値列可能な形式()関数、最も簡単です。
例:
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 ');



データ型変換を実行するために、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を返します行の総数取得するクエリ
をユーザに()またはSYSTEM_USER()は、現在のユーザ名でログインして戻り
バージョンは()のMySQLサーバのバージョンを返す
例:
SELECT DATABASE()、VERSION()、ユーザー();
SELECTBENCHMARK(9999999、LOG(RAND() * PI()));#この例では、MySQLはLOG(RAND()* PI())式を9999999回計算します。
リリース7件のオリジナルの記事 ウォン称賛69 ビュー200,000 +

おすすめ

転載: blog.csdn.net/u014320421/article/details/79814734