シングルスタンダードのクエリ
DISTINCTフィールド1、フィールド... 2を選択FROMテーブル
の条件
GROUP BYフィールド、
HAVINGスクリーニング
、ORDER BYのフィールド、
LIMITは、数を制限
どこ
グループによる
SELECT
DISTINCT
HAVING
注文によって
制限
1.表見つかり:から
2保持指定された制約は、ファイルに/テーブルは、抽出記録
3.取得したレコードのグループによって、グループでない場合に、グループにより、全体のグループ
4.この行SELECT(デエンファシス)
5は、グルーピングの結果が有するフィルタ
:結果は条件によって並べ替えられて6. 順
7.結果は、数表示バーを制限します
#単純なクエリ を選択し、フィールド名、フィールド名、フィールド名からテーブル名---- 名前照会 を選択 * からテーブル名----- 検索 #の回避重複DISTINCT DISTINCTフィールド名を選択すると、テーブル名; #は、表示形式を定義 連結を()関数は、文字列に使用される 連結(SELECT 「名:」フィールド名)から名前を、 第1のパラメータCONCAT_WS()分離線である SELECT CONCAT_WS(「:」、フィールド名)から名前、 #4で操作クエリ 選択フィールド名、給与* 12(給与* 12)ANNUAL_SALARY(給与)などからテーブル名#の操作に加えて名前を再定義
言葉を使用することができますここで、
1.比較演算子:> <> = <= <>!=
2.between 80と80と100との間の100#値
80または10の3.in(80,10)#値
'Eの%' 4.like
ワイルドカードは%や_することができ、
%任意の数の文字を表します
_ 1つの文字を表します
論理演算子とか
#単一条件検索 を選択し、フィールド名から条件テーブル; 例:EMP_NAME選択から従業員をどこPOST = 「販売」; #多くの条件 を選択し、フィールド名から 従業員どこ条件との条件 例:SELECT EMP_NAME、給与従業員からの投稿 = 「先生」と給与> 10000 ; #のキーの間および 例:EMP_NAME SELECT、給与従業員FROM WHERE給与BETWEEN 10000および20000 ; SELECT EMP_NAME、給与従業員FROM WHERE給与、NOT BETWEEN 10000 20000; #キーワード(ヌルフィールド等号か否かを判断し、必要が)NULL IS 従業員FROM EMP_NAME SELECT、post_comment:例 ; WHERE post_comment IS NULL SELECT EMP_NAME、従業員FROM post_comment post_commentがNOT NULLであり; 注意します空の文字列がnullではない #のコレクションクエリ内のキーワード 例:EMP_NAME SELECT、従業員からの給与 給与 =給与= 3000 OR 3500 OR 4000 OR給与給与= 9000 = ; SELECT EMP_NAME、従業員からの給与 給与のWHERE( 3000,3500 、4000,9000 ); SELECT EMP_NAME、従業員の給与FROM WHERE給与NOT IN( 3000,3500,4000,9000 ); あいまいクエリのような#のキーワード 例:通配符'%は' SELECT * 社員FROM LIKE EMP_NAME ' 例えば%' ; 通配符' _' SELECT * 社員FROM EMP_NAME LIKE ' al__ ' ;
#キーワードをグループ化して単独群 POSTを選択からPOSTによって従業員グループ; #のキーワードによってグループと関連して使用GROUP_CONCAT()関数は、 POST、GROUP_CONCAT(EMP_NAME)を選択するから、POSTによって従業員グループ #に従ってジョブパケット、およびクエリグループをメンバー名の #1 で集計関数を使用して、グループ SELECT POST、COUNT(上記IDを述べた)からのPOSTによる従業員グループ; #に従ってジョブのグループ化、およびそこにあるどのように多くのそれぞれの参照は 「」 ' 強調: 私たちは、グループ化のためのユニークな基礎としてフィールドを使用している場合各自己完結型のレコードセットは、このパケットが感知されていない 複数のレコードのフィールドの間に同じ値を、このフィールドは、一般に、パケットの基礎として使用されます 「」 '
#強調:集約関数は、コンテンツのセットを重合しないパケットは、デフォルトの設定されている場合 例: SELECT COUNT( * )従業員FROM、 SELECT COUNT( *)従業員FROM WHERE depart_id = 1 ; SELECT MAX(給与)従業員FROM。 MIN SELECT(給料)従業員FROM; 従業員からの選択AVG(給与)は、 従業員からの選択SUM(給与); SELECT SUM(給与)ここでは、従業員FROM depart_id = 3。
!!!!!! HAVINGとWHERE同じ場所ではありません #を!!!ハイからローに実行優先順位:>による>グループは、HAVING #によってパケット群の前に発生するので、そこはどこ任意のフィールドことができますが、集計関数を使用することはできません1.。 #有する2は、このようにパケットの分野で使用することができたが、によって、集計関数を使用することができ、他の分野に直接採取することができないパケット群の後に発生します
MySQLの> @@ sql_modeのを選択します。 + -------------------- + | @@のsql_mode | + -------------------- + | ONLY_FULL_GROUP_BY | + -------------------- + 行にセット(0.00 秒) のMySQL > SELECT * FROM から給与> 100000 EMP 。 + ---- + ------ + ------ + ----- + ------------ + --------- + - ------------- + ------------ + -------- + ----------- + | ID | EMP_NAME | セックス| 年齢| 入社年月日| ポスト| post_comment | 給料| オフィス| depart_id | + ---- + ------ + ------ + ----- + ------------ + --------- + - ------------- + ------------ + -------- + ----------- + | 2 | アレックス| 男性| 78 | 2015年3月2日| 教師| NULL | 1000000.31 | 401 | 1 | + ---- + ------ + ------ + ----- + ------------ + --------- + - ------------- + ------------ + --------- + ----------- + 行でセット(0.00 秒) のMySQL >選択後、GROUP_CONCAT(EMP_NAME)からポストを有する給与> 10000によってEMP基を表します。#错误、分组后无法直接取到給与字段 ERROR 1054(42S22):不明な列' 給与' で ' 句を有する' MySQLの >を選択後、GROUP_CONCAT(EMP_NAME)からポスト平均を有する(給料)> 10000によってEMP基; + ----------- + ------------------------------------- ------------------ + | ポスト| GROUP_CONCAT(EMP_NAME)| + ----------- + ------------------ + ------------------------------------- |操作|プロセス一口鉄、銅一口鄭銀をかむ、Yaojin、張イェジン| |先生|ジャッキー・チェン、Jinxin、jingliyang、liwenzhou、yuanhao、wupeiqi、アレックス| + ----------- + ---------- + --------------------------------------------- 行で SET( 0.00 秒) 検証
押して、単一のソート SELECT * 従業員の給与BY ORDER FROM; SELECT *社員から順給与ASC BY; #昇順 *従業員の給与DESC BY ORDER FROM SELECT; #の降順 複数列並べ替え:古い同じ場合は、最初に年齢順に応じて給与に応じてソート SELECT * から従業員の 年齢BY ORDER、 給与DESC;
例: SELECT * 給与DESC BY従業員から順 LIMIT 3; #初期位置をデフォルトは0 SELECT * DESC BY従業員から順給与 LIMIT 0、 5; #0から始まる、すなわち、最初のクエリが最初に、次いで、この1つは含みます5つのチェックなどのバック SELECT * 従業員給与DESCのBY ORDERから LIMIT 5,5; #5を含むその後の調査が含まれている記事6を、チェックアウトすることである第五の初めから、
SELECT *従業員FROM WHERE EMP_NAMEのREGEXP、' ^エール' ;エール#では始まる SELECTを * EMP_NAMEのREGEXP、従業員FROM ' $に' ;の末端に位 SELECT *従業員FROM EMP_NAMEのREGEXP、' M {2} ' ;#二つの連続メートル