sqlserver中主外來鍵關係是怎麼回事

2022-02-26 06:58:43 字數 3804 閱讀 7855

1樓:

主鍵、外來鍵和索引的區別

定義:主鍵--唯一標識一條記錄,不能有重複的,不允許為空外來鍵--表的外來鍵是另一表的主鍵, 外來鍵可以有重複的, 可以是空值作用:主鍵--用來保證資料完整性

外來鍵--用來和其他表建立聯絡用的

個數:主鍵--主鍵只能有一個

外來鍵--一個表可以有多個外來鍵

sql的主鍵和外來鍵的作用:

外來鍵取值規則:空值或參照的主鍵值。

(1)插入非空值時,如果主鍵表中沒有這個值,則不能插入。

(2)更新時,不能改為主鍵表中沒有的值。

(3)刪除主鍵表記錄時,你可以在建外來鍵時選定外來鍵記錄一起級聯刪除還是拒絕刪除。

(4)更新主鍵記錄時,同樣有級聯更新和拒絕執行的選擇。

簡而言之,sql的主鍵和外來鍵就是起約束作用。

2樓:匿名使用者

用來標識表中每條記錄的一個唯一標識碼就可以是主鍵.

是用來區分第一行的.

外來鍵則是指這一列是其他表的主鍵.

3樓:匿名使用者

主關鍵字(主鍵,primary key)是被挑選出來, 主關鍵字

作表的行的唯一標識的候選關鍵字。一個表只有一個主關鍵字。主關鍵字又可以稱為主鍵。

主鍵可以由一個欄位,也可以由多個欄位組成,分別成為單欄位主鍵或多欄位主鍵。又稱主碼。並且它可以唯一確定表中的一行資料,或者可以唯一確定一個實體。

如果公共關鍵字在一個關係中是主關鍵字,那麼這個公共關鍵字被稱為另一個關係的外關鍵字。由此可見,外關鍵字表示了兩個關係之間的聯絡。以另一個關係的外關鍵字作主關鍵字的表被稱為主表,具有此外關鍵字的表被稱為主表的從表。

外關鍵字又稱作外來鍵。

sql server中表主鍵和外來鍵是什麼意思?如何使用主外來鍵實現表關聯?

4樓:匿名使用者

表中的主鍵:是指對這個表中的資料進行唯一標識用的一個欄位,一般是自動編號列。外來鍵:其實這個外來鍵是其他表的主鍵,主要用來表示這個表中的資料與另外那個表的資料之間的關係。

5樓:匿名使用者

主鍵標示這個表 的記錄的唯一性,,也就是一個表的主鍵上的列的值不能重複。外來鍵是其它表的主鍵在這個表上對應的列。。。外來鍵是用來做關聯查詢,以及對倆個表之間的約束。

sql server怎樣建立主外來鍵關係

6樓:海天盛

sqlserver怎樣建立主外來鍵關係的方法。

如下參考:

1.為了幫助你理解,用一個例子來幫助你理解。它基本上是指通過引用表2中的欄位來約束表1中的欄位。

2.有兩個表,第一個表建立外來鍵表,因為第一個外來鍵,主鍵可以被引用。首先建立資料庫,然後建立一個新的查詢。

3.建立一個新的外來鍵表[teacher],然後輸入命令:createtableteacher。

新增teacher_xingming的必填欄位,並將其設定為[主鍵]。nchar(10)主鍵,

4.選擇需要執行的命令列,點選[execute],在底部會有成功或失敗的提示。現在,在對錶執行重新整理操作之後,您將發現一個新表已經成功建立[teacher]。

5.接下來,建立表student(student_xingmingnchar(10)主鍵不為空)。

6.繼續寫,型別:student_banjinchar(10)notnull,——一個新的[student_banji欄位,型別nchar(10),不允許為空。]

7,建立一個外來鍵,輸入命令student_jiaoshinchar(10)外來鍵引用老師(teacher_xingming)看起來很長,實際的意思很簡單:在表中建立一個新的(student_jiaoshi欄位),它是一個外來鍵,nchar(10)型別,teacher_xingming的內容。

8.選擇,點選【執行】,沒有錯誤,即為成功。重新整理表,看看是否有額外的表[student]?已經建立了所有約束。

9.讓我們看看我們是否真的能做我們說過的。開啟教師表,填寫「劉老師」。開啟【學生表】,任意填寫前面,最後填寫「劉老師」,沒有錯誤是可以的。

