一:简介
1、主键:唯一标识一条记录,不能有重复的,不允许为空;用来保证数据完整性;主键只能有一个。
2、外键:表的外键是另一表的主键, 外键可以有重复的, 可以是空值;用来和其他表建立联系用的;一个表可以有多个外键。
3、索引:该字段没有重复值,但可以有一个空值;是提高查询排序的速度;一个表可以有多个唯一索引。
二:创建主外键
1、表中创建主外键:
create table T_SCORE (
EXAM_SCORE number(5,2),
EXAM_DATE date,
AUTOID number(10) not null,
STU_ID char(5),
SUB_ID char(3),
constraint PK_T_SCORE primary key (AUTOID),
constraint FK_T_SCORE_REFE foreign key (STU_ID) references T_STU (STU_ID)
)
2、表外增添主外键:
-增加主键
alter table 表名 add constraint 主键名 primary key (字段名1);
-增加外键:
alter table 表名 add constraint 外键名 foreign key (字段名1) references 关联表 (字段名2);
三:主外键关联查询
user_constraints 是表约束的视图。
user_cons_columns 是表约束字段的视图
(一般通过owner,constraint_name,table_name进行关联)
select a.owner 主键拥有者,
a.table_name 主键表,
c.column_name 主键列,
a.constraint_name 主键名称,
b.owner 外键拥有者,
b.table_name 外键表,
d.column_name 外键列,
b.constraint_name 外键名称
from user_constraints a,
user_constraints b,
user_cons_columns c,
user_cons_columns d
where a.constraint_type = 'P'
and b.constraint_type = 'R'
and a.constraint_name = c.constraint_name
and b.constraint_name = d.constraint_name
and a.owner = c.owner
and b.owner = d.owner
and a.table_name = c.table_name
and b.table_name = d.table_name;
底线