sql多表查詢要設(shè)置外鍵嗎 如何通過sqlyog對數(shù)據(jù)庫表設(shè)置外鍵?
如何通過sqlyog對數(shù)據(jù)庫表設(shè)置外鍵?三種方法:1.真接寫sql語句.2.用SQLyog你選外鍵表,然后點擊右鍵選擇關(guān)聯(lián)/外鍵,然后把再你選主表,外鍵.3.在表vet_specialties上再點擊
如何通過sqlyog對數(shù)據(jù)庫表設(shè)置外鍵?
三種方法:
1.真接寫sql語句.
2.用SQLyog你選外鍵表,然后點擊右鍵選擇關(guān)聯(lián)/外鍵,然后把再你選主表,外鍵.
3.在表vet_specialties上再點擊右鍵,接著不能找到Relationships/ForeignKeys中,接著選擇你所選的列。
或則就寫命令:ALTERTABLEvet_specialtiesADDFOREIGNKEYFK_SPECIALTY_ID(specialty_id)REFERENCESspecialties(id)ALTERTABLEvet_specialtiesADDFOREIGNKEYFK_VET_ID(vet_id)REFERENCESvets(id)
sqlserver界面,設(shè)置,主鍵,外鍵?
1.然后打開sqlserver數(shù)據(jù)庫軟件,右鍵你要鍵主鍵與外鍵的表(你是需要關(guān)聯(lián)其它表的主表)再點設(shè)計。
sql中key用法有哪些?
MySQL中外鍵(FROEIGN KEY)的使用
1.定義:
外鍵用處在兩個表的數(shù)據(jù)之間建立鏈接,它可以不是一列或是多列;一個表是可以有一個或多個外鍵。
外鍵按的是可以參照完整性,一個表的外鍵也可以為空值,若不為空值,則每一個外鍵值前提是等于零另一個表中主鍵的某個值。
外鍵是表的一個字段,并非表的主鍵,但按另一個表的主鍵;定義外鍵后,不不能徹底刪除另一個表中具有關(guān)聯(lián)關(guān)系的行。
主表(父表):這對兩個本身關(guān)聯(lián)關(guān)系的表而言,相關(guān)聯(lián)字段中主鍵的地方的那個表即是主表;
從表(子表):相對于兩個更具關(guān)聯(lián)關(guān)系的表而言,相關(guān)聯(lián)字段中外鍵的地方的那個表即是從表。
被朝的實體,稱之重點實體(主表),也叫父實體(父表)
共同負責(zé)對準的實體,稱之為從實體(從表),也叫子實體(子表);
若‘表1'的一個列應(yīng)是主鍵又是外鍵,而這個外鍵約束又填寫另一個表‘表2'的主鍵,那么‘表1'和‘表2'就這個可以合并下來了
2.作用:
外鍵的主要作用是保持數(shù)據(jù)的一致性、完整性。
如果不是主表是沒有相關(guān)的記錄,從表不能不能插入到;
更新完時,肯定不能改為主鍵表中沒有的值;
刪除掉主鍵表記錄時,是可以在建外鍵時選定外鍵記錄互相多路復(fù)用刪除掉那就委婉地拒絕刪出;同樣的有級聯(lián)沒更新和婉拒更新完的選擇。
ONDELETECASCADE級聯(lián)刪除
ONupdateCASCADE級聯(lián)更新
3.系統(tǒng)設(shè)置MySQL外鍵約束字段的規(guī)則:
?父表要早未知于數(shù)據(jù)庫中,也可以是當(dāng)前還在創(chuàng)建角色的表;若不是后者,則父表與子表是同一個表,這樣的表一般稱自可以按照完整性。
?必須愚兄鍵定義主鍵。
?主鍵又不能真包含空值,但不允許在鍵中再次出現(xiàn)空值;也就是說,只要外鍵的每個非空值出現(xiàn)在指定的主鍵中,這個外鍵的內(nèi)容是錯誤的的。
?在父表的表名后面指定你列在或表名的組合,這個列的組合需要是父鍵的主鍵或則候選鍵。
?外鍵中列的數(shù)據(jù)類型和父鍵主鍵中按的數(shù)據(jù)類型相同。
?外鍵中列的數(shù)目需要和父鍵中列的數(shù)目是一樣的。
4.創(chuàng)建、去添加外鍵的語法規(guī)則:
(1)修改
[CONSTRAINT]FOREIGN KEY字段名[,字段名2,…]
REFERENCES主鍵列1[,主鍵列2,…]
“外鍵名”為定義的外鍵約束的名稱,一個表中又不能有是一樣的名稱的外鍵;
“字段名”表示子表需要直接添加外鍵約束的字段列;
“主表名”即被子表外鍵所依賴感的表的名稱;
“主鍵列”可以表示主表中定義的主鍵列,或則列組合。
(2)添加
ALTER TABLE ADD CONSTRAINT(形似:FK_從表_主表)
FOREIGNKEY()REFERENCES()