foreign資料庫
❶ 資料庫SQL語言中,foreign key和references的區別是什麼
假設兩張表,表1(學號,姓名,性別),學號為主鍵. 表2(學號,課程,成績). 可以為表2的學號定義外鍵(FOREIGN KEY),該外鍵的取值范圍參照(REFERENCES)表1的學號
CONSTRAINT是對某列定義約束, 如上表1中的"性別",可以定義約束,將取值限定為不是"男",就是"女". CHECK(性別 IN ('男','女'))
❷ 資料庫里foreign key , primary key ,ak
一共就五個啊
foreign key , primary key,unique key,default,check
哪個ak就不是什麼約束
❸ 資料庫里foreign key......是什麼意思
這是外鍵,用來約束的,下面的表示本表屬性id參照person表的id屬性,並且刪除級聯,當刪除person表中的數據時,本表中存在person表中id屬性的行將被刪除,保持資料庫的信息一致。
❹ 資料庫中的主鍵,外鍵用英語怎麼說
資料庫中的主鍵,外鍵
Data in the primary key, foreign key
資料庫中的主鍵,外鍵
Data in the primary key, foreign key
❺ SQL foreign key 有什麼作用舉列簡單說一下,,怎麼用
由此可見,外鍵表示了兩個關系之間的聯系。以另一個關系的外鍵作主關鍵字的表被稱為主表,具有此外鍵的表被稱為主表的從表。外鍵又稱作外關鍵字。換而言之,如果關系模式R中的某屬性集不是R的主鍵,而是另一個關系R1的主鍵則該屬性集是關系模式R的外鍵,通常在資料庫設計中縮寫為FK。 外鍵的作用: 保持數據一致性,完整性,主要目的是控制存儲在外鍵表中的數據。 使兩張表形成關聯,外鍵只能引用外表中的列的值! 外鍵使用實例 例如: student(s#,sname,d#),即學生這個關系有三個屬性:學號,姓名,所在系別。 dep(d#,dname),即院系有兩個屬性:系號、系名。 則s#、d#是主鍵,也是各自所在關系的唯一候選鍵,d#是student的外鍵。 建立外鍵的前提: 本表的列必須與外鍵類型相同(外鍵必須是外表主鍵)。 指定外鍵關鍵字: foreign key(列名) 引用外鍵關鍵字: references (外鍵列名) 事件觸發限制: on delete和on update , 可設參數cascade(跟隨外鍵改動), restrict(限制外表中的外鍵改動),set Null(設空值),set Default(設默認值),[默認]no action 例如: outTable表 主鍵 id 類型 int 創建含有外鍵的表: create table temp( id int, name char(20), foreign key(id) references outTable(id) on delete cascade on update cascade); 說明:把id列 設為外鍵 參照外表outTable的id列 當外鍵的值刪除 本表中對應的列篩除 當外鍵的值改變 本表中對應的列值改變。 建鍵幾個原則 1、 為關聯欄位創建外鍵。 2、 所有的鍵都必須唯一。 3、避免使用復合鍵。 4、外鍵總是關聯唯一的鍵欄位。
❻ 對資料庫的操作出現了問題.
NSERT
語句與
FOREIGN
KEY
約束"FK_VoteOptions_z_VoteInfo"沖突。該沖突發生於資料庫"vote",表"dbo.z_VoteInfo",
column
'Vote_ID'。
不知道你資料庫了解多少,從上面的例子來看是資料庫內部出現問題而這個錯誤是很常見的!
如果你有兩個表
比如說
學生表,學生成績表
學生表當然是記錄學生的基本資料的
這個表裡面有一個pkid也就是自動編號
好
學生成績表裡面有一個typeid綁定於學生表的自動編號(foreign
key),這樣做的好處就是沒有存儲重復的數據,並且可以快速的聯繫到學生資料!
好
假如說你的學生表裡面有3個同學,那麼自動編號就有3個,分別對應於每一個同學,假設自動編號的值分別是1,2,3,那麼這個時候插入到學生成績表的時候的那個typeid欄位的值就只能是1,2,3的其中一個,否則就會如提示你的錯誤一樣
我想我應該描述清楚了!
其實你可以刪除掉約束,但是這樣做的後果就是很有可能讓你的數據對應出現混亂!
我給你寫一個資料庫的例子
--用戶表以及用戶blog表
create
table
userinfo
(
id
int
primary
key
identity(1,1),
name
varchar(30)
unique
not
null,
age
tinyint
check(age>0
and
age<=120)
)
--為了簡單,就只有一個文章標題,分類也去掉
create
table
blogs
(
id
int
primary
key
identity(1,1),
typeid
int
constraint
myfk
foreign
key(typeid)
references
userinfo(id),
caption
varchar(50),
)
insert
into
userinfo
values
('a',3)
select
*
from
userinfo
--自動編號為1,反正blogs的typeid欄位的值只能是userinfo中的id欄位的值的其中一個,如果
--插入userinfo欄位沒有的數據到typeid中,那麼就會錯誤
insert
into
blogs
values
(2,'a')--錯誤
insert
into
blogs
values
(1,'a')--正確
--insert
into
blogs
values
(2,'a')這個語句是錯誤的,如果你非要這樣,那麼只能夠刪掉約束
alter
table
blogs
drop
constraint
myfk--myfk是約束名,對應於你的是FK_VoteOptions_z_VoteInfo
insert
into
blogs
values
(2,'a')--這個時候就可以插入了,但是數據就不能正確對應了!
說了這么多,我想你應該可以明白!
❼ 資料庫 foreign key中的語句是什麼意思
foreign key 是個約束,意思是說如果你給A欄位設置了外鍵約束,以後你要往A欄位插入數據,這個數據一定是要在foreign key 後面跟的那個欄位中存在的值。這個的意義就是約束了數據的完整性,不會插入錯誤的數據。
打個比方你要給成績這張表中的學生學號這個欄位插入學號。如果這個學號設置了外鍵是學生表的學號,那麼你要給成績表的學號插入的學號一定是學生表的學號存在的,不會插入一個學生表中不存在的學號