資料庫的主鍵是怎麼回事,資料庫中為何要設定主鍵呢 有什麼作用?

2022-08-16 13:25:33 字數 5210 閱讀 5444

1樓:雪落花軒

主鍵(primary key)是資料庫表中對儲存資料物件予以唯一和完整標識的資料列或屬性的組合。一個資料列只能有一個主鍵,且主鍵的取值不能缺失,即不能為空值(null)。

形象說法:即一個表中某一列或某些列的組合必須是唯一值且不為空。

外來鍵(foreign key)是子表中的列(或某些列的組合)對應於父表的主鍵列(或某些列的組合)。

形象說法:子表中的列是父表中對應的列的子集。

2樓:

主鍵:表中經常有一個列或列的組合,其值能唯一地標識表中的每一行。這樣的一列或多列稱為表的主鍵,通過它可強制表的實體完整性。

當建立或更改表時可通過定義 primary key 約束來建立主鍵。一個表只能有一個 primary key 約束,而且 primary key 約束中的列不能接受空值。由於 primary key 約束確保唯一資料,所以經常用來定義標識列。

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

還是去看一下基礎知識吧

3樓:匿名使用者

主鍵就是一個表裡唯一標識一條記錄的一個或者幾個值。

外來鍵就是在一個表裡關聯別的表的記錄的值,通過該值可以到別的表裡找到唯一的一條記錄,通常這個值是別的表的主鍵。

4樓:悲傷地今天

主鍵就像你的指紋一樣,你一出生你媽媽就自動給你了指紋,也就是唯一的標識。資料庫裡的主鍵一般也是自動新增的。

資料庫中為何要設定主鍵呢?有什麼作用?

5樓:匿名使用者

資料庫主鍵,指的是一個列或多列的組合,其值能唯一地標識表中的每一行,通過它可強制表的實體完整性。

主鍵可以用來表示一個精確定位的特定的行,如果沒有主鍵,你就無法精準定位一條記錄是否就是你要的相關行記錄,這樣就會導致更新或刪除表中特定的行很困難。

而如果我們有主鍵來約束行記錄的唯一性後,就可以利用主鍵來解決這個問題。

主鍵的作用:

1)保證實體的完整性;

2)加快資料庫的操作速度。

3) 在表中新增新記錄時,dbms會自動檢查新記錄的主鍵值,不允許該值與其他記錄的主鍵值重複。

4) dbms自動按主鍵值的順序顯示錶中的記錄。如果沒有定義主鍵,則按輸入記錄的順序顯示錶中的記錄。

6樓:黃德委

有了主鍵,資料在磁碟是連續儲存的,取數的按頁取,順序讀,避免隨機讀,速度當然很快,1000次順序讀的時間=1次隨機度的時間。所以加快資料庫的操作速度

7樓:等待離校

設定主鍵,就可以保證資料的唯一,不會產生冗餘的資料。

8樓:匿名使用者

what is 主鍵?

primary key就是 實體物件裡面有一個唯一標示這個物件的內容,而這個內容就是這個實體裡的某一列.

9樓:匿名使用者

主鍵是表與表之間的關聯。

10樓:恭景福

主鍵:概念 主關鍵字(主鍵,primary key)是被挑選出來,作表的行的惟一標識的候選關鍵字。一個表只有一個主關鍵字。主關鍵字又可以稱為主鍵。

主鍵可以由一個欄位,也可以由多個欄位組成,分別成為單欄位主鍵或多欄位主鍵。

作用 1)保證實體的完整性;

2)加快資料庫的操作速度

3) 在表中新增新記錄時,access會自動檢查新記錄的主鍵值,不允許該值與其他記錄的主鍵值重複。

4) access自動按主鍵值的順序顯示錶中的記錄。如果沒有定義主鍵,則按輸入記錄的順序顯示錶中的記錄。

特點 1) 一個表中只能有一個主鍵。如果在其他欄位上建立主鍵,則原來的主鍵就會取消。在access中,雖然主鍵不是必需的,但最好為每個表都設定一個主鍵。

2)主鍵的值不可重複,也不可為空(null)。

資料庫表中的主鍵有什麼作用?

11樓:情場小男人

資料庫主鍵

主鍵:表中經常有一個列或多列的組合,其值能唯一地標識表中的每一行。這樣的一列或多列稱為表的主鍵,通過它可強制表的實體完整性。

當建立或更改表時可通過定義 primary key 約束來建立主鍵。一個表只能有一個 primary key 約束,而且 primary key 約束中的列不能接受空值。由於 primary key 約束確保唯一資料,所以經常用來定義標識列。

作用:1)保證實體的完整性;

2)加快資料庫的操作速度

3) 在表中新增新記錄時,access會自動檢查新記錄的主鍵值,不允許該值與其他記錄的主鍵值重複。

4) access自動按主鍵值的順序顯示錶中的記錄。如果沒有定義主鍵,則按輸入記錄的順序顯示錶中的記錄。

在有些資料庫中,雖然主鍵不是必需的,但最好為每個表都設定一個主鍵,不管是單主鍵還是複合主鍵。它存在代表著表結構的完整性,表的記錄必須得有唯一區分的欄位,主鍵主要是用於其他表的外來鍵關聯,以及本記錄的修改與刪除。

主鍵的無意義性

在開發過程中,讀者可能會看到將一些表使用有意義的欄位表示主鍵,例如「使用者登入資訊表」將「登入名」(英文名)作為主鍵,「訂單表」中將「訂單編號」作為主鍵,如此設計主鍵一般都是沒什麼問題,因為將這些主鍵基本不具有「意義更改」的可能性。但是,也有一些例外的情況,例如「訂單表」需要支援需求「訂單可以作廢,並重新生成訂單,而且訂單號要保持原訂單號一致」,那將「訂單編號」作為主鍵就滿足不了要求了。因此讀者在使用具有實際意義的欄位作為主鍵時,需要考慮是否存在這種可能性。

主鍵的選擇

①編號作主鍵

此方法就是採用實際業務中的唯一欄位的「編號」作為主鍵設計,這在小型的專案中是推薦這樣做的,因為這可以使專案比較簡單化,但在使用中卻可能帶來一些麻煩,比如要進行「編號修改」時,可能要涉及到很多相關聯的其他表,就像黎叔說的「後果很嚴重」;還有就是上面提到的「業務要求允許編號重複時」,我們再那麼先知,都無法知道業務將會修改成什麼?

②自動編號主鍵

這種方法也是很多朋友在使用的,就是新建一個id欄位,自動增長,非常方便也滿足主鍵的原則,優點是:資料庫自動編號,速度快,而且是增量增長,聚集型主鍵按順序存放,對於檢索非常有利;數字型的,佔用空間小,易排序,在程式中傳遞也方便;如果通過非系統增加記錄(比如手動錄入,或是用其他工具直接在表裡插入新記錄,或老系統資料匯入)時,非常方便,不用擔心主鍵重複問題。

缺點:其實缺點也就是來自其優點,就是因為自動增長,在手動要插入指定id的記錄時會顯得麻煩,尤其是當系統與其他系統整合時,需要資料匯入時,很難保證原系統的id不發生主鍵衝突(前提是老系統也是數字型的);如果其他系統主鍵不是數字型那就麻煩更大了,會導致修改主鍵資料型別了,這也會導致其他相關表的修改,後果同樣很嚴重;就算其他系統也是數字型的,在匯入時,為了區分新老資料,可能想在老資料主鍵前統一加一個「o」(old)來表示這是老資料,那麼自動增長的數字型又面臨一個挑戰。

12樓:在太乙洞講西班牙語的娥眉月

樓上的幾位都解釋了主鍵的作用,我主要說下設和不設有啥區別:

比如:張三的身份證號為123456

李四的身份證號為012345

設定身份證號為主鍵後,那麼資料庫就約束你身份證號不能重複,不能為空,那麼:

你向資料庫表插入王五的身份證號為123456,則提示你主鍵不能重複之類的錯誤;

也許你要問,那就是保證不重複嗎?主鍵可以保證不重複,並且不能為空,如果僅僅保證不重複的效果,可以只設定為索引就行了;

最後,主鍵可以是單欄位主鍵,也可以2個或多個欄位合併在一起形成聯合主鍵。

