基本的なクエリおよび方法
ここから、グループ限界、によって注文、別個有する、によって
でも、テーブル
インナー、右の参加、労働組合に加入左ジョイン
順序を書きます
EMPからID、名前を選択する場合、ID> 3とid <6。
実行順序
最後に決定する#からは何であるか、テーブル
ここで、#フィルタを超える条件に応じたデータ
のデータのうち、いくつかのフィールドを選択#フィルタアウト
EMP \ Gから選択*;結果は混乱クエリでクエリ結果を調節することができる現象プラス\ Gを表示される可能性がある場合、テーブルのフィールドを組版場合は特に
以下3 6以上番号#1クエリデータ
EMPからSELECT * WHERE ID> ID = 3および<= 6、
3と6の間のidはEMPからSELECT *
ステートメントは、上記と全く同等である
有料クエリとして#2 20,000 18,000または17000データ
SELECT ID、給与または給与= 20000 = 18000 = 17000または給与から名前EMP;
IDを選択し、名前(20000,18000,17000)EMP給与から。
#3.クエリの従業員の名前と給与の従業員名はアルファベットのOが含まれています
%:任意の数の文字にマッチ
_:任意の文字に一致します
名「%0%の」のようなEMPから名前、給与を選択します。
#4。従業員名のクエリが従業員の給与の4文字の名前である
WHERE名「____」のような給与EMPから、SELECT名;
#5.クエリIDが3未満または6つのより大きいデータである
EMPから選択*をどこID <3 ID又は> 6;
SELECT * EMPからBETWEEN ID 3としない6。。。
#6クエリは給与範囲20000,18000,17000データでない
ないEMP給与からSELECT ID、名前WHERE(20000,18000,17000);
#ヌルを一緒に使用=されることができない場合7.クエリジョブの説明は、単に判断することができる名、ジョブ名のスタッフの空である
SELECT名前は、POSTからWHERE EMP post_comment = NULL;
SELECT名前は、POSTはEMPのpost_commentからWHEREがNULLです。
MySQLは大文字と小文字を区別しません
グループによるグループ
;ポストでEMPグループから選択*
最小単位が設定され、そのグループ内の単一のデータ情報を表示してはならないんすべきグループ化した後、
あなただけのフィールド情報パケットを取得することができますMySQLでグループの直後に他のフィールドの情報を取得することはできませんが、他の方法により(集計関数)プロファイル取得
あなたのMySQL与えられていない命令を厳格モードが設定されていない場合は
、「%モード%」のような表示変数を、
現在のウィンドウのアクティブのセッションセット
セットグローバルグローバルに有効な
セットグローバルsql_modeのは=「ONLY_FULL_GROUP_BY STRICT_TRANS_TABLESを、 」;
SELECT POSTによるEMPからグループ*;
POSTによるEMPからSELECT ID、グループ名、
POSTによってグループEMPから名前を選択します。
#2は、最大最小各部門の集計関数SUMカウントAVGのための最大の給料を取得
SELECT POST、MAX(給与) ;ポストによってEMP群から
フィールド別名
「セクタ」ポストによってEMPグループから「最大給与」として、MAX(給与)として選択後、
ポスト「部門」を選択し、MAX(給与)ポストによってEMPグループから「最大賃金」;
最低賃金#各部門
の選択後、分POSTによってEMPグループから(給与)、
各部門の#平均給与
を選択後、よるEMPグループからAVG(給与)ポスト;
#の各部門の合計支払う
POSTによるEMPグループからSELECT POST、SUM(給与)を、
それぞれの部門の人々の#番号
SELECT POST POSTによるEMPグループから、COUNT(年齢);
SELECT POST POSTによってグループEMPから、COUNT(給与);
POSTによってEMPからSELECT POST、COUNT(ID)基であり、
POSTによってグループEMPからSELECT POST、COUNT(post_comment);
統計的時間内のパケット数は、任意の非ヌルを埋めるためにフィールドは数える行うことができ、そのようなIDフィールドとして、固有の識別データフィールドを使用することをお勧めすることができ
、各グループ内で自動的に単一のデータが希望の計算を行います、あなたは考慮する必要はありませんアグリゲーション機能
クエリパケット及び#3それぞれの後に部署の名前を学生の名前の下にあるすべての部門
POST SELECT POSTによってグループEMPから、GROUP_CONCAT(名前);
SELECT POST、GROUP_CONCAT( 'DSB'、名)グループEMPからPOSTによっては、
各データフィールドは、(複数でもよい)に対応するパケットを取得することがGROUP_CONCAT()を指定します値
GROUP_CONCAT( ":" 名、給与)、ポストを選択することにより、ポストEMPグループから;
連結
選択CONCAT( "NAME:"、名前)、CONCAT( "SAL:"、給与)EMPから。
:ヒント
ステッチデータはあなたが助けるために使用される連結
、連結グループ化せずに使用し
GROUP_CONCAT後にグループ化を使用します
#クエリ各従業員の年間給与
を選択し、名前、給料EMPから* 12 。
#最初のルックアップテーブルでは、まず、最も基本的な手順に従ってください、そして、何の制限を決定していないために、この表をチェックしどのようなテーブルを決定して、分類の必要性を決定し、最終的にフィールドに対応する必要があるかについて決定するために必ず
あなたがする必要があります各ステップによって生成された結果は、新しいテーブルとして扱われ、そのテーブルに基づいて、その後、他の操作を実行している
1.クエリジョブ名を、すべてのスタッフのポジションの名前はGROUP_CONCAT含ま
含まれる各ジョブ内の従業員の2.クエリジョブ名と番号をカウント数
のカウント3.検索会社の男性社員と女性社員で数
平均4.クエリジョブ名、および各位置の平均給与
5.クエリジョブ名と各位置maxの最高給与
の各位置の最低位置6.クエリと名前分給与
7.出会う男性社員と男性社員の平均給与、女性従業員の平均給与と女性従業員の平均
テーブルは、すべてのデータがあり、デフォルトでグループを作成していない場合は合計数平均分集計関数maxは、パケットの後だけを使用することができますセット
の書かれた順
から、グループごとに選択し、
実行順序
から、WHERE、SELECT、によってグループ
30歳の時に8、統計部門 従業員の平均賃金よりも
30歳以上の若年労働者を得るために#
から選択ポスト、AVG(給与)ポストによるEMPどこ年齢> 30基です。
終わったら息が、書くための予備的な最初のステップの手順に従ってはならないのSQL文を書く、結果のクエリステップの外観を書き、その後に基づいて、現在の結果の書き込みに下る
有する
今場所を正確にもデータをフィルタリングするために使用されているが、今持っていますでグループ後の
予備スクリーニングを行うための総合的なデータですが、データパケットを持った後、対象スクリーニング実施することである
1、30歳以上の従業員の平均賃金の年齢での統計部門を、
平均賃金を保持10,000部門も大きく
、POSTによって年齢> 30グループでは、AVG(給与)> 10000 HAVING EMPからSELECT POST、AVG(給与)
AVG(給与)> POSTによって年齢> 30グループEMPからSELECT POST、AVG(給与) 10000;#エラー
#が強調される:背後グループで使用されなければならないした
AVG(給与)を有するEMPからSELECT *> 10000;#与えられた
実行順序
によって基、WHERE、から、HAVING、SELECT
DISTINCT重複排除
に複数の重複データaを重い
重いデータにはまったく同じ再ためにしなければならない
限り、1が同じではないので、データを複製することはできません
個別のID、EMPから年齢を選択し、
実行順序
、からは、WHERE、GROUP BY、HAVING、SELECTは、DISTINCT
順のソート
デフォルトはASCを昇順され、また、DESC降順になることができます
* EMP注文から給料でSELECT、
SELECT *をEMP注文からで給与ASC;
給与DESCによってEMP注文からSELECT *;
年齢別EMP注文からSELECT *、給与;#は、最初の年齢に応じて、同じ昇順年齢を昇順で給与に従わない場所を
選択* EMPオーダーから年齢ASCによって 、給与DESC; 最初に行い、その後、同じ昇順年齢ケース昇順に給与をフォローする年齢に応じ#
#統計部門高齢者10歳以上の平均賃金を、
#1000よりも平均給与より高い部門を維持し、その後、平均賃金は、ソート
を選択し、ポスト、平均年齢> EMPから(給料)ポスト10基が平均により平均(給与)、> 1000順序(給料)を有する;
制限データ表示制限の数
EMP限界5 SELECT * FROM;#は、データのわずか25を示す
EMP制限5,5 SELECT * FROM;
制限は唯一のパラメータである場合、数だけ表示を表す
制限時間は、第一引数で指定された2つのパラメータを有する場合2番目のパラメータは、以降の数を示して開始位置から開始位置を示す
#高い男の照会給与の詳細
最初の並べ替えに合わせて#の給料を
してからちょうどリミット制限#を取る
給与降順でEMPオーダーSELECT * FROM制限1;
#はちょうど基本的なプログラミングをしているに関連付けられた最初のREG見られ
、通常の
選択* EMPから名前の正規表現「 ^ jは*(N | Y)$を。」;
マルチテーブルクエリ
テーブルクエリを二つのカテゴリーに
表1.米国のクエリ
2.サブクエリ
SELECT * FROM EMP、DEPから、結果は直積である
#クエリ部門の従業員と情報技術部門の部門
あなたも、テーブル、コネクタに接近していない助けるために専用の(内部結合)、左の接続(左結合)、右の接続(右結合)、完全に接続されている(労働組合)#限り、労働組合を追加するために、左右の接続SQL文が完全に接続されてしまいます
* EMPは参加emp.dep_id DEP = dep.id ON選択から左
連合(EU)
; SELECT * FROM EMPに参加し、右DEPから= emp.dep_id dep.id ON
サブクエリ
クエリ結果がテーブルとして、さらにクエリのSQLステートメントを
選択;上記のIDを述べたから、DEPは= WHERE名前(SELECT EMPからはWHERE名=「ジェイソン」をdep_id)
#2.各部門の従業員、最新の新兵の
各部門は、最新の新兵、プレスコンティンジェンシー・テーブル・クエリに対応する部署をチェックします:#のアイデアを
t1.id SELECT、t1.name、t1.hire_date、t1.post、T2。* EMPからAS T1
インナー参加
T2 AS(POSTによってMAX_DATE AS EMPグループからPOST、MAX(入社年月日)を選択)
ON = T2のt1.post .post
WHERE t1.hire_date = t2.max_date
;
#は、テーブルにエイリアスを再生することができ
別名仮想テーブルをチェックアウトすることができます。#
#フィールドにエイリアスを再生することができます