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