SQL中表中有幾個外來鍵,它們共同組成它的主鍵,這什麼意思

時間 2021-10-14 22:23:54

1樓:厙曼冬

要按下面這樣你就明白了:

reports的主鍵是:sno,tno,cno三個的組合,他們分別是其他三個表的主鍵,

所以,他們每一個都是reports的外來鍵。

2樓:

create table reports(

sno int not null constraint fk1 foreign key references students(sno),

tno int not null constraint fk2 foreign key references teachers(tno),

cno int not null constraint fk3 foreign key references courses(cno),

score int,

constraint pk_reports primary key(sno,tno,cno))

3樓:匿名使用者

1.表中經常有一個列或多列的組合,其值能唯一地標識表中的每一行。這樣的一列或多列稱為表的主鍵。

2、外來鍵 (fk) 是用於建立和加強兩個表資料之間的連結的一列或多列。通過將儲存表中主鍵值的一列或多列新增到另一個表中,可建立兩個表之間的連結。這個列就成為第二個表的外來鍵

reports表的主鍵 sno,tno,cnosno關聯students.sno,

tno關聯teachers.tno,

cno關聯courses.cno

4樓:

這個叫聯合主鍵,你可以搜一下

5樓:匿名使用者

sno,tno,cno分別對應前面的3個表是他們的外來鍵.而他們又是reports的主鍵,這句話怎麼說呢!

這是一種叫做聯合主鍵的東東!他是由幾個值唯一的欄位所組成的,這幾個欄位的值都是唯一的,這樣就會夠成了一條條唯一的記錄.

6樓:匿名使用者

不需要實現··系統直接預設。

這是一種書面說法。reports表通過3個外來鍵與其他三張表關聯,而3個外來鍵在reports表中都是具有唯一性··他們就組成了主鍵。明白不?

sql中一個表的主鍵是其他兩個表的外來鍵 該怎樣新增 sql語句怎樣寫

7樓:匿名使用者

你是說向表中新增資料?直接就可以了吧

insert into 外來鍵tablename(.....,引用id)

values(.......,主鍵表id)

sql server在同一張表中同時存在主鍵和外來鍵互相關聯是否可以?

8樓:匿名使用者

父子結構, 是可以建立外來鍵的.

例如:1> create table test_tree (

2> test_id int not null,

3> pid int,

4> test_val varchar(10),

5> primary key (test_id)

6> );

7> go

1> alter table test_tree

2> add constraint fk_test_tree

3> foreign key (pid) references test_tree(test_id);

4> go

1>根節點 的 父節點 為空, 這個是很正常的情況啊.

否則怎麼判斷 根節點.

建立外來鍵約束, 是可以避免 建立一個節點, 其 父節點是 不存在的節點.

也就是你不能建立一個 某某市, 上一級地區id = 不存在的 id

9樓:五十鈴_蘭

設計合理,但是請不要使用外來鍵,個人建議,真實的開發環境很少會使用外來鍵,外來鍵約束是一種物理約束,在開發過程中如果更改了表結構,在有外來鍵的情況下對於表的整改將會是一個非常大的工程,因此少建立物理約束。而且這樣一個表完全不需要使用外來鍵,人為的做約束是一種最常見的方式,比如前臺的輸入限制,或者先通過select檢索出上級再讓其輸入下級的資料。題外話:

id最好使用sequence,要保證其唯一性。

10樓:匿名使用者

你可以分開成兩個表,一個表只放省,一個表只放市,然後進行關聯

11樓:玖壹強強

不可以同一張表不能關聯子級的外來鍵

sql資料庫建外來鍵出錯的幾個原因

name 而在dept表中d name卻不是主鍵或者候選鍵 也就是說你僅僅將dept的d name設定為非空 卻不能保證它的唯一的的。另外,虛機團上產品 超級便宜 sql sever中建立外來鍵時出現這個情況 250 1 要建立外來鍵關係,首先要保證用來建立外來鍵關係的列具有唯一性,即具有 uniq...

mysql建立不上外來鍵,sql語句一執行完就會生成一條索引,但是外來鍵卻見不上

建立外來鍵需要注意幾點 1,必須使用innodb表引擎 2,兩個表的字元編碼必須一致 3,被引用的typeid,即父表中的typeid必須是主鍵或者唯一建滿足以上幾點,sql如下 create table father typeid int primary key,name varchar 10 e...

能否用例項說明SQL語言中主鍵約束和外來鍵約束

窺探紅杏 說白了主鍵就是為了不讓資料重複,你要表要是不允許重複你就得設定主鍵,主鍵是唯一的,本表外來鍵是別的表中的主鍵,是為了和那個表取得聯絡和約束。確保外來鍵資料一定要在別的表中主鍵出現才可以。 淡如水 create table accounts accountid nvarchar 20 pri...