MySql鏈表語句--博客園老牛大講堂


為什么鏈表?--博客園老牛大講堂

  因為表與表之間有關系,而且查詢時需要兩張表的某些數據。

鏈表的前提是:表與表之間必須設置主外鍵嗎?

  不是的,其實表與表之間不需要設置主外鍵關系,用數據庫語句就可以實現鏈表查詢,刪除,修改,增加等操作。

為什么要設置主外鍵呢?

  通常我們看到表與表之間有關系,常常設置主外鍵。為什么?其實這樣做是為了規范!假設一個不了解你表結構的人,都能夠任意的修改你的外鍵。那這個表就不嚴謹了。

我們到底設不設主外鍵呢?
  分情況:1、如果表結構簡單,少量的表。邏輯不復雜。那么這個就不需要設置主外鍵了。特別對於數據庫語句不熟悉的人,就方便多了。

      2、如果表結構復雜,有大量的表,邏輯復雜的。那么自己不可能記住所有主外鍵之間的關系,那么就需要設置主外鍵。

怎樣實現鏈表查詢呢?

  鏈表查詢又分為:左聯表,右鏈表。等.

  鏈表不僅可以進行查詢,還可以鏈表查詢,鏈表增加,鏈表刪除,鏈表修改。

 例子一、--博客園老牛大講堂

  (左聯表)、現在有兩張表,a表與b表,a表主要字段有:id,a​1,a2,a3。b表字段有:id,b1,b1_id。其中a表的id為主鍵,b1_id為外鍵。

     思路:左連接就是以左邊的a表為基礎,查詢出所關聯的數據。多余的數據則清除,缺失的數據則為空。   

 

左鏈表查詢結果如圖所示:

  

例子二、--博客園老牛大講堂

  (右聯表)、現在有兩張表,a表與b表,a表主要字段有:id,a​1,a2,a3。b表字段有:id,b1,b1_id。其中a表的id為主鍵,b1_id為外鍵。圖如上所示

     思路: 右連接就是以右邊的b表為基礎,原理與左聯接類似。

  如果是右連接的結果是:

 例子四、--博客園老牛大講堂

    上面都是鏈表查詢結果,下面我說一個鏈表刪除操作。

    題目:現有兩張表:chapters表:id(主鍵),name。division表:id(主鍵),name_id(chapters的外鍵),part。

    要求:實現鏈表刪除操作。

    語句:DELETE c,d FROM chapters c JOIN division d ON c.id=d.name_id WHERE c.id=1

         

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM