[MySQLの] MySQLの一般的に使用される機能の概要

数学関数
ABS(x)は、xの絶対値を返し
ビン(x)はバイナリX(OCT戻り進数、16進数の戻りヘクス)を返し
天井(x)は、xの値よりも大きい整数最小を返し
EXP(X)の値を返しますEのxのパワーの(底部の自然対数)
フロア(x)は最大の整数を返す少ないXより
最大(X1、X2、...、 XN) 最大の設定値を返し
以上を(X1、X2、... 、XN)は、最小値のコレクションを返し
LN(X)を、自然のX対数リターン
ログ(X、Y)は、Yの塩基を使用して、xの対数を返す
(x、y)はX / Y(余りのモードを返す)MODを
PI()(PI)PIの値を返す
関数rand()、0~1の範囲内のランダムな値を返すパラメータランド(種子)()乱数発生器は、指定された値を生成し提供することによって作製することができます。
ラウンド(x、y)は、パラメータxが丸められた小数の値yである戻り
サイン(x)は数Xを表すシンボルの値を返し
SQRT(X)は数の平方根を返し
TRUNCATE(x、y)は切り捨てられ、xの数を返しますyは小数点以下の桁数の結果であります

第二に、集約関数は、(一般に、クエリにgroup by句を選択するために使用される)
AVG(COL)が指定された列の平均値を返し
回数(COL)指定された列数アフリカヌル値を返し
分(COL)が指定された列の最小値を返し
maxは(COL)が最大列戻り
和(COL)は、すべての列の値と戻り
GROUP_CONCAT(COL)の組み合わせに接続されたグループに属する結果の列の値を返します

第三に、文字列関数
ASCII(文字)が文字のASCIIコード値を返し
BIT_LENGTH(STR)はストリングのビット長を返し
連結を(S1、S2、...、SN ) S1、S2、...、SNは、ストリングに接続されている
CONCAT_WS (SEP、S1、S2、...、 SN) S1、S2、...、SNストリングに接続されており、9月間隔キャラクタれる
インサート(STR、X、Y、から始まる文字列strのx位置 、INSTR)をY字の長い列InStr関数のストリングが置換され、結果が返さ
カンマ区切りリストファイルのFIND_IN_SET(STR、リスト)分析を、リスト内のSTR、STR復帰位置を見つけた場合
であれば、サブNの鎖によって文字列str strlist文字列リスト範囲、1とNの間に返される値 文字列は、文字列「」シンボルの一部のリストがチェーンから分離されています。最初のパラメータが一定の文字列であり、および第2列タイプ設定されている場合、FIND_IN_SET()関数は、ビット演算を使用して最適化されます。STRのstrlistまたは空の文字列strlistない場合は、戻り値はゼロです。任意のパラメータがNULLであるため、戻り値はNULLです。最初の引数関数は、(「」)カンマが含まれている場合、これは動作しません。
LCASE(STR)以下(STR)は小文字に変更されたすべての文字列strの結果を返します
左(STR、X)の文字列を返しますstrのX左端の文字の
長さ(s)文字列strを返します。文字
列str空間の先頭からLTRIM(STR)カット
位置(SUBSTR、STR)は、文字列str substrは最初の発生にサブストリングの位置を返します
引用符(文字列)strのバックスラッシュを単一引用符で囲まれている
(文字列、n)は文字列strリピートを返すのx回発生繰り返される
リバース(strのは)文字列strの結果を返します。逆に
、右(strの、x)は、文字列を返します。 strのX右端の文字
RTRIM(文字列)文字列str末尾のスペースを返す
のstrcmp(S1、S2)は、文字列s1とs2の比較
:例
のMySQL>のstrcmp SELECT( 'テキスト'、 'テキスト2')
- > -1
MySQLの> SELECT STRCMP( 'テキスト2'、 'テキスト')
- > 1。
MySQLの> SELECT STRCMP( 'テキスト'、 'テキスト')
> 0 -

すべてのスペースをヘッダ文字列とテール除去するTRIM(STR)
UCASE(STR)を、または上位の結果(文字列)の後に大文字に文字列strの変更にすべての文字を返します。

