MySQLはクワッドを練習します

1.外部キー(外部キー)

  1.定義:別のテーブルの範囲内で選択された現在のフィールドのテーブル値ましょう
  2.構文
    (フィールド名を参照してください)外部キーを
    参照の主テーブル(参照フィールド名)
    DELETE CASCADE操作で
    更新カスケード操作に
  3.ルール
    1マスターテーブルは、テーブルのフィールドのデータ型と一致するために
    前記マスターテーブル参照フィールド:主キー
  4.例えば
    表1、支払情報テーブル(金融)
      ID名クラス支払額
      1 snowster AID06 300
      2学者AID06 260
      。3朱志シャンAID06 250
    表2、学生情報テーブル(教師)
      上記id名支払額
      300気を惹く1
      2学者260
      3 XXXXXXXXXXXを

    表1.作成します
      。表1(プライマリテーブル):
        テーブルjftabを作成します(
        ID int型主キー、
        名前VARCHAR(15)、
        クラスCHAR(5)、
        マネーint型
        );

        INSERT INTO jftab値
        (1、 'snowster'、 "AID06" 、300)、
        (2 "学者"、 "AID06"、260)、
        (3、 "朱志シャン"、 "AID06"、250) ;
      表2(表):
        表bjtab(作成
        stu_id int型、
        (名前VARCHARを15)
        マネーint型、
        外部キー(stu_id)参考jftab(ID)
        ON DELETE CASCADEを
        ON連鎖更新
        )。

        bjtab値INSERT INTO
        (1 'snowster'、 "AID06"、300。)、
        (2、 "学者"、 "AID06"、260) 。

  5.外部キー削除し
    、外部キーテーブルの外部キーをドロップするALTER TABLEを
    外部キー:ショーはテーブル名を作成します。

  6.カスケード操作
    1.カスケード
      カスケード削除データ、更新(参照フィールド)
    2(デフォルト)制限
      テーブルは、関連付けられたレコードがメインテーブル動作するように許可されていない持っている
    3組のヌル
      関連テーブルから、削除するメインテーブル、更新をレコードのフィールド値をNULL

  7.外部キーを追加するために、既存のテーブル
    のテーブルのALTER TABLE名追加
    外部キー(参照フィールド)referenceesメインテーブル(参照フィールド)を
    削除ON ...
    ON ...更新

2.表をコピーします

  1.構文を
    テーブルから条件...を選択し、テーブルのテーブル名を作成します。
  2.例
    1.コピーし、すべてのテーブルのレコードとフィールドMOSHOU.sanguo、sanguo2
      テーブルを作成sanguo2
      MOSHOU.sanguoからSELECT *;
    2.コピーMOSHOU.sanguo前の表3のレコードが、sanguo3
      表はsanguo3作成
      MOSHOU.sanguo制限からSELECT * 3;
    表3.コピーMOSHOU.sanguoのID、名前、三つのフィールドの国で最初の5つのレコード、sanguo4
      テーブルを作成しますsanguo4
      IDを選択、名前MOSHOU.sanguoの制限から、国5;。

  3.コピーテーブル構造
    *誤った場所テーブル名テーブルから選択テーブルを作成します。

    1.コピーテーブル構造のjftab、jftab2
      表を作成します* jftabからfalseにSELECT jftab2。

  4.注意
    キーが元のテーブルの上にコピーしていない場合にコピーし、テーブルを(キー)プロパティ

3.ネストされたクエリ(サブクエリ)

  1.定義:外側層の内側層のクエリとしてクエリの結果
  構文2.
    選択...条件テーブルから(SELECT ...);
  3.実施例
    1未満の平均の主人公の攻撃値名前と攻撃値が表示される
      平均計算、第1の
        MOSHOU.sanguoからSELECT AVG(gongji);
      2.見出さ<平均
        SELECT名前、MOSHOU.sanguoからgongjiを
        WHERE gongji <平均値を、

      上記二つの結合ステートメントがある:SELECT名前、MOSHOU.sanguoからgongji
        gongji <(MOSHOU.sanguoからAVG(gongji)を選択します)。

    2.最高の攻撃主人公の名前や攻撃が値それぞれの国識別
      BUGを:SELECT名前、MOSHOU.sanguoからgongji
      WHERE
      (国別三国グループからのSELECT MAX(gongji))gongjiで、
      ##ノーBUG
      SELECT名前、 MOSHOU.sanguo gongjiから       (国SELECT、最大国別グループ三国から(gongji))で(国、gongji)。

4.マルチテーブルクエリ

  1.二つの方法
    テーブル名のリストからフィールド名の1 SELECTリスト(デカルト積)
      T1:名- > "A1"、 "A2"、 "A3"
      T2:名- > "BL" "B2"
      T1 SELECT * FROM 、T2;
    2 ... WHERE条件;

  2.練習
    詳細1.表示州や市
      石家荘、河北省
      廊坊市、河北省、
      武漢市、湖北省

      選択sheng.s_name、盛、街からcity.c_name       sheng.s_id = city.cfather_id。     2.显示省、市和县的详细信息       選択sheng.s_name、city.c_name、盛からxian.x_name、都市、西安       sheng.s_id = city.cfather_idとcity.c_id = xian.xfather_id。





5.接続問い合わせ

  1.コネクタ
    1.構文
      。インナーに表2の表1から選択フィールド名が条件に参加
      インナーが条件で、表3に参加する;
    2.表示詳細都市
      盛から選択sheng.s_name、city.c_name
      インナーは市盛ONに参加します。 = city.cfather_id S_ID;
    3.都市や郡は、詳細を表示する
      SELECT sheng.s_name、city.c_name、盛からxian.x_name
      sheng.s_id ONインナーシティ=参加city.cfather_id
      インナー西安ON = xian.xfather_id参加city.c_id ;

  2.外部コネクタ
    1が接続左
      表左側のメイン表示クエリ結果に1.
      から2.フィールド名
        表を表2に1条件に参加左
        左側の条件で、表3に参加する;
      3詳細を表示都市
        選択sheng.s_nameシティcity.c_name AS盛AS、
        市盛は左参加から
        、sheng.s_id = city.cfather_id ON
      都市や郡の4ショーの詳細を
        SELECT sheng.s_name盛AS、city.c_name市、西安xian.x_nameほど
        から市は参加盛を左
        sheng.s_id = city.cfather_id ON
        左西安に参加し
        city.c_id = xian.xfather_id ON;

    2.右の接続
      1.結果が右メイン表に表示されて
      2.フィールド名から
        、表1、表2に条件を右ジョイン。
        右の条件で、表3に参加します。

6.データのバックアップ(mysqldumpを、Linuxオペレーティング端末で)

  1.フォーマット
    フルバックアップ:
    。mysqldumpを-uユーザ名-pソースライブラリ名>〜/ *** SQL
  表現2.ソースライブラリ名
    --all-データベースバックアップリポジトリのすべてのための
    ライブラリ名バックアップ単一のライブラリ
    -B 1つのライブラリーライブラリーライブラリー2ライブラリ3バックアップ複数
    ライブラリ1表2表3は、指定されたバックアップリポジトリ複数のテーブルを見

  3.例
    1.バックアップしMYDATAディレクトリにすべてのライブラリ:all.sql
      のmysqldump --all -p - uroot -データベース> all.sql
    2.バックアップDB4ライブラリ盛都市西安3つのテーブル、scx.sql
      mysqldumpを-p DB4盛市西安- uroot-> scx.sql
    3.バックアップMOSHOUとDB4ライブラリ、md.sql
      mysqldumpを-p-uroot - B MOSHOUのDB4> md.sql

7.データ復旧

  1.コマンドフォーマット(Linuxターミナル)
    のMySQL-uroot - Pのターゲットライブラリ名<***のSql。

  2.すべてのライブラリからのライブラリ(--one-データベース)を復元するバックアップ
    のmysql -uroot -p --one・データベース・ターゲット・ライブラリ名<all.sql

  例3
    1.レコードdb4.shengを追加します。

    2. DB4でt888でテーブルを作成します
    。3. db4.sqlでDB4ライブラリを復元

    4.注
      ライブラリが上書きされますソースのデータベーステーブルのデータに戻って復元されている場合は1、新しいテーブルは削除されません
      復旧データ復旧ライブラリが存在しない場合は、空のデータベースを作成する必要があります2。

8. MySQLのユーザアカウント管理

  1.リモートMySQLコネクタ
    1のsudo -i
    2. CD /etc/mysql/mysql.conf.d/
    3. SUBL mysqld.cnf
      #バインドアドレス127.0.0.1はCtrl + S =保存

    4.再起動/Etc/init.d/mysql
  2.アドオン許可されたユーザ
    ルートのmysqlとしてログインします
      p123456 - mysqlの-uroot
    する権限2.
      「%」@「ユーザ名」に、ライブラリのテーブルの上に一覧表示する権限付与
      で識別を"オプション付与とパスワード」;
      オプション付与#フレーズでユーザーが許可を新たに追加したダウン命名する権限を有することを意味します

      [アクセス許可リスト:すべての権限、選択は、挿入
      ライブラリテーブル:* *すべてのライブラリをすべてのテーブルを。

  3.例
    1の追加、権限のあるユーザーの虎、パスワード123は、すべてのライブラリ内のすべてのテーブル上のすべての権限を持って
      付与上のすべての権限* *に「ZCC」@「%。」
      オプション付与と「123」で識別されます。

    2. DB4ライブラリに、ユーザーのウサギを追加し、すべての権限がしました
      @「うさぎ」にDB4 ON *すべての権限を付与「%。」
      オプション付与と「123」でIdetified。

おすすめ

転載: www.cnblogs.com/zhangchenchuan/p/11703778.html