10.如何測試約束是否真的有效,填寫其他內容看看是否成功?只要它不在教師欄中),它就會報錯。

7樓:文件類共創空間

1、要建立外來鍵關係,首先要保證用來建立外來鍵關係的列具有唯一性,即具有 unique 約束,通常是某表的主鍵作為另外一個表的外來鍵;

2、開啟資料庫表,找到要建立外來鍵的表。並確保其中要建立外來鍵關係的列與主鍵表中的資料型別完全一致;

3、在要建立外來鍵關係的表中,在任意列上右擊,選擇【關係】;

4、在外來鍵關係對話方塊中,點選左下角的【新增】;

5、點選【表和列規範】項的右側的 ...小按鈕;

6、在表和列對話方塊中,在主鍵表下方選擇外來鍵列所在的表和該外來鍵列;

7、在外來鍵表下方,只要選擇表中與主鍵表的列相對應的列即可;

8、然後點選【確定】,再回到外來鍵關係表;

9、如果還有外來鍵關係需要建立,繼續點選外來鍵關係表左下側的【新增】,沒有的話,點選【關閉】即可;

10、此時,已經成功建立了一個主外來鍵關係。在表中任意列右擊,選擇關係就可以看到啦。

8樓:匿名使用者

在要設定關係的外來鍵表中,右擊關係→新增→在表和列規範中選擇關聯的主表再選擇外來鍵表與其關聯的欄位

9樓:

constraint 外來鍵名稱 foreign key (欄位) references 引用表表名 (引用欄位)

在sql中、主外來鍵主要到底 是幹什麼用的?

10樓:匿名使用者

主鍵primary key,唯一標示一個實體。是保證資料庫的實體完整性,保證資料中資料的正確性和合理性,取值非空唯一。例子:

create table 學生表(學號 int primary key)

外來鍵foreign,是用來使表與表之間聯絡。用來保證資料庫的參照完整性,外來鍵的取值必須來自參照表參照列的值,可以為空也可不為空。例子:

create table 選課表(學號 int foreign key references 學生表(學號))

連線查詢與內外來鍵的關係:

連線的 連線條件:a表的主鍵 = b表的外來鍵如果做連線的兩表沒有主外來鍵關係,那麼連線結果是笛卡爾積,沒有意義。

例:學生表和選課表做連線,select *from 學生表,選課表where 學生表.學號(主鍵)=選課表.學號(外來鍵)

主外來鍵可以建級聯級觸發器,用來做級聯刪除、更新。作用原理還是因為主外來鍵將兩表聯絡。

11樓:匿名使用者

主外來鍵就是完整性約束,查詢時可以提高效率

內連線和外連線是查詢時表的連線方式,主外來鍵是表之間關係主外來鍵 還有 級聯刪除 級聯更新(oracle沒有,sql server有)功能

12樓:通恨蕊稽晴

舉個簡單的例子

表a內有列c1

表b內有列c2

將c2的外來鍵指向c1

那麼當你向表b插入資料時,c2的內容必須為c1中的一個還有幾個約束需要你設定

如刪除或者修改表a中的欄位時怎麼處理表b中相關聯的資料

13樓:高琪郭盤盤

主鍵是表內查詢用的唯一標識,具有不重複性特點

外來鍵是表間連線用的,即多表查詢

14樓:匿名使用者

參考下

資料庫表中的主鍵和外來鍵。

sqlserver中datetime型別怎樣把輸出的秒去掉只取

sql convert 用法 convert data type,expression style convert varchar 10 欄位名,轉換格式 說明 此樣式一般在時間型別 datetime,alldatetime 與字串型別 nchar,nvarchar,char,varchar 相互轉...

sql server中萬用字元 的使用

在vfp6.0中,萬用字元有兩種,一種是 表示任何一串字元,還有一種是 表示任何一個字元。在sql查詢語句中有時用到模糊查詢。格式為 屬性名 like 字串常量 屬性名必須為字元型。例如 查詢某班所有姓張的同學select from student where 姓名like 張 這兒必須用 like...

sqlserver中宣告變數並使用

你的問題出在對來變數源的賦值上了,應該用 select a identity,以下是我按你的要求做的例子,sqlserver 2008中測試正確 create table login sid int identity primary key,name varchar 40 password varc...