第四に、日付と時刻の関数
CURDATE()やCURRENT_DATE()は現在の日付を返します
CURTIME()またはCURRENT_TIMEを()現在の時間を返し
DATE_ADD(日付、間隔INTキーワード)日付を加えた間隔int型の結果を返します(int型は従わなければなりません。; selectdate_add(CURRENT_DATE、月間隔6):などのキーワードフォーマット)、
指定されたフォーマットのFMT日付値に従ってフォーマットDATE_FORMAT(日付、FMT)
返却日DATE_SUB(日付、間隔INTキーワード)日付プラス間隔INT以下のような結果(intは、キーワードに合わせてフォーマットする必要があります)、:selectdate_sub(CURRENT_DATE、区間6月 );
最初の数日(1〜7)DAYOFWEEK(日付 ) 週で表される日付を返し
DAYOFMONTH(日付)を返します日付は月の日である(1〜31)
DAYOFYEAR(日付)日付を返す年の日です(1〜366)
DAYNAME(日付)など週名、日付を返します。SELECT DAYNAME(CURRENT_DATE)を、
FROM_UNIXTIME (TS、FMT)指定した書式fmtに従って、UNIXタイムスタンプの書式TSの
時間(時間)時間の時間を返します(〜23 0)
(0〜59)分(時間)は、時間の分を返し
月(DATE)を返します月の日(12から1)
MONTHNAME(日付)など、月の名前の日付を返します:SELECT MONTHNAME(CURRENT_DATE);
今、()は、現在の日付と時刻を返す
ように選択四半期として、四半期(日付)年の日付の四半期(1〜4)を返します(CURRENT_DATE );
週(日付)年(0〜53)の最初の数週間の日付の日付を返す
日付(9999から1000)の前年同期(日付)を返します
いくつかの例:
現在のシステム時刻を取得する:選択FROM_UNIXTIMEを(UNIX_TIMESTAMP()) ;
SELECT抽出物(CURRENT_DATEからyear_month);
(DAY_SECOND CURRENT_DATEから)SELECT抽出物;
SELECT抽出物(CURRENT_DATEからhour_minute);
2つの日付値の間のリターン差(ヶ月):SELECT PERIOD_DIFF(200302,199802);
- -関数のパラメータは、数値ではなく、他のパラメータperiod_diff 2年間です。
MySQLの時代の計算値:
SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW()) - TO_DAYS(誕生日))、 '%Y')+ 0員からAS年齢、
したがって、brithday未来日付場合、演算結果0。
誕生日は、日付を来ているときである従業員の絶対的な年齢を計算するには、次のSQL文は、負になります。
DATE_FORMAT(NOW() 'を選択 DATE_FORMAT(誕生日、 '%のY') - - (DATE_FORMAT(NOW()、'00 - %のY'))%M-%D」<DATE_FORMAT(誕生日、'00 - %M -年齢などは%d「))従業員から

