十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
1、外键是属于约束的一种,所谓约束顾名思义,就是限制你在数据库的操作。而你对数据库有什么操作,无非是增、删、改、查,外键起的作用就是让你在数据库帮助的情况下更合理的增加数据的正确度。
创新互联基于分布式IDC数据中心构建的平台为众多户提供雅安电信机房 四川大带宽租用 成都机柜租用 成都服务器租用。
2、所以,外键只是辅助,并不能起到你说的【B.NAME是否也自动出现张三两个字】。
3、外键的作用是能够避免如下情况。
如
【班级信息表】存放的是班级信息表。
【学生表】存放的是学生信息,包含班级信息。
这个时候 在【学生表】中存放的班级信息应该在【班级信息表】存在才合法,自己人为控制的话难免有漏掉的情况,用外键则可以让数据库自动控制,当插入【学生表】中的数据在【班级信息表】不存在的时候,数据库不允许插入。
---
以上,希望对你有所帮助。
3
stuid
number(10)
references
t_stu(stuid)
就是这个字段关联t_stu表的stuid字段;
4
couseid
number(10),
5
constraint
fk_couseid
foreign
key(couseid)
6
references
t_couse(couseid)
7
on
delete
cascade);
这个是外键关联,并做同步删除操作,就是如果t_couse表中的某个couseid数据被删除了,那么这张表相关的数据也会自动被删除;跟上面的区别就在于有没有做删除操作;
on
delete
cascade
就是同步删除的意思,比如t_couse表中有个couseid=5,t_score表中也有couseid=5的数据,当删除t_couse表中couseid=5的数据时,t_score表中所有couseid=5的数据也会自动删除;
可以写在同一行,但是要用逗号分格开;
望采纳,码字不容易
以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 );
表已创建。
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 );
表已创建。
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 );
表已创建。
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多了个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字段值域为自身值域
主键约束,外键约束就是这样建立的
删除约束: ALTER TABLE A DROP CONSTRAINT 约束名