溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

mysql外鍵的關(guān)系有哪些

發(fā)布時(shí)間:2021-08-03 17:21:30 來源:億速云 閱讀:105 作者:Leah 欄目:數(shù)據(jù)庫

mysql外鍵的關(guān)系有哪些,很多新手對此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

  多對一

  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;

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI