為什麼鍊錶?--老牛大講堂
因為表與表之間有關係,而且查詢時需要兩張表的某些資料。
鍊錶的前提是:表與表之間必須設定主外來鍵嗎?
不是的,其實表與表之間不需要設定主外來鍵關係,用資料庫語句就可以實現鍊錶查詢,刪除,修改,增加等操作。
為什麼要設定主外來鍵呢?
通常我們看到表與表之間有關係,常常設定主外來鍵。為什麼?其實這樣做是為了規範!假設乙個不了解你表結構的人,都能夠任意的修改你的外來鍵。那這個表就不嚴謹了。
我們到底設不設主外來鍵呢?
分情況:1、如果表結構簡單,少量的表。邏輯不複雜。那麼這個就不需要設定主外來鍵了。特別對於資料庫語句不熟悉的人,就方便多了。
2、如果表結構複雜,有大量的表,邏輯複雜的。那麼自己不可能記住所有主外來鍵之間的關係,那麼就需要設定主外來鍵。
怎樣實現鍊錶查詢呢?
鍊錶查詢又分為:左聯表,右鍊錶。等.
鍊錶不僅可以進行查詢,還可以鍊錶查詢,鍊錶增加,鍊錶刪除,鍊錶修改。
例子一、--老牛大講堂
(左聯表)、現在有兩張表,a表與b表,a表主要欄位有:id,a1,a2,a3。b表字段有:id,b1,b1_id。其中a表的id為主鍵,b1_id為外來鍵。如
思路:左連線就是以左邊的a表為基礎,查詢出所關聯的資料。多餘的資料則清除,缺失的資料則為空。
左鍊錶查詢結果如圖所示:
例子二、--老牛大講堂
(右聯表)、現在有兩張表,a表與b表,a表主要欄位有:id,a1,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
mysql語句部落格園 簡單mysql語句
檢視服務 desc mysql.user 1.mysql服務的啟動和停止 net stop mysql net start mysql 2.登陸mysql 語法如下 mysql u使用者名稱 p使用者密碼 鍵入命令mysql uroot p,回車後提示你輸入密碼,如果是連線到另外的機器上,則需要加入...
部落格園大裝修
本以為就像qq空間一樣平淡無奇,今天突然發現竟然可以自己設定樣式,充滿著試探心態的我對我的進行了一系列的摧殘,話不多說下面就來分享一下我的成果。首先我選擇的是的thinkinside 接下來就是對此 的摧殘 自已加的內部樣式 mytopdiv.mytopdiv hover mytitle postt...
mysql部落格園 mysql
一 聯合查詢 在兩種情況下可能用到 1 想要的結果在一條語句中會引起邏輯衝突,只能放在兩條語句中是要使用聯合查詢 2 一張表的資料量非常大時,會分隔成多張表儲存,要查詢時也要用到聯合查詢 2,聯合查詢中的order by必須搭配上limit關鍵字才能生效!因為系統預設的聯合查詢的結果往往比較多,所以...