一般的に使用される関数のmysqlの9つのカテゴリ

 

このリンク: https://blog.csdn.net/u013251184/article/details/84301730

数学関数

ABS(x)は、xの絶対値を返し
BIN(x)はバイナリX返す(OCTリターンオクタルを、HEXは16進数を返す)を
CEILING(x)はxよりも大きい最小の整数を返し
EXP(x)は値を返すをXのパワーのE(底の自然対数)
フロア(x)はxより小さい最大の整数を返し
最大(X1、X2、...、 XN)が設定最大値を返し
LEASTを(X1、X2を、... 、XN)は最小の設定値を返す
NATURAL xを返す)番号LN(Xのを
ログ(x、y)をyに戻すX対数れる
))MOD(X、YをX / Y(余りのモードを返します
PI()(PI)PIの値を返す
RAND()、0~1の範囲内のランダムな値を返すパラメータRAND(シード)()乱数発生器は、指定された値を生成し提供することによって作製することができます。
ROUND(x、y)は、パラメータxを返すyの丸みを帯びた小数値である
SIGN(x)は、xの値は、シンボルの数を表し返す
SQRT(x)は数の平方根を返し
TRUNCATE(x、y)を切り捨て、Xの数を返しますyの小数点以下の結果

(一般問合せ選択でGROUP BY句で使用される)は、2つ、集約関数

AVG(COL)が指定された列の平均値を返します
COUNT(COL)は列の数を返しアフリカNULL値
MIN(COL)指定された列の最小値を返し
MAX(COL)を指定された最大列返し
SUM(COL)すべての列の値と返し
GROUP_CONCATを(COL)をリターン結果列の値は、の組み合わせに属するグループで接続されている

次のようにSQL文である「各部門の最大給与の結果を示しています」、

DEPTから最大ようスタッフによってSELECT DEPT、MAX(SALARY)グループ

各部門の」クエリは給与の合計数」
スタッフからの総AS SELECT DEPT、SUM(給与)GROUP BY DEPT

特定の使用参照:WHEREのHAVING使用方法の詳細によるMySQLのグループ 

第三には、文字列関数

ASCII(文字)はASCII値を返します
BIT_LENGTH(STR)のリターンを文字列のビット長
CONCAT(S1、S2、...、SN ) S1、S2、...、SNは、ストリングに接続されている
CONCAT_WS(SEP、S1、S2、... 、SN) S1、S2、...、 SNはストリングに接続され、9月間隔文字
INSERT(STR、X、Y、から始まる文字列strのX位置 INSTR)は、Yの文字ストリングは、ストリングInStr関数に置き換えられ、戻り

バック結果を
、STR(FIND_IN_SET STRを発見した場合はカンマ区切りリストファイルのリスト)分析は、STRは、リスト中の位置を返します
LCASE(STR)またはLOWER(strが)すべての文字の文字列strの結果を返します。小文字に変更
(STR、x)を返します。LEFT文字列strの左端の文字xの
LENGTH(s)文字列strを返します。文字
列strの空間の先頭から切断LTRIM(STR)
位置(SUBSTR、STR)文字列内のサブストリングの位置STR substrは最初に現れるリターン
QUOTE(STR)STRにバックスラッシュ単一引用符
(STR、srchstr、rplcstrが)の結果を繰り返すX回STR文字列を返す繰り返す
REVERSE(STR)は、文字列strを返した結果逆
RIGHTの(STR、X)は、文字列strの右端のx文字戻り
RTRIM(STRを)スペース末尾STR文字列を返し
STRCMP(S1、S2)は、ストリングS1を比較し、S2
の部分をヘッダと末尾の文字列のすべてのスペースを削除するためにTRIM(STR)
UCASE(STR)またはUPPER(STR)は、文字列strのすべての文字を返しを大文字結果
4、日時関数
CURDATE()またはCURRENT_DATE()は、現在の日付を返し
(CURTIMEを)またはCURRENT_TIME()現在の時刻を返し
DATE_ADD(日付、間隔INTキーワード)が日付プラス間隔INTを返します結果(に従う必要がありますint型のキー

のような形式の単語を)SELECT 

DATE_ADD(CURRENT_DATE、INTERVAL MONTH 6);
指定されたフォーマットFMT日付値に従ってフォーマットDATE_FORMAT(日付、FMT)
戻り日付DATE_SUB(日付、間隔INTキーワード)日付間隔INTを加算した結果の(INTキーが従わなければならない

SELECT次のような形式のワード)、 

DATE_SUB用( CURRENT_DATE、INTERVAL 6月);
最初の数日間(1〜7 DAYOFWEEK(日付)は週によって表される日付を返します)
DAYOFMONTH(日)の日付を返す月の日である(〜31れている1)。
DAYOFYEAR(日付)返却日は、(1〜366)年の日です
DAYNAME(日付)など、週名、日付を返します。SELECT DAYNAME(CURRENT_DATE)を、
FROM_UNIXTIME(TS、FMT)指定した書式fmt、フォーマットUNIXタイムスタンプTSに応じて
時間(時間)時間時間を返します(0〜23である)
MINUTE(時間)は、時間の分の値(0〜59)を返します
(1〜12です。)MONTH(日付)月の日付がある返します
MONTHNAME(日付)は、月の日付を返します。以下のような名前、:SELECT MONTHNAME(CURRENT_DATE);
NOW()は、現在の日付と時刻を返します
QUARTER(日)は、このようなSELECT QUARTER(CURRENT_DATE)として、年の日付の四半期(1〜4)を返します。
WEEK(日付)年の最初の数週間の日付を返します(0〜53)
YEAR(date)は日付の日(9999から1000)の年を返します
いくつかの例は:
現在のシステム時刻を取得します:SELECT FROM_UNIXTIME(UNIX_TIMESTAMP());
SELECT EXTRACT(YEAR_MONTH CURRENT_DATE FROM);
SELECT EXTRACT(DAY_SECOND CURRENT_DATE FROM);
SELECT EXTRACT(HOUR_MINUTE CURRENT_DATE FROM);
2つの日付値の間のリターン差(ヶ月):; PERIOD_DIFF(200302,199802)を選択
MySQLを算出します年齢:
SELECTはDATE_FORMAT(FROM_DAYS(TO_DAYS(NOW()) - TO_DAYS(誕生日))、 '%Y')+ 0歳からのような 

従業員、
したがって、Brithday将来場合、演算結果はゼロです。
次のSQL文、従業員の絶対的な年齢を計算するために誕生日が将来の日付であるときつまり、マイナスになります。
DATE_FORMAT SELECT(NOW()、 '%Y') - DATE_FORMAT(誕生日、 '%Y') - (DATE_FORMAT(NOW()、 

'00 - M-%Dの%「)<DATE_FORMAT

(誕生日、'00 - %mを- %のD '

V.暗号化関数

アルゴリズムの結果を返すために、キーとキーを使用してAES_ENCRYPTは(文字列、キー)、呼び出しのAdvanced Encryption Standard暗号化文字列strで

AES_ENCRYPTがバイナリ結果

の文字列、BLOBストレージの種類
AES_DECRYPT(STR、キー)を返しますキー、キー文字列strを使用して高度な暗号化標準アルゴリズムは、結果、復号化
strの暗号化された文字列解読するために暗号化キーとして使用DECODE(STR、キー)
(STR、塩)を使用して、UNIX用のcrypt()関数で、塩のキーワードを暗号化します(あなただけのパスワード文字列、決定することができます

暗号化された文字列strキーなど)を
バイナリ文字列である)結果ENCODE(strの、キー)(ENCODEを呼び出して、キーの暗号キー文字列strとして使用するが

、それはBLOBは型記憶
MD5()を計算MD5チェックサム文字列strの
パスワード(STR)は、暗号化処理の文字列strの暗号化バージョンは不可逆的で返し、UNIXパスワードは、暗号化

アルゴリズムを使用して異なるプロセス。
SHA()を算出列strのハッシュアルゴリズム(SHA)、チェックサムセキュア
例:
SELECT ENCRYPT( 'ルート'、 '塩');
SELECT ENCODE( 'Xufeng'、 'キー');
SELECT DECODE(ENCODEを( ' xufeng ''キー')、 'キー「);

AES_DECRYPT SELECT(AES_ENCRYPT( 'ルート'、 'キー')、 'キー');
SELECT MD5( '123456');
SELECT SHA( '123456');

6、機能制御の流れ

MySQLは4つの機能を調整するために使用される有します操作は、これらの機能は、一部のアプリケーションは、開発者がすることができ、SQL条件付きロジックを実装することができる

データベースアプリケーションのビジネスロジックの背景に変換します


MySQLのフロー制御機能:
ENDがtrueの場合、プロセスはresultNを返すCASE [TEST1] THEN [結果1] ... ELSE [デフォルト] TESTNかどうか、

デフォルトの戻り
[テスト] [VAL1] CASE THEN [結果] ... ELSE [デフォルト] END等しい試験とVALNは、その後、戻り場合

resultN戻し、そうでなければデフォルト
テストが真である場合IF(試験、T、F)を、Tを返し、そうでない場合、F
IFNULL(ARG1、ARG2)ARG1が空でない場合、リターンARG1、そうでなければARG2
NULLIF(ARG1、ARG2)ARG1 = ARG2戻りNULLであれば、そうでない場合ARG1
これらの関数の最初の2つのパラメータ、および最初のパラメータの決意を有するIFNULL()、です。最初の引数がない場合は

NULL、関数は、呼び出し元最初に戻り、

引数、それがNULLであれば、二番目の引数を返します。
例えば:IFNULL SELECT(1,2)、IFNULL(NULL、10)、IFNULL(NULL * 4、 '偽の');
NULLIF()関数は、2つのパラメータをテストするが等しく設けられて、それらが等しい場合、NULLが返され等しくない場合は、それが返す

最初の引数を。
例えば:NULLIF(1,1)、NULLIF SELECT ( 'A'、 'B')、NULLIF(2 + 3,4 + 1);
及び()関数は、多くのスクリプト言語として提供される場合、MySQLのIF()関数をまた、簡単な試験条件、レター作成することができます

最初があると判断された数3つの引数、

falseの場合(IF()は、二番目の引数を返します場合は、式が真である場合、式を)三番目のパラメータを返します。
例えば:IF SELECT(1 <10,2,3)、IF(56は> 100、 '真の'、 'falseに');
場合の適切なIF()関数は、2つだけの可能な結果です。しかし、現実の世界では、我々はテスト条件があることを見つけることが

複数のブランチを必要とします。この場合、

MySQLはPHPとPerl言語のようなルーチンをCASE機能を提供し、スイッチケースの条件。
次のように一般的に示す場合関数多少複雑形式:
CASE [式の外部に評価される]
WHEN [ヴァル1] THEN [結果1]
[ヴァル2] THEN [結果2]
[ヴァル3] THEN [結果3]
.....
WHEN [N-ヴァル] THEN [N-結果]
ELSE [既定の結果]
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 'グリーン'
      '赤' THEN 'STOP'
      'グリーン' THEN ENDを'GO';
SELECTケース9 1 THEN '' 2 THEN 'B' ELSE 'N / A' END;。。
。。END SELECT CASE(2 + 2)= 4 THEN 'OK'(2 + 2)<> 4 THEN 'OKでない'状態など;
。SELECT名前、IF((のisActive = 1)、 'アクティブ'、「いいえアクティブ')UserLoginInfoからの結果AS;
SELECT FNAME、LNAME、(数学+ SCI + LIT)総、
CASE(数学+ SCI + LIT)<50 THEN' D '
(数学+ SCI + LIT)50〜150 THEN 'C'
WHEN(数学+ SCI + LIT)151および250との間のTHEN 'B'
ELSE 'END
マークからASグレード;
SELECT IF(ENCRYPT( 'スー'、 'TS')= uPASSは、 '許可'、 )「拒否」ASはLoginResult WHEREユーザーから 

のuname =「スー」;#ログイン認証

VIIフォーマット関数

書式文字列FMT日付値に応じて、DATE_FORMAT(日付、FMT)
形式(X、y)は、カンマで区切られた数字の列としてフォーマットするX、Yは、結果は小数点以下の桁数である
IPアドレスINET_ATON(IP)デジタル表現返さ
INET_NTOA(NUM)はIPアドレスで表される番号を返し
に従って)TIME_FORMAT(時間、FMTをフォーマット時の時間値の文字列FMT
最も単純には、カンマで区切って読み取り可能であるようにフォーマット大きい数値列可能な形式()関数です。
例:
SELECT FORMAT(34234.34323432,3);
SELECT DATE_FORMAT(NOW()は、 '%Wは、Yの%D %%% R&LT Mである');
SELECT DATE_FORMAT(NOW()、 'M - %%% Y-D') ;
SELECT DATE_FORMAT(19990330、 'M - %%% Y-D');
SELECT DATE_FORMAT(NOW()、 '%のH:%Iの%のP');
SELECT INET_ATON('10 .122.89.47「);
SELECT INET_NTOAを(175 790 383 );

8、型変換関数

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

あります:

BINARY、CHAR、DATE、TIME、DATETIME、SIGNED、UNSIGNED
例:
SELECT CAST(NOW()符号付き整数として)、CURDATE()+ 0;
SELECT 'F' = BINARY 'F.'、 'F'は、CASTを= (BINARY AS「F」);

9、システム情報関数

データベース()現在のデータベース名を返し
、ベンチマーク(カウント

FOUND_ROWS()を取得する行の最後のSELECTクエリの合計数を返します
(USERを)またはSYSTEM_USER()現在のユーザー名でログインして返し
VERSION()MySQLサーバのバージョンを返します
例:
SELECT DATABASE()、VERSION()、USER();
BENCHMARKを選択(9999999、LOG(RAND() * PI()));# この実施例は、MySQL計算LOG(RAND()* PI( ))式

おすすめ

転載: www.cnblogs.com/shoshana-kong/p/11431512.html