oracle约束总结(not null/unique/primary key/foreign key/check)
来源:互联网 发布:龙虎榜持仓数据变化表 编辑:程序博客网 时间:2024/06/05 09:59
约束(constraint):对创建的表的列属性、字段进行的限制。诸如:not null/unique/primary key/foreign key/check
作用范围:
①列级约束只能作用在一个列上
②表级约束可以作用在多个列上(当然表级约束也可以作用在一个列上)
定义方式:列约束必须跟在列的定义后面,表约束不与列一起,而是单独定义。
— —NOT NULL:不为空约束,只能定义在列级
CREATE TABLE employees( employee_id NUMBER(6), --<span style="color:#FF0000;">系统命名</span> last_name VARCHAR2(25) <span style="color:#FF0000;">NOT NULL</span>, salary NUMBER(8,2), commission_pct NUMBER(2,2), --<span style="color:#FF0000;">用户自定义命名</span> hire_date DATE <span style="color:#FF0000;">CONSTRAINT emp_hire_date_nn NOT NULL</span>,可以在PL/SQLDEV的My objects-Tables-employees-Check constraints中查看该表的约束。
— —UNIQUE:唯一约束,可以定义在表级或列级
CREATE TABLE employees( employee_id NUMBER(6), --<span style="color:#FF0000;">列级,系统命名唯一约束</span> last_name VARCHAR2(25) <span style="color:#FF0000;">UNIQUE</span>, email VARCHAR2(25), salary NUMBER(8,2), commission_pct NUMBER(2,2), hire_date DATE NOT NULL,... --<span style="color:#FF0000;">表级,用户自定义命名唯一约束</span> CONSTRAINT <span style="color:#FF0000;">emp_email_uk</span> UNIQUE(email));
— —PRIMARY KEY :主键,可以定义在表级或列级
CREATE TABLE departments( department_id NUMBER(4), department_name VARCHAR2(30) CONSTRAINT dept_name_nn NOT NULL, manager_id NUMBER(6), location_id NUMBER(4), CONSTRAINT dept_id_pk <span style="color:#FF0000;">PRIMARY KEY</span>(department_id));
— —FOREIGN KEY: 外键,在表级指定子表中的列
— —REFERENCES: 标示在父表中的列
— —ON DELETE CASCADE(级联删除): 当父表中的列被删除时,子表中相对应的列也被删除
— —ON DELETE SET NULL(级联置空): 子表中相应的列置空
constraint emp1_dept_id_fk <span style="color:#FF0000;">foreign key</span>(dept_id) <span style="color:#FF0000;">references</span> departments(department_id) <span style="color:#FF0000;">ON DELETE CASCADE</span>
— —CHECK :定义每一行必须满足的条件
..., salaryNUMBER(2) CONSTRAINT emp_salary_min CHECK (salary > 0),...
1.1 表级约束 & 列级约束
create table emp1( employee_id number(8), salary number(8), --<span style="color:#FF0000;">列级约束</span> hire_date date not null, dept_id number(8), email varchar2(8) constraint emp1_email_uk unique, name varchar2(8) constaint emp1_name_uu not null, first_name varchar2(8), --<span style="color:#FF0000;">表级约束</span> constraint emp1_emp_id_pk primary key(employee_id), constraint emp1_fir_name_uk unique(first_name), --<span style="color:#FF0000;">外键约束</span> constraint emp1_dept_id_fk foreign key(dept_id) <span style="color:#FF0000;">references</span> departments(department_id) ON DELETE CASCADE )
1.2 只有not null 只能使用列级约束。其他的约束两种方式皆可
2.添加和删除表的约束--在创建表以后,只能添加和删除,不能修改
2.1添加
alter table emp1 add constaint emp1_sal_ck check(salary > 0)
2.1.1对于not null来讲,不用add,需要使用modify:
alter table emp1 modify (salary not null)
2.2 删除
alter table emp1 drop constaint emp1_sal_ck
2.3使某一个约束失效:此约束还存在于表中,只是不起作用
alter table emp1
disable constraint emp1_email_uk;
2.4使某一个约束激活:激活以后,此约束具有约束力
alter table emp1 enable constraint emp1_email_uk;
2 0
- oracle约束总结(not null/unique/primary key/foreign key/check)
- oracle中五中约束详解(CHECK,UNIQUE,PRIMARY KEY,FOREIGN KEY,NOT NULL)
- oracle的完整性约束:check/not null/unique/primary/foreign key
- oracle_约束条件(primary key、foreign key、unique、not null、check)
- 数据库六大约束用法:主键(primary key)、外键(foreign key)、非空(not null)、默认(default)、检查(check)、唯一(unique)
- SQLite 约束NOT NULL,DEFAULT,UNIQUE,PRIMARY KEY, CHECK
- SQL 约束 (Constraints):NOT NULL、UNIQUE、PRIMARY KEY、FOREIGN KEY、CHE
- SQL约束(主键约束 primary key、外键约束 foreign key、唯一约束unique 、CHECK约束)
- SQLite学习笔记六: 约束NOT NULL,DEFAULT,UNIQUE,PRIMARY KEY, CHECK
- oracle约束+disable与enable约束+为表添加约束+修改表约束的状态+primary key+not null+unique+foreign key+外键删除数据,可以使用的级联操作
- 第五章、数据库设计(三范式、主键约束 primary key、外键约束 foreign key、唯一约束unique 、CHECK约束)
- SQLServer中有五种约束,Primary Key约束、Foreign Key约束、Unique约束、Default约束和Check约束,今天使用SQL Server2008来演示下这几种约束的
- 笔记081112 ORACLE 常用系统函数 数字类型 时间类型 大文件数据类型 主键约束 NOT NULL UNIQUE CHECK FOREIGN KEY ON DELETE CASCADE ON DELETE SET NULL USER_C
- SQL PRIMARY KEY 约束、SQL FOREIGN KEY 约束
- UNIQUE 约束和 PRIMARY KEY 约束
- Oracle学习笔记(四)——Primary Key&Unique约束
- SQL primary key, foreign key
- 外键(Foreign Key)约束。
- 金山WPS、微软Office EXCEL表格通用C++接口
- Thread.sleep() 和 Thread.yield() 区别
- 静态代码扫描学习
- ios缓存机制详解
- 第九周项目六 百钱百鸡问题
- oracle约束总结(not null/unique/primary key/foreign key/check)
- 长春径点笔试C++常见概念题
- HDOJ题目1443Joseph(数学)
- Flex中TabNavigator隐藏和显示选项卡
- 线程锁
- Lucene 简介
- 顺序容器的使用
- ubuntu 下创建桌面快捷启动方式
- day64,page80