V.暗号化機能
アルゴリズムの結果を返すために、キーとキーを使用してAES_ENCRYPT(STR、キー)が高度暗号化標準暗号化文字列strで、コールのAES_ENCRYPT結果はバイナリ文字列になり、ブロブの種類格納する
AES_DECRYPT(STR、キー)戻り値キー、キー文字列strの高度な暗号化標準アルゴリズムの復号結果使用して
暗号化キーとして使用するデコード(STR、キーを)strの暗号化された文字列を復号化する
(キーワードの塩を使用して、暗号化(STR、塩)UnixCryptを使用して()関数)暗号化された文字列strキーのようなユニークなパスワード文字列を、決定することができ
、キー暗号キーの文字列str、コールエンコード()の結果は、それBLOB型のバイナリ文字列であるとして使用するエンコード(文字列、キー)記憶
MD5()MD5チェックサム計算文字列strと
パスワード(STR)は、暗号化処理の文字列str暗号化されたバージョンを返し不可逆的であり、UNIXパスワードの暗号化プロセスは、異なるアルゴリズムを使用します。
SHA()を算出列はハッシュアルゴリズム(SHA)、チェックサムセキュアSTR
例:
( 'ルート'、 '塩')を暗号化を選択します。
SELECTエンコード( 'Xufeng'、 'キー');
SELECTデコード(エンコード( ' xufeng ''キー')、 'キー');#の解読一緒
SELECT AES_ENCRYPT('ルート''キー');
SELECT AES_DECRYPT(AES_ENCRYPT(' ルート」、 'キー')、 'キー');
MD5を選択し( '123456');
選択SHA( '123456');

六は、機能制御フロー
MySQLは4つの機能は、動作条件のために使用され、これらの機能は、開発者がバックエンドデータベースにいくつかのアプリケーションのビジネスロジックを変換することができ、条件付きロジックSQL実装されてもよいです。
制御機能を流しMYSQL:
ケースの場合は、[TEST1]→[結果1] ...他[デフォルト] TESTNエンドtrueの場合、リターンのresultnが、それ以外の場合は、デフォルト
他のケース[テスト] [val1とがある]場合は、次に[結果]を...試験およびVALNが等しい場合は、[デフォルト]の端部は、戻りのresultnが、そうでなければデフォルト
IF(試験、T、F)でテストが真である場合、Tを返し、そうでない場合はF
IFNULL(ARG1、ARG2)ARG1が空でない場合、戻りARG1、そうでなければARG2
NULLIF(ARG1、ARG2)ARG1 = ARG2戻りヌルなら、それ以外の場合ARG1
最初のこれらの機能の2つのパラメータを有するIFNULL()、及び第1のパラメータの決意です。最初の引数がnullでない場合、この関数は呼び出し元に最初の引数を返します。それがnullの場合、第二引数に戻ります。
例えば:選択IFNULL(1,2)、IFNULL (NULL、10)、IFNULL(4 * NULL、 '偽');
等しく、nullが返された場合NULLIF()関数は、テストを提供する2つのパラメータは、等しく、等しくない場合、それは最初の引数を返します。
例えば:選択NULLIF(1,1)、NULLIF ( ''、 'B')、NULLIF(2 + 3,4 + 1)。
多くのスクリプト言語は()関数を提供している場合、のような、MySQLの場合は()関数は、単純なテスト条件を作成することができ、この関数は3つの引数を取り式が真である場合と、最初のものは、式を判断しますfalseの場合()は、二番目の引数を返します場合には、IF()は三番目のパラメータを返します。
例えば:selectif(1 <10,2,3)、IF(56は> 100、 '真の'、 '偽'に)、
IF()関数ときに適切な2つだけの可能な結果です。しかし、現実の世界では、我々は試験条件は複数のブランチが必要になることがあります。この場合、MySQLの場合は、機能を提供し、そのスイッチケースの条件は、PHPなどのPerl言語のルーチン。
一般的に示すフォーマット関数幾分複雑なケースは、次の通り:
ケース[式の外部に評価する]
[。ヴァル1]→[結果1]場合
場合[ヴァル2]から[結果2]
場合[ヴァル3]→[結果3]
.....
とき[N-ヴァル]→[N-結果]
他[既定の結果]
終了
それぞれ、一連のブロック次のとき、そして、最初のパラメータが値または式であることが決定され、ここでtrueの場合、最初のパラメータの値を比較するために、指定された、それは結果を返します。場合は、その後、他のすべてのブロックが終了するブロック時にすべてのブロック、各ブロックはデフォルトの結果と一致していない以前の場合は、他のブロックを指定して返された場合の外端部の終わり。何elseブロック、およびすべての-その後、比較が真でない場合、MySQLはNULLを返します。
次のように別のケース構文機能は、時には非常に便利に使用する、があります。
ケース
[条件テスト。1]→[結果。1]
[条件テスト2]→[2結果]
他[既定の結果]を
終了
この状態で、結果はそれぞれの条件テストに依存してはtrueです。
例:
MySQLの> SELECTケース'グリーン'
'赤'、次に'STOP'
'グリーン'、次に'GO' END; 。。SELECT
ケース9 1し、 'A' 2その後、 'B'、他'N- / A'末端;
SELECTケース(2 + 2)= 4、次いで'OK'と(2 + 2)<> 4次いで'ないOK'末端asstatus;
SELECT名前、IF((のisActive = 1)、 'アクティブ'、「非アクティブ。 ')結果fromuserlogininfo;
SELECT FNAME、LNAME、(数学+ SCI + LIT)AS合計、
ケースと(数学+ SCI + LIT)<50、次いで' D '
ときに50と150との間に(数学+ SCI + LIT)' C '


グレードASからマークス;
SELECT IF(暗号化( 'スー'、 'TS')= uPASS、 '許可'、 '拒否')= AS loginresultfromのunameユーザーのスー';ログイン認証#

VIIフォーマット関数
FMT値日付の書式文字列に従ってDATE_FORMAT(日付、FMT)
数字の列としてフォーマットxの形式(x、y)はコンマで区切られ、Yは、小数の数は結果を配置である
(IP)INET_ATON IPアドレス戻りデジタル表現
INET_NTOA(NUM)は、で表されるIPアドレスを返す
書式文字列FMT時間値時間に応じてTIME_FORMAT(時間、FMT)
大きい数値形式とすることができる最も単純な形式()関数であり、読み込み可能なシーケンスは、カンマで区切って指定します。
例:
フォーマット(34234.34323432,3)を選択し、
SELECT DATE_FORMATを((今)、 '%のW、%D %% Y%のR&LT M');
SELECT DATE_FORMAT(NOW()、 '%Y-%M-%D') ;
SELECT DATE_FORMAT(19990330、 '%Y-%M-%D');
SELECT DATE_FORMAT(NOW()、 '%のH:%Iの%のP');
INET_ATON('10 .122.89.47を「)を選択し、
SELECT INET_NTOA(175 790 383 );

変換関数の8種類の
キャスト()関数を提供するデータ型変換のためには、MySQLは、指定されたデータ型に値を置くことができます。タイプ:バイナリ、文字、日付、時刻 、日時、符号付き、符号なしの
例:
(符号付き整数として今())SELECTキャスト、CURDATE()+ 0;
SELECT 'F' =バイナリ'F'、 'F' =キャスト(バイナリとして「F」)。

ナインは、システム情報関数
データベースは()現在のデータベースの名前を返し
ベンチマーク(数、expr)はexprの式は時間がカウント繰り返し実行されます
(CONNECTION_ID)上記のid上記の現在のクライアント接続を返す
FOUND_ROWS()行の合計数を取得するために、選択クエリを最後返し
たユーザを( )またはSYSTEM_USER()は、現在のユーザー名でログインして返します
()バージョンのMySQLサーバのバージョンを返す
例を:
SELECTデータベース()、バージョン()、ユーザー();
selectbenchmark(9999999、ログ(RANDを()* PI()));#この実施例では、MySQLの計算ログ(RAND()* PI( ))の式9999999回。

おすすめ

転載: www.cnblogs.com/gaochsh/p/12521944.html