给你个例子,看完就明白主键、外键了
CREATE TABLE PersonalInfo 
(
PersonCode  NUMBER(10) UNIQUE,  -- 个人代号
IDcard  VARCHAR2(18) NOT NULL,  -- 身份证号码
Name  VARCHAR2(16),  -- 姓名
Sex  VARCHAR2(4),  -- 性别
Birthday  DATE,  -- 出生日期
AssuranceID  VARCHAR2(19),  -- 医保号
UnitCode  NUMBER(10),  -- 所属单位代号(外键UnitInfo.UnitCode)
UnitName  VARCHAR2(40),  -- 所属单位名称

CONSTRAINT pi_pk PRIMARY KEY (PersonCode,IDcard),
CONSTRAINT uc_fk FOREIGN KEY (UnitCode) REFERENCES UnitInfo(UnitCode),
CONSTRAINT ai_fk FOREIGN KEY (AssuranceID) REFERENCES PersonalAccount(AssuranceID)
)

解决方案 »

  1.   

    1、定义了外键为了一致性约束。定义了外键后,从表的那个字段要么为空,要么就为主表对应字段的值。2、忘了3、表记录数很大,而这个表经常用来查询,很少会修改时,就对关键字段进行索引,查询时系统自动先从索引找到关键字段,取出对应的rownum,直接用rownum访问表中记录。rownum可以认为是存放记录的物理地址。清楚吗?