MYSQL——DQLクエリー言語

3078 ワード

DQLクエリ文
構文
SELECT          from       Where      group by      having           order   limit     

ベースクエリー
  • クエリー単一フィールド
  • SELECT address from student;
    
  • クエリー複数フィールド
  • SELECT name,age from student;
    

    重複を削除
    SELECT DISTINCT address from student;
    

    注意重複を除去するには、重複を除去するには結果セットが完全に同じである必要があります.ソースデータが異なる場合でも構いませんが、検出された結果セットが同じであることを確認する必要があります.
    計算カラム
    --      
    SELECT name,math+english FROM student;
    

    Nullが関与する演算結果がすべてNullである場合
    SELECT name,math,english,math+IFNULL(english,0) FROM student;
    

    エイリアスアクション
    asキーワードクエリーするフィールドに別名を付ける
    --    
    SELECT name,math,english,math+IFNULL(english,0)    FROM student;
    

    条件クエリー
  • where句後跟条件
  • 演算子

  • 、 =、 =、 <>
  • BETWEEN...ANDは1つの範囲で
  • IN(集合)集合は複数の値を表し、カンマで
  • を区切る.
  • LIKE'張%'ファジイクエリ
  • プレースホルダ
  • _:単一プレースホルダ
  • %:複数の任意の文字

  • IS NULLは、Nullの列の値をクエリーします.=null
  • と書くことはできません.
  • andまたは&&
  • orまたは|
  • notまたは!
  • SELECT  * FROM student where age >= 20;
    

    クエリーのソート
    構文
  • order by句
  • order byソートフィールド1ソート方式1、ソートフィールド2ソート方式2
  • ソート方式
  • asc昇順デフォルトのソート方法
  • desc降順降順ソート
  • #      asc
    SELECT * FROM extb1 ORDER BY money ASC;
    #      desc
    SELECT * FROM extb1 ORDER BY money DESC;
    
  • 複数のソート複数のソート条件がある場合、現在のエッジの条件値が同じである場合、第2の条件
  • が判断される.
    #     
    
    SELECT * FROM extb1 ORDER BY age ASC , money DESC;
    

    集約関数
    1列のデータを1つの全体として縦方向の計算を行います.
    Mysqlでの集約関数
  • count計算個数
  • SELECT COUNT(NAME) FROM extb1;
    
  • max計算最大値
  • # MAX
    SELECT MAX(money) from extb1;
    
  • min最小値
  • を計算
    # MIN
    SELECT MIN(age) from extb1;
    
  • sum計算と
  • # SUN
    SELECT SUM(age) FROM extb1;
    
  • avg計算平均値
  • # AVG
    SELECT AVG(money) FROM extb1;
    

    注意集約関数の計算はnull値を除外し、null値は集約関数の計算ソリューションに関与しません:1.計算時に空でない列を選択して計算します.
  • プライマリ・キー
  • COUNT(*) 2.IFNULL関数
  • の使用
    SELECT COUNT(IFNULL(name,0))FROM extb1;
    

    グループクエリー
    グループ化は、一般的に、同じ特徴を持つデータの統計に使用されます.
    構文
  • groupbyパケットフィールド
  • #     
    SELECT sex,AVG(age) FROM extb1 GROUP BY extb1.sex;
    #              
    SELECT sex,AVG(age),COUNT(*) FROM extb1 GROUP BY extb1.sex;
    
    SELECT sex,AVG(age),COUNT(*) FROM extb1 WHERE age >18 GROUP BY extb1.sex HAVING COUNT(*)>3;
    #     
    
    

    注意:
  • グループ化後のクエリのフィールドは、1.パケットフィールド2の集約関数は、パケットが統計的に同じクラスのデータであるため、この条件下でクエリされるのはデータのセット
  • である.
  • whereとhavingの違いはいずれもパケットにおいて条件判断を行う
  • である.
  • whereはパケットの前に限定するが、条件を満たさなければパケットに関与しないhavingはパケットの後に限定し、結果を満たさなければクエリ
  • にはならない.
  • where後は重合関数に従うことはできず、havingは重合関数の判断
  • を行うことができる.
    ページングクエリ
    構文
    LIMITから始まるインデックス、クエリーする数
    一般式
    開始インデックス=(現在のページ-1)*各ページに表示されるエントリ数
    に注意
    ページ分けLIMITはMYSQLの「方言」です