㈠ sql server 問題,什麼是外鍵,什麼是主鍵一個表的外鍵可以是另一個表的主鍵嗎
1.主鍵:唯一標識表中的所有行的一個列或一組列。主鍵不允許空值。不能存在具有相同的主鍵值的兩個行,因此主鍵值總是唯一標識單個行。表中可以有不止一個鍵唯一標識行,每個鍵都稱作候選鍵。只有一個候選鍵可以選作表的主鍵,所有其它候選鍵稱作備用鍵。盡管表不要求具有主鍵,但定義主鍵是很好的做法。 在規范化的表中,每行中的所有數據值都完全依賴於主鍵。例如,在以 EmployeeID 作為主鍵的規范化的 employee 表中,所有列都應包含與某個特定職員相關的數據。該表不具有 DepartmentName 列,因為部門的名稱依賴於部門 ID,而不是職員 ID。 外鍵:外鍵 (FK) 是用於建立和加強兩個表數據之間的鏈接的一列或多列。通過將保存表中主鍵值的一列或多列添加到另一個表中,可創建兩個表之間的鏈接。這個列就成為第二個表的外鍵。
定義主鍵來強制不允許空值的指定列中輸入值的唯一性。如果在資料庫中為表定義了主鍵,則可將該表與其它表相關,從而減少冗餘數據。表只能有一個主鍵。 外鍵: 當創建或更改表時可通過定義 FOREIGN KEY 約束來創建外鍵。 主鍵是本表的唯一標識,而外鍵是與另一個表相關聯
2.一個表的外鍵 可以 是另一張表的主鍵, 但不可以說 外鍵必須是另一張表的主鍵。
㈡ sql的欄位能否是主鍵也是外鍵
不能即是主鍵又是外鍵的。
㈢ SQL中主鍵和外鍵的定義是什麼
關系型資料庫中的一條記錄中有若干個屬性,若其中某一個屬性組(注意是組)能唯一標識一條記錄,該屬性組就可以成為一個主鍵
比如
學生表(學號,姓名,性別,班級)
其中每個學生的學號是唯一的,學號就是一個主鍵
課程表(課程編號,課程名,學分)
其中課程編號是唯一的,課程編號就是一個主鍵
成績表(學號,課程號,成績)
成績表中單一一個屬性無法唯一標識一條記錄,學號和課程號的組合才可以唯一標識一條記錄,所以 學號和課程號的屬性組是一個主鍵
成績表中的學號不是成績表的主鍵,但它和學生表中的學號相對應,並且學生表中的學號是學生表的主鍵,則稱成績表中的學號是學生表的外鍵
同理 成績表中的課程號是課程表的外鍵
定義主鍵和外鍵主要是為了維護關系資料庫的完整性,總結一下:
主鍵是能確定一條記錄的唯一標識,比如,一條記錄包括身份正號,姓名,年齡。身份證號是唯一能確定你這個人的,其他都可能有重復,所以,身份證號是主鍵。
外鍵用於與另一張表的關聯。是能確定另一張表記錄的欄位,用於保持數據的一致性。比如,A表中的一個欄位,是B表的主鍵,那他就可以是A表的外鍵。二、 主鍵、外鍵和索引的區別 收藏主鍵、外鍵和索引的區別?
主鍵
外鍵
索引
定義:
唯一標識一條記錄,不能有重復的,不允許為空
表的外鍵是另一表的主鍵, 外鍵可以有重復的, 可以是空值
該欄位沒有重復值,但可以有一個空值
作用:
用來保證數據完整性
用來和其他表建立聯系用的
是提高查詢排序的速度
個數:
主鍵只能有一個
一個表可以有多個外鍵
一個表可以有多個惟一索引
聚集索引和非聚集索引的區別?
聚集索引一定是唯一索引。但唯一索引不一定是聚集索引。
聚集索引,在索引頁里直接存放數據,而非聚集索引在索引頁里存放的是索引,這些索引指向專門的數據頁的數據。
㈣ SQL中什麼叫主鍵,什麼是外鍵,有啥關系
說簡單點就是,主鍵就是唯一標識一列的約束,外鍵就是數據引用主鍵的一個約束兩者的關系就是,主鍵值必須是唯一的,也就是不能重復,外鍵引用了主鍵,那麼它的值就只能是主鍵中出現過的值,不能是主鍵未出現的值
㈤ 請問SQL server 中的主鍵和外鍵的作用
主鍵:唯一標識一條記錄,不能有重復的,不允許為空;外鍵:表的外鍵是另一表的主鍵, 外鍵可以有重復的, 可以是空值。
主鍵的作用是用來保證數據完整性,主鍵只能有一個。比如,一條記錄包括身份正號,姓名,年齡。身份證號是唯一能確定你這個人的,其他都可能有重復,所以,身份證號是主鍵。
外鍵的作用是用來和其他表建立聯系用的,一個表可以有多個外鍵。比如,A表中的一個欄位,是B表的主鍵,那他就可以是A表的外鍵。
㈥ 在mysql資料庫中一個表中可以有一個主鍵一個外鍵嗎很急,先謝謝大家了!
當然可以,外鍵欄位必須與其他某個表中的主鍵欄位關聯,類型必須相同。
㈦ sql中主鍵外鍵可以是同一個欄位嗎
可以
比如關系表中的關系主鍵往往同時也是參考關聯表的外鍵。
㈧ 請問 sql 欄位 可不可以 即是主鍵又是外鍵
可以,這說明這兩張表的主鍵相關聯,只是那張是主表(就是該表的主鍵作為從表的外鍵),那張是從表(該表的主鍵同時也是外鍵),需要自己定義好。
CREATE TABLE `dispatch_cost` (
`id` varchar(50) NOT NULL COMMENT 'id',
`belong` varchar(15) DEFAULT NULL COMMENT '設計交付日期',
primary key (`id`),
constraint `FK_DISPATCH_ID` foreign key (`id`) references `dispatch_order` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='成本表';
(8)sql的主鍵外鍵可以是一個嗎擴展閱讀:
主鍵:表中經常有一個列或多列的組合,其值能唯一地標識表中的每一行。這樣的一列或多列稱為表的主鍵,通過它可強製表的實體完整性。當創建或更改表時可通過定義 PRIMARY KEY 約束來創建主鍵。一個表只能有一個 PRIMARY KEY 約束,而且 PRIMARY KEY 約束中的列不能接受空值。由於 PRIMARY KEY 約束確保唯一數據,所以經常用來定義標識列。
㈨ mysql 可以主鍵和外鍵可以是同一個嗎
在一個表中主鍵必須唯一不能為空,外鍵是必須在依賴的關系表中存在的才可以的
㈩ sql的欄位能否既是主鍵也是外鍵
當然能了,比如有一個關系是一對多的,在並合關系的時候就把一端的主鍵並到多端那裡作為外鍵,那那個關系的主鍵就是本來的主鍵+外鍵,外鍵是一端的主鍵不變.
SQL語句就自己寫了,既然你的題是從軟考那拿來的,那肯定有答案的,我就不費心思寫了