外部キー: 2つのテーブル間の関係を確立します
-
-
多くの
-
多くの多くの
-
マンツーマン
-
-
テーブルとテーブルの間の関係を研究
-
すべてのデータは、欠点のテーブルに格納されている場合:
-
1.構造は致命的> ----明確ではありません
-
スペースの無駄2. ---->致命的な
-
3.拡張性が悪い---->欠点を無視することはできません
-
ファイルに保存されているすべてのPY Pythonコード、強い結合一緒に----> ----分離型>分割テーブルと同様
-
-
ウェンディは、上記の表を解決するために分割しました。
-
-
今回は強力な関係を構築するために、上記の「外部キー」、2つのテーブルを必要とします。
-
-
テーブルと(多くの、いずれかの多くの多くの1つ)のテーブル間の関係を確認
-
注:この時点で考えるように二つの位置に立って持って、関係を確立するために2つのテーブルから考慮されます
-
一例として、employeeテーブルの位置を取る:複数の従業員が部署に対応できますか?答えは明白です:ことができます!!!!!!!!
従業員や部門:多くの
-
そして、それを考えてから、部門表を配置:複数の部門は、従業員に対応できますか?そうではありません。
フォームテーブルに多くの部門の従業員
コードに直接ませんナンセンス、
#2のテーブル作成 あなたが最初の対応表は、関連テーブル確立する必要があります。1. :#は関連していたテーブル DEP: 表DEPを作成する( 主キーAUTO_INCREMENT、int型上記のid上記 dep_name VARCHAR(16)、 VARCHAR(255)dep_desc ); #関連性テーブル: EMP: 表EMP(作成 主キーAUTO_INCREMENT int型ID、 名前VARCHAR(16)、 年齢int型、 性別列挙型( '男性'、 '女性'、 'その他')デフォルトの'男性'、 dep_id int型ないヌル、 外部キーを(dep_id)参照DEP(ID) ); #インサートデータ: - 1.データテーブル(DEP)に関連し、データ関係テーブルに挿入されなければならない(EMP)です。 DEP番号: INSERT INTO DEP(dep_name、dep_desc)の値 ( '外務省のNb_省'、 '国際大使部門')、 (' Sb_教育部門は'、」プログラマ部門を作った!!!! ')、 ('技術''技術限ら部門'); #EMP: INSERT INTO EMP(名前、年齢、性別、dep_id) の値('タンク'17'男性'、1)、。 ('ジェイソン'、70' MALE '2)、 ('ショーン'50'男性'2)、 ('エゴン'88'男性'2)、 ('オーウェン'95'女性」、3); #エラー、 EMPへの挿入(名前、年齢、性別、 #エラー 更新SETがdep_id EMP WHERE ID = 100 = 2; #エラー DEP更新セットID = 100 WHERE ID = 1; #削除dep_idフィールドが関連付けDEPテーブルIDフィールドを変更するために、関連しています。 EMPから削除WHERE ID = 1; 更新DEP SET ID = 100 WHERE ID = 1; #削除:削除関連テーブルに記録されたテーブルに関連するレコードを削除 -削除EMPテーブルdep_idレコード2 削除EMP dep_id 2 =から; -削除DEPテーブル2のIDレコード ID = 2 DEPから削除します。
-更新カスケードに - ON DELETE CASCADEを -创建表 #被关联表: DEP2: テーブルDEP2を作成します( ID int型主キーAUTO_INCREMENT、 dep_nameのVARCHAR(16)、 dep_desc VARCHAR(255) ); #关联表: EMP2: テーブルEMP2(作成 ID int型主キーのAUTO_INCREMENT、 名前のVARCHAR(16)、 年齢int型、 性別列挙型を( '男性'、 '女性'、 '他人')デフォルトの'男性'、 dep_id INT NOT NULL、 外部キー(dep_id)参照のDEP2(ID) ON UPDATE CASCADEを ON削除カスケード ); -挿入データ #のDEP: INSERT INTOのDEP2(dep_name、dep_desc)の値 ( '外務省のNb_省'、 '国際大使部門')、 (' Sb_教育部門'、」作られたプログラムメンバー部門!!!! ')、 ('技術''技術限ら部門'); #EMP: INSERT INTO EMP2(名前、年齢、性別、dep_id) の値('タンク'17'男性'、1。 )、 ('ジェイソン'、70 '男性'、2)、 ('ショーン'、50 '男性'、2)、 ('エゴン'、88 '男性'、2)、 ('オーウェン'、95 '女性'、3); #エラー、 INTO EMP INSERT(名前、年齢、性別、dep_id)の値 ( 'ケーキ'、100 'その他'、999); -データの更新やデータを削除 -更新レコード 更新IDを= SET 200は= DEP2 IDである場合1; -削除記録 ID = 200 DEP2から削除します。
-第三のテーブルを使用して、二つのテーブルのための「多くの外部キー関係に多くの」の設立。 -ブック: 表ブックを作成します( ID int型主キーAUTO_INCREMENTを、 タイトルVARCHAR(20)で、 価格はint、。 book_content VARCHAR(255) ); -著者: 表の作成者(作成 ID int型主キーAUTO_INCREMENT、 名前VARCHAR(16)、 年齢はint ); - book2author: 表の作成book2author( ID int型主キーAUTO_INCREMENT、 book_id int型、 AUTHOR_ID int型、 外部キー(book_id)参考書籍(ID) ONアップデートカスケード ON削除カスケード、 外部キー(AUTHOR_ID)参考文献の著者(ID) ONアップデートカスケード ON削除カスケード ); -データを挿入する -ブック INSERT INTOブック(タイトル,.価格、book_content)の値 (「ゴールドボトルMEI」、199は、「小さな物語かすんモーメントを伝える」)、 (「エントリからPythonは呼吸する」、2000、「どのように一晩はげ学ぶ『)、 (』トリソミー」、200'ギャングスター')は、宇宙のファンタジーの世界に続く ; -著者 INSERT INTOの作者(名前、年齢)の値 ('エゴン」、68)、 ('ジェイソン」、88); - book2author: book2authorへの挿入(book_id、AUTHOR_ID)の値 (1 ,. 1)、 (1、2) (2、2)、 (3 ,. 1); #エラー、挿入データ、book_idが存在しなければならないAUTHOR_ID book2author挿入(book_id 、AUTHOR_ID)値(4,4); #更新または削除 #アップデート -アップデート予約SET価格= 6666 WHERE = 1上記ID上記; -アップデート予約SETは、上述したID = 4 WHERE上記ID = 1; #削除 -削除ID = 4本から;
- USER_INFO: 前記ID上、名前、年齢、性別、趣味、id_card -ユーザー: 上記ID上、名前、年齢、detail_id(外部キー) -詳細: 上記ID、性別、趣味、上記id_card 1つの外部キーのいずれかを確立するために、詳細テーブルをユーザに関係。 外部キーは、より高い周波数側で構築する必要があります。 -テーブルの作成 #は、テーブルが関連付けられている 顧客テーブルを作成する( ID主キーAUTO_INCREMENT、int型 名VARCHAR(16)、 メディアVARCHAR(32) ); #アソシエーションテーブル 表学生(作成 。電話チャー(11)、 主キーAUTO_INCREMENT int型IDを、 addrはVARCHAR(255)、 id_card CHAR(18)と、 #外部キーがユニークに設定する必要があります UNIQUE、int型CUSTOMER_ID 外部キー(CUSTOMER_ID)参照のお客様(ID) ON UPDATE CASCADEを ON削除カスケード ); -データ挿入するために 、顧客への挿入を(名前、メディア)の値 ( 'ホモシステイン'、 'Facebookの')、 ('zsb1'、 'IG')、 ('zsb2'、 'VK')、 ('HB'、 '鼓動'); INSERT INTO学生(ADDR 、電話、id_card、CUSTOMER_ID)の値 ( '上海'、 '15214546711'、 '440888888888888888' 、1)、 ( '北京'、'18、888888888' 、 '440777777777777777'、2); #エラー、一から一、一対一の関係必見へ 学生への挿入(addrは、電話、id_card、CUSTOMER_ID)の値( '上海'、 '15214546711'、 '440888888888888888'、1);