2.データベースクエリ

- データの準備
    - データベースの作成
    文字セット= UTF8 python_testデータベースを作成します。
 
    - データベースを使用します
    python_testを使用します。
 
    - 何を使用して、現在のデータが表示されますか?
    データベースを選択();
 
    - データテーブルを作成します。
    - 学生の表
    (テーブルの学生を作成します
        nullでないのid int型符号なし主キーAUTO_INCREMENT、
        名前のVARCHAR(20)デフォルト ''、
        年齢TINYINT、符号なしデフォルト0、#1 tinyin最小值
        高さ十進(5,2)、#の小数小数
        男女列挙型(「男性」、「女性」、「中立」、「秘密」)デフォルトの機密 "
        cls_id int型符号なしデフォルト0、
        is_deleteビットデフォルト0
    );
 
    - クラステーブル
    (テーブルクラスを作成します
        ID int型符号なしAUTO_INCREMENTプライマリキーnullではありません、
        名前のVARCHAR(30)nullではありません
    );
 

データを準備します

- 学生のテーブルに生徒値に挿入データを挿入
(0,'小明',18,180.00,2,1,0),
(0、 'さつき'、18,180.00,2,2,1)
(0、 'エディ'、29,185.00,1,1,0)、
(0、 'アンディ'、59,175.00,1,2,1)
(0、 '黄蓉'、38,160.00,2,1,0)
(0、 '風水'、28,150.00,4,2,1)、
(0、 'WangZuXian'、18,172.00,2,1,1)
(0、 'ジェイ'、36、NULL、1,1,0)、
(0、 ' - くん'、27,181.00,1,2,0)
(0、 'クリスタル劉'、25,166.00,2,2,0)
(0、 'ビーナス'、33,162.00,3,3,1)
(0,'静香',12,180.00,2,4,0),
(0、 '郭靖'、12,170.00,1,4,0​​)
(0、 '周潔'、34,176.00,2,5,0)。
 
- クラスに挿入されたデータの表は、(0、「python_02期間」)、クラス値(0、「python_01期間」)に挿入します。
 
 
- クエリ
    - すべてのフィールドをクエリ
    - 表名から選択*;
    学生から*を選択します。
    *クラスから選択します。
    IDを選択し、クラスの名前。
 
    - 指定したフィールドをクエリ
    - 選択行1、列2、...テーブル名から。
    名前、学生からの年齢を選択します。
    
    - フィールドからエイリアスとして使用します
    - テーブル名から名前....として選択フィールド。
    学生からの年齢などの名前、年齢などの名前を選択します。
 
    - テーブル名から....テーブルのフィールドを選択し;.
    students.name、学生からstudents.ageを選択します。
 
    
    - あなたは、テーブルの別名としてを通して再生することができます
    。 - エイリアスとしてテーブル名から....エイリアス]フィールドを選択します。
    students.name、学生からstudents.ageを選択します。
    s.name、Sなどの学生からs.ageを選択します。
    - 失敗した選択students.name、Sなどの学生からstudents.age。
 
 
    - 重複行を排除
    - 個別のフィールド
    生徒は異なる性別を選択します。
 
 
- 条件お問い合わせ
    - 比較演算子
        - 選択し....どこ表名から.....
        - >
        - クエリ以上18歳情報
        生徒の年齢> 18から選択*;
        ID、名前、年齢> 18学生からの性別を選択します。
 
        - <
        - 情報クエリの18歳未満
        生徒の年齢<18から選択*;
 
        - > =
        - <=
        - 以下の18歳のクエリ情報
 
        - =
        - 名前ですべての学生のための18年のクエリ年齢
        年齢= 18の学生から*選択します。
 
 
        - !=または<>
 
 
    - 論理演算子
        - と
        - 18-28情報とその学生
        年齢> 18歳<28学生から*選択します。
        - 失败年齢> 18 <28学生から*を選択します。
 
 
        - 18歳の女性
        生徒の年齢> 18と性別= "女" SELECT * FROM。
        年齢> 18と性別= 2学生から*選択します。
 
 
        - または
        --18チェック高さより上または180(付属)以上
        年齢> 18または高さ> = 180学生から*選択します。
 
 
        - ありません
        - 上記の情報の中に、この範囲18歳の女性ではありません
        - 学生> 18ない年齢や性別= 2 *から選択します。
        学生ではない(年齢> 18と性別= 2)から選択*;
 
        - 年齢は18、女性以下でありません
        学生(ない年齢<= 18)と性別= 2 *から選択します。
 
 
     - ファジィクエリ
        - のような
        - 代替の%以上
        - 1つずつ交換し_
        - 「小さな」開始名にクエリ名
        名前=「小」学生から名前を選択します。
        名前「小の%」のように、学生から名前を選択します。
 
        - 「小さな」すべての名前でクエリ名
        名前「%小%」のような学生から名前を選択します。
 
        - クエリの名前に2つの言葉があります。
        #2つのアンダースコア;名「__」のような学生から名前を選択
 
        - お問い合わせは、名前3つの言葉を持っています
        「___」の名前のような学生から名前を選択します。
 
        - クエリは、少なくとも2ワードの名前を持っています
        名前「__%」をなどの学生から名前を選択します。
 
 
        - RLIKE正規
        - 週開始するクエリ名
        名前RLIKE学生から名前を選択し、「^ *ウィーク。」;#^は始まりを表し、
 
        - クエリは、名前アーロンで終わる、一週間で始まります
        学生どこ名RLIKEから名前を選択し、「^周倫$ *。」;#$側を表します
 
 
    - 範囲クエリ
        - (1、3、8)に範囲内で非連続を表します。
        - クエリの名前は、34 18歳
        名前、年齢= 18、年齢= 34の​​学生から年齢を選択します。
        年齢= 18、年齢= 34、年齢= 12の学生から名前、年齢を選択します。
        名前、(12、18、34)の学生時代からの年齢を選択します。
 
 
        
        - ではないのではない非連続的な範囲で
        - 年齢間の情報は、34歳の18ではありません
        名前、年齢ではない(12、18、34)の学生から年齢を選択します。
 
 
        - との間に...と...連続した範囲を表し、
        18-34歳の情報照会 -
        名、学生18と34の間の年齢からの年齢を選択します。
 
        
        - いない間に...と...は、範囲の連続表現ではありません
        情報照会は、18と34の間の年齢ではありません -
        学生ではない18と34の間の年齢から選択*; #ない是个間の整体
        学生から*を選択する場所18と34の間ではない年齢。
        - 失败的学生の年齢ではない(18〜34)から選択*;
 
 
    - 空の判決
        - 空の文がnull
        - 高さのクエリ情報は空です
        高さがnullである学生から*を選択します。
        高さがNULLである学生から*を選択します。
        高さがNullである学生から*を選択します。
 
        - null以外を宣告がnullではありません
        高さがnullでない学生から*を選択します。
 
 
 
- ソート
    - フィールドによって順
    - ASCの昇順、すなわち、昇順
    - すなわち、降順に降順降順、
 
    - クエリの男性に、年齢の昇順でソートし、年齢の18から34歳まで
    学生ここで、(18と34の間の年齢)及び性別= 1 SELECT * FROM。
    生徒から*を選択する場合年齢別及び性別= 1つのオーダー(18と34の間の年齢)。#默认ASC
    学生ここで、(18と34の間の年齢)と年齢ASCによる性別= 1つの順序SELECT * FROM。
 
 
    - 18-34歳の年齢層の間でクエリの女性、ハイからローの並べ替えまでの高さ
    生徒から*を選択する場合、高さDESCによって性別= 2オーダー(18と34の間の年齢)。
    
 
    - 複数のフィールドによって順
    - クエリの18-34歳の年齢層の女性、低ソート高からの高さ、小規模から大規模まで年齢別の高さであれば、同じような状況の下で
    学生ここで、(18と34の間の年齢)と高さDESC、識別DESCによって性別= 2順序SELECT * FROM。
 
 
    - クエリの18-34歳の年齢層の女性、低ソート高からの高さ、同じ状況下で小から大への年齢別身長であれば、
    - 年齢は、IDに応じてその順と同じである場合
    生徒から*を選択する場合、高さDESC、年齢ASC、識別DESCによって性別= 2オーダー(18と34の間の年齢)。
 
    
    - 小規模から年齢によって、大規模な背の高い高からソートへのショート
    学生は年齢ASC、DESC高さによって注文から選択*;
 
 
- 集計機能
    - 合計
    - カウント
    - クエリの男性のどのように多くの人々、どのように多くの人女性であります
    性別= 1生徒から選択*;
    SELECT COUNT(*)性別= 1学生から。
    SELECT COUNT(*)性別= 1学生から男性の数として;
    SELECT COUNT(*)女性として人数性別= 2学生から。
 
 
    - 最大
    - 最大
    - クエリ最古
    学生からの年齢を選択します。
    学生からの最大(年齢)を選択します。
 
    - クエリの女性の最高の高さ
    性別= 2学生からの最大(高さ)を選択します。
 
    - 最小
    - I
 
    
    - 合計
    - 合計
    - すべての年齢の和の計算
    学生からの和(年齢)を選択します。
 
    
    - 平均
    - 平均
    - 平均年齢計算
    学生からの平均(年齢)を選択します。
 
 
    - 平均年齢計算合計(年齢)/ COUNT(*)
    学生からの和(年齢)/ COUNT(*)を選択します。
 
 
    - 小数を保持するために丸みを帯びたラウンド(123.23、1)
    - すべてのためのコンピューティングの平均年齢、小数点以下2桁
    ラウンド選択(合計(年齢)/ COUNT(*)、2)学生から。
    ラウンド選択(合計(年齢)/ COUNT(*)、3)学生から。
 
    - 平均的な身長の男性小数点以下2桁の計算
    ラウンド選択(AVG(高さ)、2)性別= 1学生から、
    - 失败選択名、ラウンド(AVG(高さ)、2)性別= 1学生から、
 
- パケット(典型的には重合で使用されます)
 
    - グループによる
    - セックス、セックスに応じてすべてのクエリをグループ化
     - 男女別の学生グループから名前を選択します。
     - 男女別の学生グループから*を選択します。
    男女別の学生グループから性別を選択します。
    - 失败性別によって、学生のグループから選択*;
 
    - の各男女の数を計算します
    男女別の学生グループからCOUNT(*)、性別を選択します。
 
 
    - 男性の数を計算します
    性別を選択し、学生から(*)カウント 性別= 1つの 男女別のグループ。
 
 
    - GROUP_CONCAT(...)
    - セックスの同じ種類でクエリ名
    性別、選択 GROUP_CONCAT(名) の学生から 性別= 1つの 性別によって基;
    性別による性別= 1グループの学生から性別、GROUP_CONCAT(名前、年齢、ID)を選択します。
    性別を選択し、男女別性別= 1グループの学生からGROUP_CONCAT(名前、 "_"、年齢、 ""、ID);
 
    - 持ちます
    - クエリの平均年齢性別の30年の年齢、名前平均を持つ(年齢)> 30
    性別、AVG(年齢)を有する男女別の学生グループからGROUP_CONCAT(名)、平均(年齢)> 30を選択します。
    
    - つ以上の情報の各男女クエリの数
    COUNT(*)> 2を持つ男女別の学生グループから性別、GROUP_CONCAT(名前)を選択します。
 
      - どこで差を有します:
     - ここで、要素の状態判定テーブル、クエリの結果の条件判定を有します
 
 
- ページング
    - 制限始動、数
 
    - データの制限の数をチェックしてください
    性別= 1リミット2生徒から選択*;
 
    - データクエリ5の前に
    学生は0を制限するから、5 *を選択します。
 
    - クエリid6-10(付属)本の序文
    学生は5を制限するから、5 *を選択します。
 
 
    - ページあたり2、の最初のページ
    生徒から選択* 0,2を制限します。
 
    - 2ページあたり、2ページ目
    生徒から選択* 2,2を制限します。
 
    - ページ2、最初の3ページあたり
    生徒から選択* 4,2を制限します。
 
    - 2ページあたり、4ページ
    学生は6,2を制限するから*を選択します。 - ----->リミット(P N -1)*各番号、ページ番号、
 
    - ページあたり2、小型から大型まで、年齢によって、6ページの情報を表示します
    - 失败2 *(6-1)、2を制限学生SELECT * FROM。
    - 失败年齢ASCで10,2順序を制限生徒から選択*;
    学生は年齢ASC制限10,2によりご注文から選択*;
 
    高さDESC限度0,2によって性別= 2オーダーの学生から*選択します。
 
 
 
- クエリ(マルチテーブルの状況)に参加
    - 参加... ONインナー   #接続で
 
    - 選択...インナーは表Bに参加表から。
    内側の学生が授業に参加SELECT * FROM。
 
    - 学生は、対応するクラスとクラス情報を照会することができます
    内側の生徒から選択* students.cls_id = classes.id上のクラスに参加。
 
    - 表示名の要件に従い、クラスで
    学生を選択*、内側の学生からclasses.nameがstudents.cls_id = classes.id上のクラスに参加。
    インナーはstudents.cls_id = classes.idに授業に参加する学生からstudents.name、classes.nameを選択します。
 
    - テーブル名からデータへ
    インナーはs.cls_id = c.idにCなどのクラスに参加し、Sと学生からs.name、c.nameを選択します。
 
    - クラスのクエリの学生とクラス情報がクラスに対応することができ、ショーの学生は、すべての情報、名前だけ
    Sを選択*、インナーはs.cls_id = c.idにCなどのクラスに参加し、Sと学生からc.name。
    
    - 上記のクエリでは、クラス名は、最初の列に表示されています
    。学生から* c.name、Sを選択し、内側にはs.cls_id = c.id上のCとして授業に参加Sなど。
 
    - クエリの学生とクラス情報がクラスに対応することができ、クラスに応じてソート
    - 内側が上....順cとclsssesに参加Sと学生からc.xxx s.xxxを選択します。
    、Sをc.nameを選択*学生からインナーがc.nameでs.cls_id = c.idために、Cなどのクラスに参加Sなど。
 
    - 学生IDに応じて小から大順に時間同じクラスで
    。学生から* c.name、Sを選択し、内側にはc.name、s.idによってs.cls_id = c.idためにcとクラスに参加Sなど。
 
    - 左に参加
    - 各学生に対応する照会クラス情報
    左s.cls_id = c.idにCなどのクラスに参加し、Sと学生から*を選択します。
 
    - 学生のクエリは、クラス情報に対応していません。
    - 選択... .....上のcとXXXに参加左SなどのXXXから.....
    - 選択...持つ.....にcとXXXに参加左SなどのXXXから.....
    Sと左s.cls_id = c.id持つc.idがnullにCなどのクラスに参加する学生から*を選択します。
    Sと左s.cls_id = c.id c.idがnullである場所に、Cなどのクラスに参加する学生から*を選択します。
 
    - 右側に参加
    - 左と完全な名前のスワップポジションデータテーブルには、参加します
 
- 自己相関
    -地方のリンケージURL: http://demo.lanrenzhijia.com/2014/city0605/
 
    - すべての州を照会
    pidがnullである地域から*を選択します。
 
    - どのような市、山東省をチェックアウト
    インナーはprovince.atitle =「山东省」を有するcity.pid = province.aidに都市などの分野に参加する州などの分野から選択*;
    インナーはprovince.atitle =「山东省」を有するcity.pid = province.aidに都市などの分野に参加する地域として、地域からprovince.atitle、city.atitleを選択します。
 
    - 何郡青島をチェックしてください
    インナー州などの分野から選択province.atitle、city.atitleは=「青岛市」province.atitleを持つcity.pid = province.aidに都市などの分野に参加します。
    PID =は(atitleは=「青岛市」地域からの援助を選択)領域から選択*
 
 
- サブクエリ(この他の選択の選択にネスト)
    - スカラー副問合せ
    - 上記の平均高さの情報をチェックしてください
 
    - 情報照会最高男の子
    高さ= 188学生から*選択します。
    高さ=(学生から最大(高さ)を選択)学生から*選択します。
 
    - 列のサブクエリ
    - 学生情報照会クラスの学生は数に対応することができます
    - どこcls_id(クラスからIDを選択する)の学生から*選択します。
 
 

おすすめ

転載: www.cnblogs.com/WJZheng/p/11495124.html