Oracle一个字段的的外键可以当另一个字段的主键吗
发布网友
发布时间:2022-05-02 18:30
我来回答
共4个回答
热心网友
时间:2022-06-21 05:59
可以的,写段代码给你看
--创建主表userinfos,userid是这个表的主键
create table userinfos(userid int primary key not null, username varchar(20) not null);
--创建表scores,scid是这个scores表的主键
create table scores(scid int primary key not null, useridsc int not null,score int not null);
--建立主外键约束,使得成绩表里的useridsc这个列存放的学生编号,必须是userinfos表的userid列的值,也就是说,不允许还没有这个学生,就有了这个学生的成绩
alter table scores add constraint FK_scores_userinfos foreign key (useridsc) references userinfos(userid);
希望你能看懂
热心网友
时间:2022-06-21 06:00
可以的。一个字段可以为其他表中字段的外键,当然可以为本身表的主键。比如商品编号可以为主键,也可以同时为外键
热心网友
时间:2022-06-21 06:00
“主键”是指在数据库的表中能唯一标识一条记录的最小的字段集合。
外键(Foreign Key) 如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。
给你一个实例
create table S(
Sno char(9) not null,
Sname char(10) not null,
Ssex char(4) not null,
Sage int not null,
Sdept char(10) not null,
primary key(Sno)
);
Insert into S(Sno,Sname,Ssex,Sage,Sdept) values('200215121','李勇','男',20,'计算机');
Insert into S(Sno,Sname,Ssex,Sage,Sdept) values('200215234','刘晨','女',18,'通信');
Insert into S(Sno,Sname,Ssex,Sage,Sdept) values('200215324','王敏','女',19,'经管');
Insert into S(Sno,Sname,Ssex,Sage,Sdept) values('200215401','张力','男',20,'物理');
Insert into S(Sno,Sname,Ssex,Sage,Sdept) values('200215402','王华','男',18,'物理');
Insert into S(Sno,Sname,Ssex,Sage,Sdept) values('200215411','赵王','男',18,'环资');
Insert into S(Sno,Sname,Ssex,Sage,Sdept) values('200215431','肖颖','女',20,'旅管');
Insert into S(Sno,Sname,Ssex,Sage,Sdept) values('200215432','张虎','男',19,'旅管');
create table C(
Cno char(4) not null,
Cname char(15) not null,
Cpno int,
Ccredit int not null,
primary key(Cno)
);
Insert into C(Cno,Cname,Cpno,Ccredit) values('1001','数据库',5,4);
Insert into C(Cno,Cname,Cpno,Ccredit) values('1002','数学',4,2);
Insert into C(Cno,Cname,Cpno,Ccredit) values('1003','会计学',1,4);
Insert into C(Cno,Cname,Cpno,Ccredit) values('1004','信息系统',2,4);
create table SC(
Sno char(9) not null,
Cno char(4) not null,
grade int,
primary key(Sno,Cno),
foreign key(Sno) references S(Sno),
foreign key(Cno) references C(Cno),
check (grade between 0 and 100 or grade is not null)
);
Insert into SC(Sno,Cno,grade) values('200215121','1001',89);
Insert into SC(Sno,Cno,grade) values('200215121','1002',76);
Insert into SC(Sno,Cno,grade) values('200215121','1003',88);
Insert into SC(Sno,Cno,grade) values('200215234','1004',89);
热心网友
时间:2022-06-21 06:01
肯定能的啊!
这个就是外键的定义啊!
oracle 问题,请教高手了……
1、作为外键的字段在主表中一定是主键或者是具有唯一约束(Unique)的字段;2、作为外键的字段与主表中所参照的字段是同一类属性(字段名字可以不同)。从这两个规则可知,在问题中提到的字段name即使不是主键,只要它是被约束为唯一(Unique)就可以做外键的参照字段。
oracle中外键对表的修改、删除、插入会有怎么样的印象。 外键是从另...
1、外键的概念:外键是关系数据库三个完整性的五个约束条件之一,是表与表之间建立的一种关系。在Oracle数据库的scott/tiger用户中,表Dept和Emp通过外键进行了关联。在这里Dept表叫主表,Emp表叫从表,外键是字段Deptno。2、加入外键的条件:a、两个表有相同属性字段,取值范围相同;b、外键在主表中...
oracle中 主键和外键是什么意思?什么地方采用呢?
主键就是区别这个表的唯一关键字 比如一个学生表 学号不能重复且唯一 学号就是关键字 外键就是跟其他表联系的字段 还是比如有一张学生表 还有一张选课表 这个时候要修改学生表中的学号 选课表里对应的就也得变 这样就需要给选课表加学号作为外键约束 这样当你修改 学号时 所有外键关联的就都改了 ...
oracle中 主键和外键是什么意思?什么地方采用呢?
主键的意思是一个列或多列的组合,其值能唯一地标识表中的每一行,可强制表的实体完整性。主键主要是用与其他表的外键关联,以及本记录的修改与删除。外键的意思是表示了两个关系之间的相关联系。作用是以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。
Oracle数据库中的主键,外键,约束我总是不理解!或者说知道个大概意思,可 ...
Oracle数据库中的主键:表示一张表中记录的唯一性,不能有重复。外键:一个属性的值是另外一个表中的属性,大多数也是另外一个标主键。约束:对某一个属性的取值的约束,例如年龄大于0小于100。
oracle的外键怎么使用?
1、外键是属于约束的一种,所谓约束顾名思义,就是限制你在数据库的操作。而你对数据库有什么操作,无非是增、删、改、查,外键起的作用就是让你在数据库帮助的情况下更合理的增加数据的正确度。2、所以,外键只是辅助,并不能起到你说的【B.NAME是否也自动出现张三两个字】。3、外键的作用是...
oracle 表一的A、B两个字段是联合主键,表二使用表一的A字段作为外键...
不可以。从定义看,外键至少需要父表上A列/A字段是唯一的(UNIQUE约束),如果A、B字段作为联合主键,则不能保证A字段唯一性约束。有矛盾,所以不可以。
oracle 主键、外键和主键约束、唯一约束如何理解,谢谢!
主键是唯一证明,在茫茫人海中,怎么区分你和别人呢。通过身份证(当然也有别的,指纹之类的)。每个身份证号都是唯一的。不可能有两个人有同一个身份证号(理论上)。外键相当于引用别人的主键。比如说你买房子,有房产证。那个房产证上要有你的身份证号。这里,你的身份证号就成了外键 唯一性约束...
关于外键的几个问题?
2)主键:当有多个候选码时,可以选定一个作为主码,选定的候选码称主键 3)外键: 关系R中的一个属性组,它不是R的候选码,但它与另一个关系S的候选码相对应,则称这个属性组为R的外码或外键。问题四:什么是主键和外键 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是...
oracle 单表查询受外键影响吗?
在Oracle数据库中,外键是强制实施参照完整性的一种方式,我们约定主键表为主表,外键表为从表,使用外键就意味着一个表中的值在另一个表中也必须出现,指挥在修改时受到影响,在查询时是不受影响的。或者在查询时也可以禁用外键,语法参考: