SQL中主鍵和外來鍵的定義是什麼,「SQL Server」中的「鍵」是什麼意思?主鍵和外來鍵是什麼?

時間 2022-04-24 02:35:20

1樓:匿名使用者

關係型資料庫中的一條記錄中有若干個屬性,若其中某乙個屬性組(注意是組)能唯一標識一條記錄,該屬性組就可以成為乙個主鍵

比如學生表(學號,姓名,性別,班級)

其中每個學生的學號是唯一的,學號就是乙個主鍵

課程表(課程編號,課程名,學分)

其中課程編號是唯一的,課程編號就是乙個主鍵

成績表(學號,課程號,成績)

成績表中單一乙個屬性無法唯一標識一條記錄,學號和課程號的組合才可以唯一標識一條記錄,所以 學號和課程號的屬性組是乙個主鍵

成績表中的學號不是成績表的主鍵,但它和學生表中的學號相對應,並且學生表中的學號是學生表的主鍵,則稱成績表中的學號是學生表的外來鍵

同理 成績表中的課程號是課程表的外來鍵

定義主鍵和外來鍵主要是為了維護關聯式資料庫的完整性,總結一下:

主鍵是能確定一條記錄的唯一標識,比如,一條記錄包括身份正號,姓名,年齡。身份證號是唯一能確定你這個人的,其他都可能有重複,所以,身份證號是主鍵。

外來鍵用於與另一張表的關聯。是能確定另一張表記錄的字段,用於保持資料的一致性。比如,a表中的乙個字段,是b表的主鍵,那他就可以是a表的外來鍵。

二、 主鍵、外來鍵和索引的區別 收藏主鍵、外來鍵和索引的區別?

主鍵外來鍵

索引定義:

唯一標識一條記錄,不能有重複的,不允許為空

表的外來鍵是另一表的主鍵, 外來鍵可以有重複的, 可以是空值

該欄位沒有重複值,但可以有乙個空值

作用:用來保證資料完整性

用來和其他表建立聯絡用的

是提高查詢排序的速度

個數:主鍵只能有乙個

乙個表可以有多個外來鍵

乙個表可以有多個惟一索引

聚集索引和非聚集索引的區別?

聚集索引一定是唯一索引。但唯一索引不一定是聚集索引。

聚集索引,在索引頁裡直接存放資料,而非聚集索引在索引頁裡存放的是索引,這些索引指向專門的資料頁的資料。

2樓:狂鳥鵟

主鍵就像身份證號碼,用來表示乙個東東的;外來鍵的話就是別人的主鍵,就像一年級一班這是這個班級的主鍵,你是這個班級的一員,在你的資訊中班級一欄是「一年級一班」,在這裡的「一年級一班」就是外來鍵了。

3樓:仦伯

主鍵就是確定表中的每一條記錄。主鍵不能是空值。

外來鍵主要用來維護兩個表之間資料的一致性。

sql中主鍵和外來鍵的定義是什麼???

4樓:藺宸愚東

通俗的說吧

先說說主鍵(primary

key)吧:一張表(關係)的乙個列(屬性)或多個列可以作為主鍵,但是前提是讓這個列作主鍵,這個列就能保證該列下的各個行(元組)的值不能相同,比如說你用姓名屬性作主鍵的話,那麼這個主鍵就不一定可以,如果有兩個人是同樣的名字的話,就不能做到該屬性下的各個元組資料的值不同,如果用阿拉伯數字作主鍵就是乙個很好的選擇。

再說說外來鍵(foreign

key):一張表(關係)的列(屬性)它同時存在表1和表2中,它不是表1的主鍵,而是表2的主鍵,就可以說他是表1的外來鍵。

那麼什麼是候選鍵(candidate

key)呢:能唯一標識表(關係)中行(元組)的列(屬性),則稱該屬性為候選鍵,也稱

候選關鍵字

或候選碼;由此來看候選鍵可以不只乙個,還看一看得出的就是主鍵同時它也是候選鍵

「sql server」中的「鍵」是什麼意思?主鍵和外來鍵是什麼?

5樓:蠍

這需要理清幾個概念:

1.候選鍵: 關係中的乙個屬性組,其值能唯一標識乙個元組,若從該屬性組中去掉任何乙個屬性,它就不具有這一性質了,這樣的屬性組稱作候選碼。

2.主鍵:當有多個候選碼時,可以選定乙個作為主碼,選定的候選碼稱主鍵

3.外來鍵: 關係r中的乙個屬性組,它不是r的候選碼,但它與另乙個關係s的候選碼相對應,則稱這個屬性組為r的外碼或外來鍵。

sql server 是乙個全面的、整合的、端到端的資料解決方案,它為組織中的使用者提供了乙個更安全可靠和更高效的平台用於企業資料和 bi 應用。sql server 2005 為 it 專家和資訊工作者帶來了強大的、熟悉的工具,同時降低了在從移動裝置到企業資料系統的多平台上建立、部署、管理和使用企業資料和分析應用程式的複雜性。

sql中主鍵和外來鍵的定義是什麼?

6樓:大大的

主鍵的定義:要求主鍵列資料唯一,並且不允許為空。

外來鍵的定義:用於在兩表之間建立關係,需要指定引用主表的那一列。

1、主鍵(primary key)吧:一張表(關係)的乙個列(屬性)或多個列可以作為主鍵,但是前提是讓這個列作主鍵,這個列就能保證該列下的各個行(元組)的值不能相同,比如說你用姓名屬性作主鍵的話,那麼這個主鍵就不一定可以,如果有兩個人是同樣的名字的話,就不能做到該屬性下的各個元組資料的值不同,如果用阿拉伯數字作主鍵就是乙個很好的選擇。

2、外來鍵(foreign key):一張表(關係)的列(屬性)它同時存在表1和表2中,它不是表1的主鍵,而是表2的主鍵,就可以說他是表1的外來鍵。

3、候選鍵(candidate key):能唯一標識表(關係)中行(元組)的列(屬性),則稱該屬性為候選鍵,也稱 候選關鍵字 或 候選碼;由此來看候選鍵可以不只乙個,還看一看得出的就是主鍵同時它也是候選鍵。

7樓:沈洋然山發

主鍵就像身份證號碼,用來表示乙個東東的;外來鍵的話就是別人的主鍵,就像一年級一班這是這個班級的主鍵,你是這個班級的一員,在你的資訊中班級一欄是「一年級一班」,在這裡的「一年級一班」就是外來鍵了。

sql server 中的「鍵」是什麼意思?主鍵和外來鍵是什麼?

8樓:匿名使用者

這需要理清幾個概念:

1)候選鍵: 關係中的乙個屬性組,其值能唯一標識乙個元組,若從該屬性組中去掉任何乙個屬性,它就不具有這一性質了,這樣的屬性組稱作候選碼。

2)主鍵:當有多個候選碼時,可以選定乙個作為主碼,選定的候選碼稱主鍵

3)外來鍵: 關係r中的乙個屬性組,它不是r的候選碼,但它與另乙個關係s的候選碼相對應,則稱這個屬性組為r的外碼或外來鍵。

舉個例子:

有兩個關係:

