码=键:
主码:唯一性与非空性,人为的从候选码中选出。
候选码:一个关系中的属性或属性列能够唯一的标识出一个元组,且他的真子集不能唯一的标识一个元组,则称这个属性或属性组做候选码。
主属性 包含在任一候选码中的属性称主属性。简单来说,主属性是候选码所有属性的并集
非主属性 不包含在候选码中的属性称为非主属性。 非主属性是相对于主属性来定义的。
主码等于主键
外码=外键:子数据表中出现父数据表的主键,称为子数据表的外键。
PRIMARY KEY 与 UNIQUE:
主键约束非空且唯一;
唯一性约束唯一但是允许一个空值;
【外键的作用:(抽象空洞的解释)保证数据的完整性和一致性】外键只能引用外表中的列的值或使用空值。阻止执行:
1、从表插入新行,其外键值不是主表的主键值便阻止插入;
2、从表修改外键值,新值不是主表的主键值便阻止修改;
3、主表删除行,其主键值在从表里存在便阻止删除(要想删除,必须先删除从表的相关行);
4、主表修改主键值,旧值在从表里存在便阻止修改(要想修改,必须先删除从表的相关行)。
级联执行:
1、主表删除行,连带从表的相关行一起删除;
2、主表修改主键值,连带从表相关行的外键值一起修改。
上代码:(sqlplus)
查找约束的方法如下:
( 1 ) 查找某表上的约束
select * from user_constraints where table_name= ‘MEDIA’;
(表名要大写)
(2)查找到约束所在的表
SELECT * FROM USER_CONSTRAINTS WHERE CONSTRAINT_NAME = ‘PK_MEDIA’ ;
可能需要DBA权限。
向基表中添加外键
alter table 表 add constraint 外键约束名称 foreign key (列) references 表 (主键列);