mysql 關係 MySQL關係

2021-10-22 02:58:53 字數 1136 閱讀 9778

mysql關係

關係在資料庫中,將實體與實體的關係反應到表的設計上來,可以細分為 3 種,分別為:一對一(1:1),一對多(1:n)(或多對一(n:1))和多對多(n:n)。

在此,所有的關係都是指表與表之間的關係。

一對一一對一,即 一張表的一條記錄只能與另外一張表的一條記錄相對應,反之亦然。

例如,咱們設計一張「個人資訊表」,其欄位包含:姓名、性別、年齡、身高、體重、籍貫和居住地等。

如上表所示,基本滿足咱們的要求,其中姓名、性別和年齡屬於常用資料,但是身高、體重、籍貫和居住地為不常用資料。如果每次查詢都要查詢所有資料的話,那麼不常用資料就會影響效率,而且又不常用。因此,咱們可以將常用的資料和不常用的資料分離儲存,即分為兩張表,例如:

表 1:常用資料

表 2:不常用資料

如上面表1和表2所示,通過欄位id,表1中的一條記錄只能匹配表2中的一條記錄,反之亦然,這就是一對一的關係。

一對多/多對一

一對多,即 一張表中的記錄可以對應另外一張表中的多條記錄,但是反過來,另外一張表中的一條記錄只能對應第一張表中的一條記錄。

例如,咱們設計「國家城市表」,其包含兩個實體,即國家和城市。

表 3:國家表

表 4:城市表

如上面表3和表4所示,通過字段國家,表3中的一條記錄可以匹配表4中的多條記錄,但反過來,表4中的一條記錄只能匹配表3中的一條記錄,這就是典型的一對多的關係。

多對多多對多,即 一張表中的記錄可以對應另外一張表中的多條記錄,反過來,另外一張表中的一條記錄也可以對應第一張表中的多條記錄。

例如,咱們設計「教師學生表」,其包含兩個實體,即教師和學生。

表 5:教師表

表 6:學生表

觀察上面的表5和表6,咱們會發現:表5和表6的設計滿足了實體的屬性,但沒有維護實體之間的關係,即乙個老師教過多個學生,乙個學生也被多個老師教過。但是無論咱們在表5中還是在表6中增加字段,都會出現乙個問題,那就是:該字段要儲存多個資料,並且還是與其他表有關係的字段,不符合設計規範。因此,咱們可以再設計一張「中間表」,專門用來維護表5和表6的關係。

表 7:中間表

觀察上面的表5、表6和表7,咱們會發現增加表7之後,咱們維護表5和表6的關係更加方便啦!無論是想從表5通過表7查到表6,還是想從表6通過表7查到表5,都非常容易啦!這就是典型的多對多的關係。

mysql 關係 MySQL之表關係

mysql表關係 一對多關係 一對多與多對一是乙個概念,指的是乙個實體的某個資料與另外乙個實體的多個資料有關聯關係。舉例,學校中乙個學 院可以有很多的學生,而乙個學生只屬於某乙個學院 通常情況下 學院與學生之間的關係就是一對多的關係,通過外來鍵關聯來實現這種關係。建立學院表 mysql create...

mysql 表參照關係 MYSQL表關係

表關係 一 外來鍵 foreign key 作用 約束當前表的某列值必須取自於另一張表的主鍵列值 外來鍵所在的列稱之為 外來鍵列 外來鍵所在的表稱之為 外來鍵表 或 子表 被外來鍵列所引用的表稱之為 主表 或 主鍵表 語法 1.建立表的同時指定外來鍵 create table 字段 型別,const...

mysql查詢關係表 MySQL查詢之關係查詢

連線查詢 select table b.type,table b.title,table b.content,table b.author from table a left join table b on table a.type table b.type where table a.id 1 子...