最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2020年01月03日 10:45:02   作者:dawn-liu  
這篇文章主要介紹了mysql外鍵的三種關(guān)系,結(jié)合實(shí)例形式詳細(xì)分析了mysql外鍵多對一、多對多、一對一3種關(guān)系及相關(guān)使用技巧,需要的朋友可以參考下

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

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

  • 多對一
  • 多對多
  • 一對一

一對多或多對一

多對一

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è)地雷出版社'),
('人民音樂不好聽出版社'),
('知識產(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 | 知識產(chǎn)權(quán)沒有用出版社      |
+----+--------------------------------+
rows in set (0.00 sec)

多對多,引入第三張表

多對多

# 創(chuàng)建被關(guān)聯(lián)表author表,之前的book表在講多對一的關(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對應(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)

一對一的情況

一對一

#例如: 一個(gè)用戶只能注冊一個(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存儲過程技巧大全》及《MySQL數(shù)據(jù)庫鎖相關(guān)技巧匯總

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

相關(guān)文章

  • MySQL存儲引擎中MyISAM和InnoDB區(qū)別詳解

    MySQL存儲引擎中MyISAM和InnoDB區(qū)別詳解

    存儲引擎說白了就是如何存儲數(shù)據(jù)、如何為存儲的數(shù)據(jù)建立索引和如何更新、查詢數(shù)據(jù)等技術(shù)的實(shí)現(xiàn)方法。因?yàn)樵陉P(guān)系數(shù)據(jù)庫中數(shù)據(jù)的存儲是以表的形式存儲的,所以存儲引擎也可以稱為表類型(即存儲和操作此表的類型)
    2016-12-12
  • 詳解MySQL如何選擇合適的索引

    詳解MySQL如何選擇合適的索引

    選擇合適的索引是數(shù)據(jù)庫優(yōu)化中非常重要的一步,正確的索引可以大幅提高查詢性能,減少數(shù)據(jù)庫響應(yīng)時(shí)間;而不當(dāng)?shù)乃饕x擇則可能增加存儲開銷,影響數(shù)據(jù)庫性能,甚至使得某些操作變得更加緩慢,以下是選擇合適索引的一些指導(dǎo)原則和策略,需要的朋友可以參考下
    2024-12-12
  • MySQL修改root密碼的多種方法(推薦)

    MySQL修改root密碼的多種方法(推薦)

    本文給大家分享了三種方法來解決mysql修改root密碼的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧
    2017-03-03
  • MySQL GTID集合運(yùn)算函數(shù)總結(jié)

    MySQL GTID集合運(yùn)算函數(shù)總結(jié)

    本文主要介紹了MySQL GTID集合運(yùn)算函數(shù)總結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-04-04
  • mysql時(shí)間相減如何獲取秒值

    mysql時(shí)間相減如何獲取秒值

    這篇文章主要介紹了mysql時(shí)間相減如何獲取秒值問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • MySQL創(chuàng)建內(nèi)部臨時(shí)表的所有場景盤點(diǎn)

    MySQL創(chuàng)建內(nèi)部臨時(shí)表的所有場景盤點(diǎn)

    這篇文章主要為大家介紹了MySQL創(chuàng)建內(nèi)部臨時(shí)表的所有場景盤點(diǎn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • 解決MySQL中的Slave延遲問題的基本教程

    解決MySQL中的Slave延遲問題的基本教程

    這篇文章主要介紹了解決MySQL中的Slave延遲問題的基本教程,文中針對不同情況給出了一些具體的解決方法,需要的朋友可以參考下
    2015-11-11
  • mysql:Can''t start server: can''t create PID file: No space left on device

    mysql:Can''t start server: can''t create PID file: No space

    這篇文章主要介紹了mysql啟動失敗不能正常啟動并報(bào)錯(cuò)Can't start server: can't create PID file: No space left on device問題解決方法,需要的朋友可以參考下
    2015-05-05
  • MySQL開放遠(yuǎn)程連接權(quán)限的兩種方法

    MySQL開放遠(yuǎn)程連接權(quán)限的兩種方法

    在我們使用mysql數(shù)據(jù)庫時(shí),有時(shí)我們的程序與數(shù)據(jù)庫不在同一機(jī)器上,這時(shí)我們需要遠(yuǎn)程訪問數(shù)據(jù)庫,下面這篇文章主要給大家介紹了關(guān)于MySQL開放遠(yuǎn)程連接權(quán)限的兩種方法,需要的朋友可以參考下
    2022-06-06
  • 出現(xiàn)錯(cuò)誤mysql Table ''performance_schema...解決辦法

    出現(xiàn)錯(cuò)誤mysql Table ''performance_schema...解決辦法

    這篇文章主要介紹了解決出現(xiàn)錯(cuò)誤mysql Table 'performance_schema.session_variables' doesn't exist的相關(guān)資料,需要的朋友可以參考下
    2017-04-04

最新評論

赣榆县| 花垣县| 通河县| 新昌县| 苍梧县| 左权县| 高碑店市| 墨竹工卡县| 凤阳县| 丰台区| 莎车县| 玛多县| 济宁市| 凉城县| 青海省| 都昌县| 永泰县| 陆良县| 土默特右旗| 康平县| 察哈| 垦利县| 桐乡市| 万山特区| 边坝县| 临海市| 鸡东县| 巴林右旗| 卓资县| 松原市| 若羌县| 怀安县| 敦煌市| 体育| 孟连| 新竹市| 舒城县| 云龙县| 淄博市| 锡林浩特市| 荆门市|