Oracle:主外鍵詳解


一:簡介

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;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM