1、外鍵是屬于約束的一種,所謂約束顧名思義,就是限制你在數(shù)據(jù)庫(kù)的操作。而你對(duì)數(shù)據(jù)庫(kù)有什么操作,無(wú)非是增、刪、改、查,外鍵起的作用就是讓你在數(shù)據(jù)庫(kù)幫助的情況下更合理的增加數(shù)據(jù)的正確度。
創(chuàng)新互聯(lián)基于分布式IDC數(shù)據(jù)中心構(gòu)建的平臺(tái)為眾多戶提供雅安電信機(jī)房 四川大帶寬租用 成都機(jī)柜租用 成都服務(wù)器租用。
2、所以,外鍵只是輔助,并不能起到你說(shuō)的【B.NAME是否也自動(dòng)出現(xiàn)張三兩個(gè)字】。
3、外鍵的作用是能夠避免如下情況。
如
【班級(jí)信息表】存放的是班級(jí)信息表。
【學(xué)生表】存放的是學(xué)生信息,包含班級(jí)信息。
這個(gè)時(shí)候 在【學(xué)生表】中存放的班級(jí)信息應(yīng)該在【班級(jí)信息表】存在才合法,自己人為控制的話難免有漏掉的情況,用外鍵則可以讓數(shù)據(jù)庫(kù)自動(dòng)控制,當(dāng)插入【學(xué)生表】中的數(shù)據(jù)在【班級(jí)信息表】不存在的時(shí)候,數(shù)據(jù)庫(kù)不允許插入。
---
以上,希望對(duì)你有所幫助。
3
stuid
number(10)
references
t_stu(stuid)
就是這個(gè)字段關(guān)聯(lián)t_stu表的stuid字段;
4
couseid
number(10),
5
constraint
fk_couseid
foreign
key(couseid)
6
references
t_couse(couseid)
7
on
delete
cascade);
這個(gè)是外鍵關(guān)聯(lián),并做同步刪除操作,就是如果t_couse表中的某個(gè)couseid數(shù)據(jù)被刪除了,那么這張表相關(guān)的數(shù)據(jù)也會(huì)自動(dòng)被刪除;跟上面的區(qū)別就在于有沒(méi)有做刪除操作;
on
delete
cascade
就是同步刪除的意思,比如t_couse表中有個(gè)couseid=5,t_score表中也有couseid=5的數(shù)據(jù),當(dāng)刪除t_couse表中couseid=5的數(shù)據(jù)時(shí),t_score表中所有couseid=5的數(shù)據(jù)也會(huì)自動(dòng)刪除;
可以寫在同一行,但是要用逗號(hào)分格開(kāi);
望采納,碼字不容易
以oracle自帶的用戶scott為例。
create?table?dept(
deptno?number(2)?primary?key,?--deptno?為?dept表的主鍵
dname?varchar2(10),
loc?varchar2(9)
);
create?table?emp(
empno?number(4)?primary?key,?--empno?為?emp表的主鍵
ename?varchar2(10),
job?varchar2(9),
mgr?number(4),
hiredate?date,
sal?number(7,2),
comm?number(7,2),
deptno?number(2)?references?dept(deptno)?--dept表中deptno字段?為?emp表的外鍵
);
SQL?drop?table?Stu;
drop?table?Stu
*
ERROR?位于第?1?行:
ORA-00942:?表或視圖不存在
SQL?create?table?Stu(
2??sno?varchar2(10)?primary?key,
3??sname?varchar2(10)?not?null,
4??sex?varchar2(5)?check(sex='男'or?sex='女'),
5??class?varchar2(10),
6??spasswd?varchar2(10)
7??);
表已創(chuàng)建。
SQL?drop?table?Cou;
drop?table?Cou
*
ERROR?位于第?1?行:
ORA-00942:?表或視圖不存在
SQL?create?table?Cou(
2??cno?varchar2(10)?primary?key,
3??cname?varchar2(30)?not?null,
4??kcxz?varchar2(20),
5??lesson_hours?number(4),
6??test_hours?number(4),
7??credit?number(3)
8??);
表已創(chuàng)建。
SQL?drop?table?SC;
drop?table?SC
*
ERROR?位于第?1?行:
ORA-00942:?表或視圖不存在
SQL?create?table?SC(
2??sno?varchar2(10),
3??cno?varchar2(10),
4??grade?number(3),
5??primary?key(sno,cno)
6??);
表已創(chuàng)建。
SQL?
SQL?
SQL?ALTER?TABLE?SC?ADD?CONSTRAINT?fk_SC_Stu??FOREIGN?KEY?(sno)??REFERENCES??Stu;
表已更改。
SQL?
SQL?ALTER?TABLE?SC?ADD?CONSTRAINT?fk_SC_Cou??FOREIGN?KEY?(cno)??REFERENCES??Cou;
表已更改。
SQL
create TABLE zhao(\x0d\x0a id number primary key,\x0d\x0a mingcheng nvarchar2(50),\x0d\x0a neirong nvarchar2(50),\x0d\x0a jiezhiriqi date,\x0d\x0a zhuangtai nvarchar2(50)\x0d\x0a);\x0d\x0acreate TABLE tou(\x0d\x0a id number primary key,\x0d\x0a zhao_id number,\x0d\x0a toubiaoqiye nvarchar2(50),\x0d\x0a biaoshuneirong nvarchar2(50),\x0d\x0a toubiaoriqi date,\x0d\x0a baojia number,\x0d\x0a zhuangtai nvarchar2(50),\x0d\x0a foreign KEY(zhao_id) REFERENCES zhao(id)\x0d\x0a);\x0d\x0aforeign key (zhao_id) references to zhao(id)\x0d\x0a多了個(gè)to
主鍵:ALTER TABLE A ADD CONSTRAINT PK_XXX PRIMARY KEY (XXX)
外鍵;ALTER TABLE B ADD CONSTRAINT FK_YYY FOREIGN KEY(YYY) REFERENCES A(XXX)
B表的YYY字段 引用A表的XXX字段值域?yàn)樽陨碇涤?/p>
主鍵約束,外鍵約束就是這樣建立的
刪除約束: ALTER TABLE A DROP CONSTRAINT 約束名
網(wǎng)頁(yè)名稱:oracle外鍵如何設(shè)置 oracle怎么添加外鍵
轉(zhuǎn)載注明:http://www.rwnh.cn/article24/higdce.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、ChatGPT、網(wǎng)站制作、網(wǎng)站營(yíng)銷、小程序開(kāi)發(fā)、外貿(mào)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)