この記事では、例を使用して、MySQL 外部キーの 3 つの関係について説明します。ご参考までに、詳細は以下の通りです。 外部キー制約により、2 つのテーブルは次の 3 種類の関係を形成します。
1対多または多対1 多数対一 テーブルを作成 押す( id int 主キー auto_increment, 名前varchar(20) ); テーブルブックを作成( id int 主キー auto_increment, 名前varchar(20), press_id int が null ではない、 制約 fk_book_press 外部キー(press_id) は press(id) を参照します。 削除カスケード 更新カスケード ); # まず、関連するテーブルにレコードを挿入します insert into press(name) values (『北京工業鉱山出版社』) (『人民の音楽は聴くに適さない出版社』) (「知的財産は出版社にとって無用だ」) ; # 関連テーブルにレコードを挿入する insert into book(name,press_id) values (『九陽の魔術』1)、 (『九陰マニュアル』2)、 (『九陰白骨爪』2) (『独孤九軒』3) (『ドラゴンを鎮めるための十の平手打ち』、2) (『ひまわりコレクション』3) ; クエリ結果: mysql> 本から * を選択します。 +----+-----------------+----------+ | ID | 名前 | プレスID | +----+-----------------+----------+ | 1 | 九陽魔法スキル | 1 | | 2 | 九陰マニュアル | 2 | | 3 | 九陰骨爪 | 2 | | 4 | 獨孤九軒 | 3 | | 5 | ドラゴンの十の平手打ち | 2 | | 6 | ひまわりマニュアル | 3 | +----+-----------------+----------+ セット内の行数 (0.00 秒) mysql> pressから*を選択します。 +----+--------------------------------+ | ID | 名前 | +----+--------------------------------+ | 1 | 北京工業鉱山プレス | | 2 | ピープルズミュージック出版社 | | 3 | 知的財産は役に立たない | +----+--------------------------------+ セット内の行数 (0.00 秒) 多対多、3番目のテーブルを導入 多対多 # 関連テーブル author テーブルを作成します。前の book テーブルは多対 1 の関係で作成されています。create table author( id int 主キー auto_increment, 名前varchar(20) ); #このテーブルには、著者テーブルと書籍テーブルの関係が格納されます。2 つの関係を照会するには、このテーブルを照会するだけです。create table author2book( id int NULL以外 ユニーク auto_increment, author_id int が null ではない、 book_id int が null ではない、 制約 fk_author 外部キー(author_id) は author(id) を参照します。 削除カスケード 更新カスケードでは、 制約 fk_book 外部キー(book_id) は book(id) を参照します。 削除カスケード 更新カスケードでは、 主キー(著者ID、書籍ID) ); # 4 人の著者を ID 順に挿入します。 insert into author(name) values('egon'),('alex'),('wusir'),('yuanhao'); # 各著者の代表作 egon: 九陽魔術、九陰書、九陰骨爪、独孤九軒、十掌龍鎮圧、ひまわりコレクション alex: 九陽魔術、ひまわりコレクション wusir: 独孤九軒、十掌龍鎮圧、ひまわりコレクション yuanhao: 九陽魔術 # 対応するデータを author2book テーブルに挿入します insert into author2book(author_id,book_id) values (1,1)、 (1,2) (1,3) (1,4) (1,5) (1,6) (2,1) (2,6) (3,4) (3,5)、 (3,6) (4,1) ; # これで、author2book に対応する著者と書籍の関係を確認できます。mysql> select * from author2book; +----+-----------+---------+ | id | 著者ID | 書籍ID | +----+-----------+---------+ | 1 | 1 | 1 | | 2 | 1 | 2 | | 3 | 1 | 3 | | 4 | 1 | 4 | | 5 | 1 | 5 | | 6 | 1 | 6 | | 7 | 2 | 1 | | 8 | 2 | 6 | | 9 | 3 | 4 | | 10 | 3 | 5 | | 11 | 3 | 6 | | 12 | 4 | 1 | +----+-----------+---------+ セット内の行数 (0.00 秒) 一対一の状況 一対一 #例: ユーザーは 1 つのブログのみを登録できます #2 つのテーブル: ユーザー テーブル (user) とブログ テーブル (blog) # ユーザーテーブルを作成する create table user( id int 主キー auto_increment, 名前varchar(20) ); # ブログテーブルを作成する create table blog( id int 主キー auto_increment, url varchar(100)、 user_id int ユニーク、 制約 fk_user 外部キー(user_id) は user(id) を参照します。 削除カスケード 更新カスケード ); # ユーザーテーブルにレコードを挿入する insert into user(name) values (「アレックス」)、 (「ウシル」)、 (「エゴン」)、 (「シャオマ」) ; #ブログテーブルにレコードを挿入する insert into blog(url,user_id) values ('http://www.cnblog/alex',1), ('http://www.cnblog/wusir',2), ('http://www.cnblog/egon',3)、 ('http://www.cnblog/xiaoma',4) ; # wusir のブログ アドレスを照会します。select url from blog where user_id=2; MySQL 関連のコンテンツに興味のある読者は、このサイトの次のトピックをチェックしてください: 「MySQL クエリ スキル」、「MySQL 共通関数の概要」、「MySQL ログ操作スキル」、「MySQL トランザクション操作スキルの概要」、「MySQL ストアド プロシージャ スキル」、および「MySQL データベース ロック関連スキルの概要」 この記事が皆様のMySQLデータベース設計に役立つことを願っています。 以下もご興味があるかもしれません:
|
<<: Vueはカスタムツリーコンポーネントを再帰的に実装します
>>: Linux 時間サブシステムの時間表現例の詳細な説明
Nginx におけるいわゆる接続制限は、実際には TCP 接続、つまり 3 ウェイ ハンドシェイク後...
1. イメージをプルするdocker pull レジストリ.cn-hangzhou.aliyuncs...
次のコードは、MySQL 5.7.22 バイナリ パッケージのインストール方法を紹介しています。具体...
HTMLでは、中国語のフレーズ「學好好學」は「學好好學」と表現できます。プロジェクトでは、SMSアラ...
Taobao用の空白スペースを作成します。 ブラウザページを縮小すると、コンテンツ領域は縮小されませ...
目次順序1. 集中ルーティング2. ファイルディレクトリ3. CompileRouterを作成する4...
鉛Web ページ上の一般的な三角形の一部は、画像やフォント アイコンにする必要なく、CSS を使用し...
この記事では、アコーディオンを実装するためのjQueryの具体的なコードを参考までに紹介します。具体...
目次1. ルートナビゲーション2. 履歴状態管理API (1)ハッシュチェンジイベント(2)ポップス...
目次1. イベントの流れ1. コンセプト2. DOMイベントフロー2. イベントの委任1. イベント...
1. MIME: 多目的インターネットメール拡張インペリアル カレッジ オブ コンピュータ オンラ...
序文ミニプログラムのアップロードには https が必要なので、サーバーの https は lets...
中国語ドキュメント: https://router.vuejs.org/zh/ Vue Router...
声明:この記事では、Web ページ制作技術を使用して問題を包括的に解決するという考え方を反映して、W...
Nginx は、IP ベースの仮想ホスト構成、ポート ベースの仮想ホスト構成、ドメイン名ベースの仮...