一:简介
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;