mysql資料庫,外鍵約束和表關係

來源:互聯網
上載者:User

標籤:tab   技術分享   and   情況   學院   post   mysq   table   school   

E-R 圖 (實體關聯模型)

 

E-R圖也稱實體-聯絡圖(Entity Relationship Diagram),
  提供了表示實體類型、屬性和聯絡的方法,用來描述現實世界的概念性模型。

  它是描述現實世界關係概念性模型的有效方法。

  是表示概念關聯式模式的一種方式。

 

  用“矩形框”表示實體型,矩形框內寫明實體名稱;

  用“橢圓圖框”表示實體的屬性,並用“實心線段”將其與相應關係的“實體型”串連起來;

  用”菱形框“表示實體型之間的聯絡成因,在菱形框內寫明聯絡名,並用”實心線段“分別與有關實體型串連起來,同時

    在”實心線段“旁標上聯絡的類型(1:1,1:n或m:n)。  

 

 

外鍵約束

  外鍵約束 foreign key,保持資料一致性,完整性實現一對一或一對多關聯性。(因為一個表只存一類資訊。用外鍵來做參照,

保證資料的一致性,可以減少資料冗餘)

  外鍵約束的要求:

    資料表的儲存引擎只能為InnoDB;

    外鍵列和參照列資料類型一致;

    外鍵必須關聯到鍵上面去,一般情況是關聯到,另一張表的主鍵.

 

建立外鍵約束:

  建一個表a

  

  再建一個表b,並給它外鍵約束:

  

  建立外鍵約束的語句:constraint `外鍵名` foreign key(ab_id) references `a`(a_id);

            foreign key(ab_id) references `a`(a_id);   預設給予外鍵名,不會重複。

 

刪除外鍵: alter table `b` drop foreign key dc_id;

  

增加外鍵:   

  

  注意這裡沒有指定外鍵名,我們可以查看它的名字:

   

 

 一對多關聯性

  舉例:學校中一個學院可以有很多的學生,而一個學生只屬於某一個學院(通常情況下),學院與學生之間的關係就是一對

多的關係,通過外部索引鍵關聯來實現這種關係。

  建立一個學院表和一個學生表,學生表有一個非空欄位ss_id,將它關聯到學院的編號(school_id),即學生必須屬於某一個學

院。

  

  

  給school表插入資料:

  

  給student表插入資料:

  

  如果插入資料時,ss_id 的值在school表的school_id值中沒有則會報錯;

 

一對一關聯性

  舉例,學生表中有學號、姓名、學院,但學生還有些比如電話,家庭住址等比較私密的資訊,這些資訊不會放在學生表當

中,會建立一個學生的詳細資料表來存放。這時的學生表和學生的詳細資料表兩者的關係就是一對一的關係,因為一個學生只

有一條詳細資料。用外鍵加主鍵的方式來實現這種關係。

  

 

多對多關係:

  舉例,學生要報名選修課,一個學生可以報名多門課程,一個課程有很多的學生報名,那麼學生表和課程表兩者就形成了多

對多關係。對於多對多關係,需要建立第三張關係表,關係表中通過外鍵加主鍵的形式實現這種關係。

   先建立課程表:

  

  再建立中間表student_course:

  

  s_id對應於學生表的學生學號;c_id 對應於課程表的課程編號。

 

查詢中一些較為常見的函數

#求最大年齡     mysql> SELECT MAX(`age`) FROM `student_details`;

  

#求最小年齡:

  

#其他一些操作:

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

mysql資料庫,外鍵約束和表關係

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.