MySQLの------->基本(B)

DQL:クエリ

1.ソートクエリ
  *構文:ORDER BY句
    *ソートフィールドによって順番1つのソート1、ソートフィールド2ソート2 ...

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

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

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

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

3.グループ化されたクエリ:
  1.構文フィールドをグループ化してグループ;
  2。注:
    1.グループ化後の問い合わせのフィールド:グループ化フィールド、集約関数の
    差をと2場所を有しますか?
      パケットが定義される前に、条件が満たされない場合、パケットには関与しない1。

       結果が満足されない場合は、クエリの外ではありません、次のパケットで定義した
      2集約関数でないと判定さ、関数が有する重合することができます。

    - 男女別にグループ化され。クエリは、平均的な男性と女性の学生でした

    性別SELECT、AVG(演算)性別BY学生からグループ;

    -性別に応じてグループ。クエリは平均の数の男性及び女性の学生であった

    学生sexからBY SELECTセックス、AVG(数学)、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セックスHAVING数> 2 BY数学> 70 GROUP。

4.ページングクエリ
  1.構文:制限開始インデックス、ページあたりのクエリ数;
  2.式:開始インデックス=(現在のページ番号- 1)*ページごとに表示の数
    -ページあたり3つの記録

    学生LIMIT 0,3 SELECT * FROM; - 。pは1

    SELECT * FROM学生3,3 LIMIT; -ページ2

    SELECT * FROM学生6,3 LIMIT; -ページ3

  3.制限はMySQLの「方言」であります

制約

*コンセプト:データがデータを確認するために、テーブルに定義されている精度有効性および完全性を
*分類:
  1つの主キー制約:主キー
  2.非空制約:NULLではない
  3.唯一の制約:UNIQUE
  4.外部キー制約:外部キー

 

*主キー制約:主キー。
  1.注:
    1.定義:非空のみと
    表2は1つのプライマリキーフィールドを有することができ、
    主キーがテーブルに記録された固有の識別である3.

  2.テーブルを作成する場合、主キー制約が追加
    表STU作成(
      ID INTは主キーは、 -主キー制約のIDを追加する
      名前VARCHAR(20)の
    );

  3.主キーの削除
    -表STU変更ALTER INT上記IDエラー、
    ALTER TABLE DROP PRIMARY KEY STUと、

  4.テーブルを作成した後、主キー追加
    ALTERテーブルSTUは、ID INT PRIMARY KEYを変更します 。

  5.自動成長:
    1.コンセプト:カラムが数値型の場合、AUTO_INCREMENT価値が自動拡張を使用して達成することができます

    2.テーブルの作成、主キー制約を追加し、自動インクリメントの主キーが完了
      表STU(作成
        のid int型主キーAUTO_INCREMENT、 -主キー制約のIDを追加する
        名VARCHAR(20です)
      );

    3の自動成長削除
      上記のID INTのSTUを変更するALTER TABLEを;
    4.自動拡張を追加
      表STUがID INTのAUTO_INCREMENTを変更ALTER。

 

*非空制約:NULL、NULL値ができませんではない
  追加制約表1.作成
    CREATE TABLEをSTU(
      ID INT、
      NAME VARCHAR(20)とNOT NULL - null以外の名前
    );
  2.表を作成した後、無添加をNULL制約は、
    表STU MODIFY NAME VARCHAR(20 ALTER )NOT NULLを。

  3の名前を削除し、空でない制約
    ALTERテーブルSTU MODIFY NAME VARCHAR(20 )。

 

*唯一の制約:ユニークな、繰り返さない値
  テーブルを作成する場合1.、一意制約を追加
    CREATE TABLEをSTU(
      ID INTを、
      PHONE_NUMBER VARCHAR(20)は一意である-一意性制約

    )、
    唯一の制約定義列*注のMySQL、この値はnullの複数を有することができます

  2.ユニーク制約のドロップ
    ; ALTER TABLE DROP INDEX STU PHONE_NUMBERを
  使用すると、表を作成した後3、ユニーク制約を追加
    PHONE_NUMBER VARCHAR(20 MODIFYのALTER TABLE STUを UNIQUEを)。

 

*外部キー制約:外部キー、なるように、テーブルとテーブルの生成との関係、データの正確さを保証するようになっています。
  あなたがテーブルを作成するとき1.は、あなたが外部キーを追加することができます
    *構文:
      テーブルのテーブル名を作成します(
        ....
        の外部キー列
        制約名、外部キー、外部キー(外部キー列名)は、主テーブルの名前(プライマリテーブルのカラム名)を参照します
      )。

  2.外部キーの削除
    ALTER TABLEテーブルのDROP FOREIGN KEY外部キーの名前を;

  3.テーブルを作成した後、外部キーの追加
    ALTER TABLEテーブル名(外部キーフィールド名)REFERENCESがマスターテーブル(プライマリ・テーブルのカラム名を)名CONSTRAINT外部キー名FOREIGN KEYを追加します。

  4.カスケード操作
    1.カスケード操作の追加
      構文:CONSTRAINT外部キー名ADD TABLEテーブル名をALTER
          FOREIGN KEY(外部キーフィールド名)を参照するにはUPDATEのCASCADE ON DELETE CASCADE ON(プライマリテーブルのカラム名)マスターテーブルに名前を付ける。
      2.分類:
        1.カスケード更新:ON UPDATE CASCADEを
        2カスケード削除:DELETE CASCADE ON

おすすめ

転載: www.cnblogs.com/LIAN8/p/11762518.html