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