ベース・テーブルはⒷのMySQL、制約、外部キー、パケット、ページング、ソート、一意のインデックス接続されています。

1.重要繰り返し:キーのデータ型

   1)デジタルに関連します

      255 tinyint型の
      int型65535
      BIGINT 42億である
      文字列は、実際には小数点以下の精度で、保存され、小数小数。
      限られたフロート10進浮動小数点ストア
      ダブルダブルダブル予約は小数を制限

   2)該当する文字

      CHAR固定長、スピードクエリー、セーブ時間255までのバイト
      varchar型のスペース節約するために、255文字までの可変長までの
      テキストタイプまでテキストを:65535の文字

   3)時間

      日付、時刻、日付時刻、タイムスタンプ

   4)バイナリ:

      ブロブ

   5)列挙、セット

    列挙型( 'XL'、 'XXL'、 'XXXL')
    SET( 'A'、 'B'、 'C'、 'D')の任意の組合せ#
 

2.sql操作

データベース(1)動作

   1)データベースのチェック

      データベースを表示します。

   2)データベースを開きます。

      (データベース名)を使用します。

   3)データベースを作成します。

      データベースのテストのデフォルトの文字セットUTF8を作成します。

   4)データベースを削除

      データベースのテストをドロップします。

   5)データベースの下にあるすべてのテーブルをチェックしてください:

      テーブルを表示します。
 

テーブルの動作(2)

   1)テーブルを作成します。

     テーブルの学生(作成
        のid INT AUTO_INCREMENT、主キー、
        名前のVARCHAR(12)NOT NULL、
        情報VARCHAR(22))エンジン= InnoDBの文字セット= UTF8を。

   2)ルックアップテーブル

      学生から*を選択します。

   3)ディスプレイ:

      DESCの学生;#テーブル構造の
      ショーテーブルクラス\ Gを作成し、テーブル情報#の建設

   4)テーブルをクリアします。

    学生から削除;:インクリメントID番号を予約
      増分数は保持されません:切り捨てテーブルの学生を。

   5)テーブルを完全に削除するには:

    ドロップテーブルの学生。

   6)変更テーブル

     ALTER TABLE学生AUTO_INCREMENT = 1;

(3)ラインの動作:

    CRUD:

    学生INTO INSERT(名前、情報)の値( 'トム'、 '');
    複数の値の挿入#:
    INSERT INTOユーザ(名前、年齢)の値( 'トム'、22である)、( 'ジム'、23です。)、 (「トーマス」、18である)、(「ジェリー」,. 19);
    一時テーブルエンティティテーブルインサート#
    T2(名前)への挿入は、名前を選択し 、ユーザから、
    #修改内容
      更新学生・セット名= ''、情報= ''どこ名= '';
      更新ユーザーセット= 18年齢= 29歳。
    条件#は、クエリ
      、ユーザーから*を選択する場所18の間の年齢 と22;
    #综合查询
      年齢> 17と名前「トン%」のような、ユーザからの選択*;
  
      s_name、年齢、利用者から20名を選択します。
      ユーザーからs_name、年齢、「avg_20」として名を選択します。
         UIDリミット3によりユーザ注文から*を選択します。
      年齢DESC制限3によってユーザ注文から*を選択します。
 

3、制約および基準クエリ

(1)主キー制約

 テーブルスコア(作成
  のid int型のAUTO_INCREMENTないヌル、
  STUDENT_ID INT NOT NULL、
  CLASS_ID INT NOT NULL、
  score_numのTINYINT、
  pimaryキー(id)を、

(2)外部キー制約

  制約fk_stu_cls外部キー(CLASS_ID)参照クラス(CID)

(3)のみ制約

  ユニークuq_std_cls_id(STUDENT_ID、CLASS_ID)
  )エンジン= InnoDBのデフォルトのcharset = UTF8

(4)自己増力設定ステップ

   1)セッション、ローカル変数を変更し、一般的に使用されるだけで、現在の図面(ログインユーザ)が、影響します。デフォルトは1

      「auto_increの%」のようなショーのセッション変数
      セットセッションAUTO_INCREMENT = 2

   2)すべてのセッションに影響を与え、グローバル変更します。

      'auto_incre%'のようなgloble変数を示して
      セットgloble AUTO_INCREMENT = 2を

(5)特別な外部キー:

   1)マンツーマン

      外部キープラス一意のインデックスは、1対1の関係です。

   2)多くの

      サポートが来ます

   3)多くの多くの

      双方向多の関係は、多くの関係に多くのである持っています。
      この場合には、操作を容易にするために、2つのテーブル間の関係を記録する中間テーブルを作成します。
      二つの中間貯蔵テーブルIDテーブル、外部キー制約を確立し、必要であれば、あなたは一意のインデックスを追加することができ、2つのIDが追加されました。

(6)条件文

   1)ページ

      結果の最初の10行を取る
        学生の上限10から選択*;
      最初のレコードから始めて、最初の10取る
        学生の限界0,10 SELECT * FROMを、
      最初に取る
        学生の制限0 1 SELECT * FROMを、
      第二のフェッチ
        を選択*学生の上限1 1から。

   2)ワイルドカード

      トンの学生で始まる名前のクエリ学生のテーブルには、
        選択*学生からどこ名LIKE「 トン%」;
      名前にND学生の終わりにクエリが
        選択*学生からどこ名「のような %デュ」
      、2トンの初めによってクエリ名前文字
        「のような学生の名前から選択* T_」;

   3)ソート

      小から大へのデフォルト昇順
        IDによって生徒順から選択*は、
      逆の順序で配置されていてもよい、すなわち、降順で
        のID DESCによってstduent順序SELECT * FROMを 、

   4)パケット

      デフォルトでは、クエリーパケットで、
      合計、平均、カウント数、最大:クエリの結果は、重合の関数でなければならない 、分によって列グループ、1対1の関係を持つなど、あるいは重合列、すなわち。
        HAVING COUNT(上記ID上記)> 1、上記のidでscore_numスコア> 60グループから(上記番号上記)SELECT COUNTを
      mysql5.7バージョン、新しいsql_modeのは= ONLY_FULL_GROUP_BY、閉じられますが、お勧めできませんすることができます!

図4に示すように、接続テーブル

 (1)左右の接続参加します

   1)内部を結びます

      行の隠されたヌル値があります。

      2)外側コネクタ

      列は左、左、左のディスプレイ上のすべてのテーブルを結合する外部結合
      すべてが右の右の列にテーブルを結合するジョイン右外を

(2)上下の接続ユニオン

   1)重複を削除

      連合 

      2)ない重いへ

      労働組合のすべて 

おすすめ

転載: www.cnblogs.com/funyou/p/12181507.html