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。