650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131229/203I52058-0.gif" alt="y_0040.gif" />有些事情其實沒有想象中的那麼那的,只是我們自己在嚇唬自己。尤其是編程中,可能你忽略掉一個很小的問題就會讓你糾結一整晚的,這段轉行的哭我走的卻也辛苦,但是將軍比我還辛苦,所以,我必須加油。
昨天晚上就載進一個坑了,苦逼的孩紙Debug了一個晚上,要人命啊!
項目:用SQL語句建立表,並且將幾張表關聯起來
問題:①引用到底是幹什嗎?
②怎麼將關聯用在SQL語句中?
③關鍵字references到底怎麼用?應該注意什麼問題?
答案:引用就是對資料庫中的資料來源加以限制,引用存在於兩張表之間,被引用的表叫做“父表”,引用別人的表叫做“子表”;如果表之間存在著這種參考關聯性,刪除表中的欄位時要非常注意,必須先刪除子表中的引用欄位,才能刪除父表中的被引用欄位。
圖解:650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131229/203I513B-1.png" title="捕獲.PNG" alt="161102497.png" />
給出的這張表中的“所在院系”欄位的值是來源於下面表中的“學院名”,這就是引用。也就是說參考資料表中沒有的值,子表中是不能出現的。這就對字表的資料來源有了限制。
那到底怎麼用在SQL語句中去呢?很簡單,有個關鍵字叫references,在寫查詢語句的時候用上就可以。
那為什麼還是會出錯呢?這裡需要注意下面幾個問題:
1,被引用的欄位或者是主鍵,或者欄位在表中的值是唯一的包含非空)
2,引用欄位的資料類型必須跟被引用,欄位的資料類型保持高度一致
3,在設計資料庫時,必須認真考慮到哪些欄位會重複,哪些欄位不會重複
4,關於主外鍵。其實比較容易的。看看圖解吧
650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131229/203I55216-2.png" title="捕獲.PNG" alt="162507343.png" />
班級表(子表)中的“所在院系”引用了學院表(父表)中的“學院編號”。這個時候,子表這一列的值就是來自於父表,受到父表的限制,把班級表的這一列叫做班級表的外鍵,而恰巧這個時候這一列在學院表中做的是主鍵。
P.S:關於主鍵的選取
主鍵是用來區分一條記錄的唯一標識,我們通常會選取一些無意義的欄位作為主鍵,比如,我們通常每一張表都會有一個“ID”欄位,而且設定為識別欄位,自增列,就是為了做主鍵,沒有任何實際的意義。
熱愛跳坑,渴望進步!
650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131229/203I52332-3.gif" alt="j_0047.gif" />Ajax的姑娘,加油!650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131229/203I52332-3.gif" alt="j_0047.gif" />
本文出自 “Ajax的姑娘” 部落格,謝絕轉載!