主頁 > 知識(shí)庫 > mysql外鍵的三種關(guān)系實(shí)例詳解

mysql外鍵的三種關(guān)系實(shí)例詳解

熱門標(biāo)簽:在哪里申請(qǐng)400電話 萊西市地圖標(biāo)注 安徽ai電話電銷機(jī)器人有效果嗎 銷售語音電話機(jī)器人 巫師三血與酒地圖標(biāo)注 走過哪個(gè)省地圖標(biāo)注 常州網(wǎng)絡(luò)外呼系統(tǒng)開發(fā) 外呼系統(tǒng)電銷受騙 400電話申請(qǐng)信用卡

本文實(shí)例講述了mysql外鍵的三種關(guān)系。分享給大家供大家參考,具體如下:

因?yàn)橛衒oreign key的約束,使得兩張表形成了三種了關(guān)系:

  • 多對(duì)一
  • 多對(duì)多
  • 一對(duì)一

一對(duì)多或多對(duì)一

多對(duì)一

create table press(
  id int primary key auto_increment,
  name varchar(20)
);
create table book(
  id int primary key auto_increment,
  name varchar(20),
  press_id int not null,
     constraint fk_book_press foreign key(press_id) references press(id)
  on delete cascade
  on update cascade
);

# 先往被關(guān)聯(lián)表中插入記錄
insert into press(name) values
('北京工業(yè)地雷出版社'),
('人民音樂不好聽出版社'),
('知識(shí)產(chǎn)權(quán)沒有用出版社')
;
# 再往關(guān)聯(lián)表中插入記錄
insert into book(name,press_id) values
('九陽神功',1),
('九陰真經(jīng)',2),
('九陰白骨爪',2),
('獨(dú)孤九劍',3),
('降龍十巴掌',2),
('葵花寶典',3)
;

查詢結(jié)果:

mysql> select * from book;
+----+-----------------+----------+
| id | name      | press_id |
+----+-----------------+----------+
| 1 | 九陽神功    |    1 |
| 2 | 九陰真經(jīng)    |    2 |
| 3 | 九陰白骨爪   |    2 |
| 4 | 獨(dú)孤九劍    |    3 |
| 5 | 降龍十巴掌   |    2 |
| 6 | 葵花寶典    |    3 |
+----+-----------------+----------+
rows in set (0.00 sec)
mysql> select * from press;
+----+--------------------------------+
| id | name              |
+----+--------------------------------+
| 1 | 北京工業(yè)地雷出版社       |
| 2 | 人民音樂不好聽出版社      |
| 3 | 知識(shí)產(chǎn)權(quán)沒有用出版社      |
+----+--------------------------------+
rows in set (0.00 sec)

多對(duì)多,引入第三張表

多對(duì)多

# 創(chuàng)建被關(guān)聯(lián)表author表,之前的book表在講多對(duì)一的關(guān)系已創(chuàng)建
create table author(
  id int primary key auto_increment,
  name varchar(20)
);
#這張表就存放了author表和book表的關(guān)系,即查詢二者的關(guān)系查這表就可以了
create table author2book(
  id int not null unique auto_increment,
  author_id int not null,
  book_id int not null,
  constraint fk_author foreign key(author_id) references author(id)
  on delete cascade
  on update cascade,
  constraint fk_book foreign key(book_id) references book(id)
  on delete cascade
  on update cascade,
  primary key(author_id,book_id)
);
#插入四個(gè)作者,id依次排開
insert into author(name) values('egon'),('alex'),('wusir'),('yuanhao');
# 每個(gè)作者的代表作
egon: 九陽神功、九陰真經(jīng)、九陰白骨爪、獨(dú)孤九劍、降龍十巴掌、葵花寶典
alex: 九陽神功、葵花寶典
wusir:獨(dú)孤九劍、降龍十巴掌、葵花寶典
yuanhao:九陽神功
# 在author2book表中插入相應(yīng)的數(shù)據(jù)
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)
;

# 現(xiàn)在就可以查author2book對(duì)應(yīng)的作者和書的關(guān)系了
mysql> select * from author2book;
+----+-----------+---------+
| id | author_id | book_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 |
+----+-----------+---------+
rows in set (0.00 sec)

一對(duì)一的情況

一對(duì)一

#例如: 一個(gè)用戶只能注冊(cè)一個(gè)博客
#兩張表: 用戶表 (user)和 博客表(blog)
# 創(chuàng)建用戶表
create table user(
  id int primary key auto_increment,
  name varchar(20)
);
# 創(chuàng)建博客表
create table blog(
  id int primary key auto_increment,
  url varchar(100),
  user_id int unique,
  constraint fk_user foreign key(user_id) references user(id)
  on delete cascade
  on update cascade
);
#插入用戶表中的記錄
insert into user(name) values
('alex'),
('wusir'),
('egon'),
('xiaoma')
;
# 插入博客表的記錄
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;

更多關(guān)于MySQL相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《MySQL查詢技巧大全》、《MySQL常用函數(shù)大匯總》、《MySQL日志操作技巧大全》、《MySQL事務(wù)操作技巧匯總》、《MySQL存儲(chǔ)過程技巧大全》及《MySQL數(shù)據(jù)庫鎖相關(guān)技巧匯總》

希望本文所述對(duì)大家MySQL數(shù)據(jù)庫計(jì)有所幫助。

您可能感興趣的文章:
  • mysql外鍵基本功能與用法詳解
  • Mysql數(shù)據(jù)庫中數(shù)據(jù)表的優(yōu)化、外鍵與三范式用法實(shí)例分析
  • MySQL創(chuàng)建數(shù)據(jù)表并建立主外鍵關(guān)系詳解
  • MySQL外鍵約束常見操作方法示例【查看、添加、修改、刪除】
  • MySQL無法創(chuàng)建外鍵的原因及解決方法
  • MySQL刪除有外鍵約束的表數(shù)據(jù)方法介紹
  • MySQL刪除表的時(shí)候忽略外鍵約束的簡(jiǎn)單實(shí)現(xiàn)
  • MySQL添加外鍵時(shí)報(bào)錯(cuò):1215 Cannot add the foreign key constraint的解決方法
  • MySQL使用外鍵實(shí)現(xiàn)級(jí)聯(lián)刪除與更新的方法
  • Mysql表創(chuàng)建外鍵報(bào)錯(cuò)解決方案

標(biāo)簽:鞍山 煙臺(tái) 來賓 果洛 赤峰 陽江 黃石 河北

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《mysql外鍵的三種關(guān)系實(shí)例詳解》,本文關(guān)鍵詞  mysql,外鍵,的,三種,關(guān)系,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《mysql外鍵的三種關(guān)系實(shí)例詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于mysql外鍵的三種關(guān)系實(shí)例詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章