MySQLの制約クラスのノート

今日では、コンテンツ#
    
    1 DQL:クエリ
        1クエリの並べ替え
        2.集計関数
        3.クエリパケット
        4.クエリ]タブ

    2.制約
    3.マルチ表の関係
    4パターンの
    バックアップと復元データベース5

#DQL:クエリ声明
    1.ソートクエリ
        *構文:ORDER BY句
            *ソートフィールド1分類1によって順序、ソートフィールド2ソート2 ...

        *並び替え:
            * ASC:昇順、デフォルト。
            * DESC:降順。

        *注:
            *基準をソートが複数ある場合は、現在の状態値と、同じ側にのみ第二決意条件。


    2.重合機能:全体として列データ、長手方向の計算。
        1. COUNT:数カウント
            主キー:1、一般に、選択された非ヌル列
            2. COUNT(*)
        2最大:最大値算出
        3.分:最小値が算出
        4.合計:計算および
        5.平均:平均値を計算する
        

        *注:NULL値を除いた重合算出機能、。
            解決策:
                1.列が計算null以外含まれていません
                2. IFNULL機能

    :3グループ化されたクエリ
        のフィールドをグループ化することにより、グループ;:1.構文
        2.注:
            フィールド1.クエリパケット後:パケットフィールド、集計機能
            2持つとどこの違いは?
                パケットが定義される前に、条件が満たされない場合、パケットには関与しない1。結果が満足されない場合は、クエリの外ではありません、次のパケットで定義した
                2集約関数でないと判定さ、関数が有する重合することができます。

            -男女別にグループ化され。クエリは、平均スコア男性と女性の学生であった

            学生sexから、GROUP BY SELECTセックス、AVG(演算);
            
            -性別に応じてグループ化。クエリはの男性と女性の学生の平均数だった
            
            SELECTセックス、AVG(数学)、性別BY学生のグループからCOUNT(ID);
            
            -男女別にグループ化され。クエリは、要件の数平均の男性と女性の学生だった:グループに参加していない人よりも70ポイント低いスコア
            AVG(数学)、SELECTセックス、COUNT(上記IDを述べた)WHERE数学の学生> 70グループからセックスBY;
            
            -男女別グループ化。クエリは、要件の数平均の男性と女性の学生だった:パケットの後のパケットに参加していない人よりも70ポイント低いスコア。数は2人のよりも大きい
            ;> 70数学GROUP BYセックスHAVING COUNT(上記IDを述べ)>学生2からのカウント(上記IDを述べ)、SELECTセックス、AVG(演算)
            
            SELECTセックス、AVG(数学)、COUNT(上記IDを述べ)数学生WHERE FROM > 2 HAVINGの性別番号によって数学> 70基であり;


            
    前記ページングクエリ
        1.構文:制限開始インデックス、ページあたりのクエリの数;
        2.式:開始インデックス=(現在のページ数- 1)*件記事番号
            -ページには、3つのレコードを示し

            、P 1 - ;学生LIMIT 0,3 SELECT * FROM
            
            SELECT * FROM学生3,3 LIMIT; -ページ2
            
            SELECT * FROM学生6,3 LIMIT; -ページ3

        3.制限はMySQLの「方言」である


##制約
    *概念:データテーブルは、データの正確性、有効性と整合性を確保するために定義されています。    
    *分類:
        1主キー制約:主キー
        2.非空制約:nullではない
        UNIQUE:3.唯一の制約
        4.外部キー制約:外部キー

    *非空制約:NULLではない、null値がすることができません
        表1は、作成時に追加します制約
            テーブルSTU作成する(
                上記のID INTを、
                NAME VARCHAR(20)NOT NULL -名前が空である
            );
        2.テーブルを作成した後、空でない制約を追加する
            ALTERテーブルSTU MODIFY NAME VARCHAR(20)NOT NULL;

        3.名を削除非NULL制約
            ALTERテーブルSTU MODIFY NAME VARCHAR(20である);
    
    
    *唯一の制約:ユニークな、繰り返さない値
        テーブルを作成するとき1.、一意性制約の追加
            (表STUをCREATE
                INT ID、
                PHONE_NUMBER VARCHAR(20)UNIQUE -一意性制約
            
            );
            *注MySQLの、列の値は、一意の制約複数ヌル定義することができる
        
        
        唯一の制約は、削除2.
        
            ALTER TABLE STUをDROP INDEX PHONE_NUMBERと、
        
        前記作成テーブルの後、唯一の制約が追加され
            、ALTERテーブルSTU MODIFY PHONE_NUMBER VARCHAR(20)で一意
    
    の主キー:*主キー制約。
        1.注:
            1.意味:唯一の非空と
            テーブルを持つことができます。2. 1つのプライマリキーフィールド
            主キーが一意にテーブル内のレコードを識別することである。3.

        あなたがテーブルを作成すると、2主キー制約を追加する
            テーブルSTUを(作成
                上記のid int型に言及主キー、 -主キー制約のIDに追加
                名VARCHAR(20である)
            );

        3.ドロッププライマリー
            -エラーSTU識別INT表ALTERを変更し、
            ALTER TABLE STU DROP PRIMARY KEY;

        4.テーブルを作成した後、主キー追加
            ALTER TABLE STU MODIFY IDをPRIMARY KEY INTを、

        5自動拡張:
            1.コンセプト:カラムが数値型である場合AUTO_INCREMENTが自動的に拡張する価値が行うことができる使用して

            テーブルを作成するときに、2主キー制約を追加し、成長からメインキーを完了し
            、テーブルSTU作成します(
                ID int型主キーAUTO_INCREMENTを、 - IDに主キー制約の追加
                )(された20名VARCHARを
            )。

            
            3の自動成長削除
            上記のID INTのSTUを変更ALTERテーブル;
            4.自動増加追加
            上記IDを述べMODIFY ALTERテーブルをINT AUTO_INCREMENT STU;


    *外部キー制約:外部キー、テーブルは、このようにデータの精度を確保する、関係テーブルで生成されるようになっています。
        あなたがテーブルを作成するときは、外部キーを追加することができます1。
            *構文:
                (表表を作成
                    ....
                    外部キー列、
                    外部キー外部キー(外部キー列名)の制約名は、プライマリ・テーブルの名前(プライマリ・テーブルのカラム名)を参照
                );
                注:最後場合、外部キー、外側を追加するかつての一つとしてだけではキー「」

        2.外部キー削除
            ALTERテーブルテーブルDROP FOREIGN KEY外部キー名を、

        3テーブルを作成した後、外部キーを追加
            TABLEテーブル名をALTER CONSTRAINT外部キー名FOREIGN KEY(外部キーフィールド名)を参照の追加メインテーブル名(プライマリ・テーブルのカラム名);
        
        
        4.カスケード操作
            1.カスケード操作の追加
                構文を:CONSTRAINT外部キー名ADDテーブルのテーブル名をALTER
                        FOREIGN KEY(外部キーフィールド名)を参照するにはUPDATE CASCADE ON ON)主テーブルの列名(マスターテーブルに名前を付けるDELETE CASCADEを。
            2.カテゴリー:
                1.カスケード更新:UPDATE CASCADE ON
                2.カスケード削除:DELETE CASCADEオン
    

の設計データベース##

    1.マルチテーブルとの間の関係
        :1分類
            :1.一対一(理解)
                など*:人間のアイデンティティ証明書は、
                *分析:人は唯一のIDカードで、IDカードは一人だけに対応
            し、多くの(多くの)2:
                *のような:部署と従業員は
                *分析:部門は、より多くのスタッフを持っている、唯一のスタッフ区分に対応して
            3-多く:
                *など:学生やコース
                *分析:学生はコースの多くを選択することができ、コースも多くの学生の選択かもしれない
        関係を達成するために2:
            1対多(多くの):
                *など:部署と従業員が
                実装を*:マルチパーティ内の外部キーの確立、党の主キーを指します。
            2.多:
                *のような:学生とコース
                *方法:多くの関係は第三中間テーブルの実装を支援する必要があります。主キーテーブルを二つそれぞれ少なくとも二つのフィールド、第3のテーブルの外部キーのような2つのフィールドを含む中間テーブル
            -3-オンを(こちら):
                *例えば:人は、ID
                *実装:の対関係を達成するためには、外部キーを追加することができ、他の1で一意の主キーを参照します。

        3.ケース
            -ツアー分類tab_category作成
            CIDツアーは、主キー、自動成長分級-
            - CNAME観光のカテゴリ名が空でない場合、だけ、文字列100
            表tab_categoryをCREATE(
                CID INT AUTO_INCREMENT PRIMARY KEY、
                CNAME VARCHAR(100 )NOT NULL UNIQUE
            );
            
            -ツアーテーブルtab_route作成
            / *
            RIDツアーの主キーを、自動増加
            RNAMEツアー名が空でない場合、だけ、文字列100
            。価格価格
            RDATEを追加しました時刻、日付、種類
            CID外部キー、カテゴリー
            * /
            TABLEのtab_route CREATE(
                PRIMARY KEY AUTO_INCREMENT、INTをRID
                、RNAME VARCHAR(100)NOT NULL UNIQUE
                価格DOUBLE、。
                RDATE日、
                INT、CID
                FOREIGN KEY(CID)REFERENCESのtab_category(CID)を
            );
            
            / *ユーザー表tab_user作成
            UIDユーザー主キー、自動インクリメントの
            ユーザ名、ユーザ名の長さ100、ユニークな、非空
            のパスワード、パスワードの長さは30、非空の
            名前本名長100
            誕生日の誕生日の
            セックスの性別を、固定長文字列1つの
            電話の電話番号、文字列11
            メールメールボックス、文字列の長さ100
            * /
            CREATE TABLEをtab_user(
                UID INT PRIMARY KEY AUTO_INCREMENT、
                ユーザー名VARCHAR(100)UNIQUE NOT NULL、
                PASSWORD VARCHAR(30)NOT NULL、
                NAME VARCHAR(100)、
                誕生日DATE、
                セックスCHAR(1)DEFAULT 'M'、
                電話VARCHAR 、(11)
                電子メールでVARCHAR(100)
            );
            
            / *
            コレクションテーブルtab_favorite作成
            RIDツアーIDを、外部キー
            日付収集時間
            UIDユーザIDは、外部キー
            を取り除くとuidは繰り返すことはできませんが、複合主キーを提供し、同じユーザがいないコレクションと同じライン2
            * /
            CREATE TABLEをtab_favorite(
                RID INT、 -ラインIDの
                DATEのDATETIME、
                UID INT、 -ユーザーIDは
                -複合主キーを作成
                、PRIMARY KEY(RID、UID)を - 主キーを
                FOREIGN KEY(RID)REFERENCESのtab_route(RID)、
                FOREIGN KEY(UID)をtab_user REFERENCES(UID)
            );

        
    2.データベース設計パラダイム
        *概念:一部仕様データベースを設計するとき、あなたはに従う必要があります。要件の背後にあるパラダイムに従うために、それはパラダイムの前のすべての要件を遵守しなければならない

            リレーショナルデータベースを設計する際に、さまざまなパラダイムを提示し、合理的なリレーショナルデータベースの設計、さまざまな規制要件に準拠するために、異なるパラダイムと呼ばれるこれらの異なる規制要件を非正規、パラダイム・データベースの冗長性が高い小さいです。
            -ケープコッドパラダイム(BCNF)、第四正規形(4NF)及び第五パラダイム(第1正規形(1NF)、第2正規形(2NF)、第3正規形(3NF)、バース:現在6つのリレーショナルデータベースのパラダイムがありますまた、完璧なパラダイムとして知られている5NF、)。

        *分類:
            1.最初のパラダイム(1NF):各列は不可分アトミックデータ項目であります
            2.第二のパラダイム(2NF):1NFに基づいて、非コードプロパティコードに完全に依存する必要があります(主キーの一部に基づいて、非プライマリプロパティ1NF機能的依存を排除するために)
                *いくつかの概念:
                    機能的依存性1に: A - > B、Bの独特の特性の値を決定するために属性(設定)値、もし 呼ばれるBが依存
                        例えば、学校- >名前を。(学生番号、コース名) - >分数
                    2.完全に機能依存性:A - > B、Aは、グループ属性である場合、Bは、すべての属性属性のセット値に依存する必要性を判断するに値する属性。
                        例えば:(学生番号、コース名) - >小数
                    3.いくつかの機能依存性:A - > B、Aは、グループ属性である場合、Bはグループだけのいくつかに依存する必要性を判断するに値する属性Aに属性値を。
                        例えば:(学生番号、コース名) - >名前
                    4.依存伝達関数:A - > B、B - > C 値であれば、属性(群)、Bの独特の特性の値を決定しますB値は、伝達関数と呼ばれる(グループ)C値のユニークな属性は、CのAに依存属性によって決定することができる
                        >部署名、部署名- - >ヘッド学校:例えば、
                    5コード:もしテーブル、一つの属性またはグループは、テーブルの他のすべての属性と呼ばれるコードの属性(グループ)に完全に依存しています
                        たとえば:コード表:(学生番号、コース名)
                        *主なプロパティ:コードグループ属性すべての属性は、
                        code属性基を介し除く属性:非プライマリ属性*
                        
            第三のパラダイム(3NF)3:2NFに基づいてを任意の非プライマリプロパティは、他の非プライマリ属性に依存しない(2NFベースでの推移の依存関係の解消)の


バックアップとデータベース##の復元

    コマンド:。
        *構文:
            *バックアップ:mysqldumpを-uユーザ名-pパスワードデータベース名>保存されたパスは、
            *復元:
                1.ログデータベース
                2.データベースの作成
                3.データベース
                4.実行可能ファイルを。ソースファイルのパス
    2.グラフィカルなツール:

おすすめ

転載: www.cnblogs.com/lsswudi/p/11488427.html