oracle学习笔记二

约束是在表上强制执行的数据校验规则.
当表中数据有相互依赖性时,可以保护相关的数据不被删除.
Oracle 支持下面五类完整性约束:
1、NOT NULL 非空
CREATE TABLE employees(
employee_id NUMBER(6),
last_name VARCHAR2(25) NOT NULL,
salary NUMBER(8,2),
commission_pct NUMBER(2,2),
hire_date DATE CONSTRAINT emp_hire_date_nn NOT NULL
)
//查看用户的约束
select * from user_constraints;
//查看表的约束
select * from user_constraints where table_name='EMPLOYEES”




2、UNIQUE Key 唯一键
唯一性约束条件确保所在的字段或者字段组合不出现重复值
唯一性约束条件的字段允许出现(1或多个)空值
Oracle将为唯一性约束条件创建对应的唯一性索引
CREATE TABLE employees(
employee_id NUMBER(6) UNIQUE,
last_name VARCHAR2(25) NOT NULL,
email VARCHAR2(25),
salary NUMBER(8,2),
commission_pct NUMBER(2,2),
hire_date DATE NOT NULL,
...
CONSTRAINT emp_email_uk UNIQUE(email));


3、PRIMARY KEY 主键
主键从功能上看相当于非空且唯一
一个表中只允许一个主键
主键是表中能够唯一确定一个行数据的字段
主键字段可以是单字段或者是多字段的组合
Oracle为主键创建对应的唯一性索引


CONSTRAINT dept_id_pk PRIMARY KEY(department_id)
表级
alter table 表名
add CONSTRAINT dept_id_pk PRIMARY KEY(department_id);




4、FOREIGN KEY 外键
外键是构建于一个表的两个字段或者两个表的两个字段之间的关系
外键确保了相关的两个字段的关系:
*子表外键列的值必须在主表参照列值的范围内,或者为空
主表主键值被子表参照时,主表记录不允许被删除
外键约束条件参照的是主表的一个或者多个字段的值,通常被外键参照的 是主表的主键或者唯一键


CONSTRAINT 键名 FOREIGN KEY (字段名)
REFERENCES 主表名(字段名)

表级
alert table 表名
CONSTRAINT 键名 FOREIGN KEY (字段名)
REFERENCES 主表名(字段名)


5、CHECK 检察


CONSTRAINT 检察名
CHECK (salary > 0),...








可增加或删除约束,但不能直接修改
ALTER TABLE table
ADD [CONSTRAINT constraint] type (column);


ALTER TABLE employees
ADD CONSTRAINT emp_manager_fk
FOREIGN KEY(manager_id)
REFERENCES employees(employee_id);


删除约束emp_manager_fk
ALTER TABLE employees
DROP CONSTRAINT emp_manager_fk;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值