student(s#,sname,d#),即學生這個關係有三個屬性:學號,姓名,所在系別

dep(d#,dname),即院系有兩個屬性:系號、系名

則s#、d#是主鍵,也是各自所在關係的唯一候選鍵,d#是student的外來鍵。

參考資料:資料庫——原理、程式設計與效能

9樓:匿名使用者

主鍵是這條資料在這張表中的唯一標示。外來鍵就是關聯其他表的資料的標示

10樓:匿名使用者

乙個班的學生的 學號可以看做乙個主鍵

請問一下sql中的主鍵和主外來鍵的區別和聯絡是什麼?

11樓:完顏素花零未

主鍵是你這張表的標識列,外來鍵是另外一張表的標識列所對應的序列可以這樣理解

使用者表id

username

deptid

這裡id是user表中的主鍵,deptid是dept表在user表中的外來鍵

1kaka

1部門表

iddeptname

1develop

理解為使用者kaka所對應的部門的序列是1,部門id為1的部門是開發部

sql中什麼叫主鍵,什麼是外來鍵,有啥關係

12樓:匿名使用者

舉例來說明,你可能更容易接受省表有字段id name,id設定為主鍵就是說是唯一如果城市表的pid是省表的id,那麼城市表裡的pid就是省表的外來鍵 一般來說主鍵對應乙個或多個外來鍵。

13樓:曉之

乙個表中的id一般為主鍵 ,表示此表與其他表關係的字段(一般為其他表的id)為此表的外來鍵。

例如表province(id,cityid,name) 另外還有乙個表 city (id,name) 。

則相對有province來說 id是主鍵,cityid是外來鍵。

14樓:匿名使用者

就好像乙個訂單需要2張表

1站訂單表 一張訂單明細表

訂單表裡面的id是主鍵

明細表裡的也有個id 關聯的訂單表的id 那明細表的id就是外來鍵訂單表的乙個產品如果刪掉了 但明細表裡面的關聯訂單表的資料沒刪掉 就造成了資料冗餘

所以設定主外來鍵是防止資料誤刪和冗餘 設定主鍵後 如果明細表的資料沒刪掉 主鍵內的資訊就刪不掉

15樓:匿名使用者

就跟領導是主鍵 下屬是外來鍵的關係一樣

sql中什麼叫主鍵表,什麼叫外來鍵表

16樓:雲若雨夕

你說的是表的主鍵和外來鍵吧,主鍵和外來鍵是個相對的概念,一張表中,每行都不重複的那一列一般作為主鍵儲存。例如表a的a欄位是a表的主鍵,b表中也有a欄位,且內容能夠與a表中的a欄位內容關聯上,則b表的a欄位稱為a表中a欄位的外來鍵。

17樓:

主鍵表和外建表是相對來說的,簡單的說就是乙個表的主鍵是另外一張表的外來鍵。

例如class 班級表

主要字段如下:

classid primary key(主鍵)班級idclassname 班級名稱

studen 學生表

主要字段如下

stuid primary key(主鍵)學生idstuname 學生姓名

classid foreign key(外建)所屬班級idclass表中的主鍵classid 是student表中的外建則認為class為主鍵表 student為外來鍵表

18樓:匿名使用者

主鍵表 外來鍵表 這個概念沒有 沒聽過

不過從字面理解 這個應該是基於有外來鍵的表說的

有外來鍵的那張表是外來鍵表 另外張關聯外來鍵的應該就是主鍵表

19樓:君上沙夏

主鍵是能確定一條記錄的唯一標識,比如,一條記錄包括身份正號,姓名,年齡。身份證號是唯一能確定你這個人的,其他都可能有重複,所以,身份證號是主鍵。

外來鍵用於與另一張表的關聯。是能確定另一張表記錄的字段,用於保持資料的一致性。比如,a表中的乙個字段,是b表的主鍵,那他就可以是a表的外來鍵。

sql中的每一張表都必須設有主鍵嗎

sql中不是必須設定主鍵。主關鍵字 primary key 的意思是表中的乙個或多個欄位2113,它的值用於唯一地標識表中的某一條記錄。在兩個表5261的關係中,主關鍵字用來在乙個表中引用來自於另乙個表中的特定記錄,4102主關鍵字是一種唯一關鍵字,表定義的一部分。乙個表不能有多個主關鍵字,並且主關...

怎樣用SQL向資料庫中批量的插入資料,主鍵是隨機生成的

使用資料型別uniqueidentifier最合適了 建立表 create table a tmp primary id uniqueidentifier notnull col1 varchar 10 collate chinese prc ci as null,col2 varchar 10 c...

t sql建好表後如何定義主鍵,sql 表建好後,想改主鍵 用sql語句怎樣寫

tsql建好表後如何定義主鍵的方法。如下參考 1 開啟管理工具,sqlservermanagementstudio連線到資料庫。2.建立新錶時設定主鍵 開啟新錶介面,資料庫建立新錶,右鍵點選 table 選單,選擇 new table 3.建立新錶時設定主鍵 如下所示設定主鍵。4.修改表主鍵 開啟設...

主鍵和外來鍵,什麼是主鍵與外來鍵?

答案都非常好,這個問題也很基礎,但我還是有必要在回答一下 好讓我來了解一下資料庫中非常經典的問題 何為超鍵,何為候選鍵,何為主鍵,何為邏輯主鍵,何為業務主鍵,何為外來鍵 如上一張圖,是一張非常普通的資料表,其中就包含了超鍵,候選鍵和主鍵的含義 讓我們一次來了解一下其中的各個區別 我要找編號為1且姓名...

怎樣在sql server中建立復合主鍵

方法一 建立表之後 alter table table name add primary key 欄位1,欄位2 方法二 create table 表名 欄位名1 int not null,欄位名2 nvarchar 13 not null欄位名3 欄位名n goalter table 表名 wit...