什麼是資料庫裡面的主鍵

13樓:匿名使用者

資料庫主鍵的意思是指一個列或者是多列的組合,它的值能唯一地標識表中的每一行,它的作用是可強制表的實體完整性。主鍵用於其他表的外來鍵關聯,以及本記錄的修改與刪除。在建立以及更改表的時候可以通過定義 primary key 約束來進行主鍵的建立。

14樓:

比如銀行中的賬目,卡號就是主鍵,如果卡號重複了,錢算誰的呢,下面是理論解釋:

資料庫主鍵

主鍵:表中經常有一個列或列的組合,其值能唯一地標識表中的每一行。這樣的一列或多列稱為表的主鍵,通過它可強制表的實體完整性。

當建立或更改表時可通過定義 primary key 約束來建立主鍵。一個表只能有一個 primary key 約束,而且 primary key 約束中的列不能接受空值。由於 primary key 約束確保唯一資料,所以經常用來定義標識列。

作用 :1)保證實體的完整性; 2)加快資料庫的操作速度 3) 在表中新增新記錄時,access會自動檢查新記錄的主鍵值,不允許該值與其他記錄的主鍵值重複。 4) access自動按主鍵值的順序顯示錶中的記錄。

如果沒有定義主鍵,則按輸入記錄的順序顯示錶中的記錄。

15樓:

雖然搜尋引擎與資料庫有很大的關係,但並不能說與資料庫是很本質的關係。

僅就與資料庫的關係來看,調貨員比方搜尋引擎仍然是欠妥的。調貨員的工作

是照單管理,並非自動具有檢索能力。

搜尋引擎有多種(全文、目錄、元),這都明白。

資料庫的支撐也主要起儲存作用。

一個優秀的搜尋引擎的最本質還在於自動收集、分類資訊,檢索大都是在庫中(也不僅是一個庫,也不僅是一個系列庫,特別元搜尋引擎的特點更具擴散性)

換句話說,搜尋引擎最高明的部分是在向倉庫裡運東西以前發生的事,這就是採購員,而非調貨員!樓上的錯主要還是在這個地方呢。我們因為使用搜尋引擎往往容易理解成取東西的事。

當然了,取也是很關鍵的,如何快、如何優先這都並非完全由技術來決定,因為還有優先收費的問題等等。

所以,我建議不要把資料庫搜尋引擎的重點,而是把自動化搜尋引擎的電子蜘蛛作為重點講廣泛和海量,還有yahoo的人工分類的可靠性。

當然我講的也不完全正確,講參看有關專業說法。但是我們要知道,搜尋引擎功效不是在庫內,而是在庫外。

16樓:匿名使用者

primary key(主鍵):

唯一標識每條記錄的欄位

具有primary key限制條件的欄位用於區分同一個資料表中的不同記錄。因為同一個資料表中不會存在兩個具有相同值的primary key欄位,所以對於那些需要嚴格區分不同記錄的資料表來說,primary key具有相當重要的作用。

17樓:匿名使用者

能唯一標識當前表的一個列屬性,比如以一個學生為實體,在學校唯一標識他的是他的學號。而姓名不行(有可能同名)

什麼叫資料庫,什麼是資料庫

資料庫,是一個長期儲存在計算機內的 有組織的 有共享的 統一管理的資料集合。常用的資料庫有 sqlserver,mysql,oracle,access資料庫。資料庫 database 是按照資料結構來組織 儲存和管理資料的倉庫。資料庫是統一管理任何型別資料集合的一個儲存。什麼是資料庫?資料庫 dat...

oracle資料庫,Oracle新建資料庫

樓主只要新建一個表空間,並把它分配給一個使用者就可以了。確定樓主是以管理員身份登入的 1.首先,建立 新 使用者 create user username identified by password username 新使用者名稱的使用者名稱 password 新使用者的密碼 也可以不建立新使用者...

在oracle資料庫中如果查詢資料庫中有哪幾張表

分兩種情況,一種是查詢當前使用者下的表,另一種是查詢當前資料庫下所有的表。查詢當前使用者的表 select table name from user tables 查詢當前資料庫下所有的表 select from user tables 查詢當前使用者的表 select from all table...