Oracle 约束的定义
2017-03-13 10:29
375 查看
约束用于确保数据库满足特定的商业逻辑或者企业规划
-----------------------------------------------------------------------
约束包括:not null 、unique、primarykey、foreign key、check
not null约束 用于确保列不能为空(插入数据必须为该列提供数据 update操作不能将该列值设为null)
例:建立i_top表 并在top_r,name 列上定义not null约束 并且指定name列上的not null约束名为nn_name
create table i_top(i_es not null,
name varchar2(10) constraint nn_name not null,
i_dd number(6,2)
);
/*注如果指定约束名那么必须指定constraint选项,
如果不指定约束名那么Oracle会自动生成为sys_Cnnn的约束名*/
unique约束 用于唯一的标识列的数据(唯一列数的列值不能重复可以为空)
当定义唯一约束时,默认情况下Oracle会自动基于唯一约束列建立唯一索引,索引名与约束名完全一致
例:建立i_top表,并在name列上定义unique约束
create table i_top(
i_id int,name varchar2(10),i_ee number(6,2),
constraint u_name unique(name) --指定unique约束名为u_name
);
primary key 约束用于唯一地标识表行的数据(主键约束列不仅不能重复并且也不能为null)
例:建立i_top表中并在i_id列上定义primary key约束
create table i_top(
i_id int primary key,
name varcher2(10)
);
foreign key约束 用于定义主从表的关系 (外部键约束要定义在从表上,但主表必须具有主键约束或者唯一约束,
当定义了外键约束之后,要求外部键列的数据必须是主表的主键列<或唯一列>中存在,或者为null)
<定义外部键约束关键字:
foreign key:用于指定在表级定义外部键约束
references:用于指定主表名及其主键列
on delete cascade:用于指定级联删除选项
on delete set null:用于指定转换相关外部键值为null>
例:建立i_top表,并在表i_tops和i_top之间定义主从关系
create table i_top(
i_id int,
name varchar2(10),
edon int constraint fk_edon references i_tops(edon)
);
check 约束用于强制表行数据必须满足的条件
例:建立i_top表 并在top_s列上定义check约束
create table i_top(i_id int,name varcher2(10),i_top number(6,2),
check(i_top between 1000 and 5000)) --i_top列的值只能在1000到5000之间
---------------------------------------------------------------------------------------------------
定义复合约束:
例:建立ite表并在ite_id和ore_id列定义主键约束
create table ite(
ore_id number(3),
ite_id number(3),
name varcher2(20),
primary key(ore_id,ite_id)
);
--------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------
约束包括:not null 、unique、primarykey、foreign key、check
not null约束 用于确保列不能为空(插入数据必须为该列提供数据 update操作不能将该列值设为null)
例:建立i_top表 并在top_r,name 列上定义not null约束 并且指定name列上的not null约束名为nn_name
create table i_top(i_es not null,
name varchar2(10) constraint nn_name not null,
i_dd number(6,2)
);
/*注如果指定约束名那么必须指定constraint选项,
如果不指定约束名那么Oracle会自动生成为sys_Cnnn的约束名*/
unique约束 用于唯一的标识列的数据(唯一列数的列值不能重复可以为空)
当定义唯一约束时,默认情况下Oracle会自动基于唯一约束列建立唯一索引,索引名与约束名完全一致
例:建立i_top表,并在name列上定义unique约束
create table i_top(
i_id int,name varchar2(10),i_ee number(6,2),
constraint u_name unique(name) --指定unique约束名为u_name
);
primary key 约束用于唯一地标识表行的数据(主键约束列不仅不能重复并且也不能为null)
例:建立i_top表中并在i_id列上定义primary key约束
create table i_top(
i_id int primary key,
name varcher2(10)
);
foreign key约束 用于定义主从表的关系 (外部键约束要定义在从表上,但主表必须具有主键约束或者唯一约束,
当定义了外键约束之后,要求外部键列的数据必须是主表的主键列<或唯一列>中存在,或者为null)
<定义外部键约束关键字:
foreign key:用于指定在表级定义外部键约束
references:用于指定主表名及其主键列
on delete cascade:用于指定级联删除选项
on delete set null:用于指定转换相关外部键值为null>
例:建立i_top表,并在表i_tops和i_top之间定义主从关系
create table i_top(
i_id int,
name varchar2(10),
edon int constraint fk_edon references i_tops(edon)
);
check 约束用于强制表行数据必须满足的条件
例:建立i_top表 并在top_s列上定义check约束
create table i_top(i_id int,name varcher2(10),i_top number(6,2),
check(i_top between 1000 and 5000)) --i_top列的值只能在1000到5000之间
---------------------------------------------------------------------------------------------------
定义复合约束:
例:建立ite表并在ite_id和ore_id列定义主键约束
create table ite(
ore_id number(3),
ite_id number(3),
name varcher2(20),
primary key(ore_id,ite_id)
);
--------------------------------------------------------------------------------------------------
相关文章推荐
- oracle里的表级约束定义的优点
- Oracle定义约束 外键约束
- Oracle定义约束
- test oracle array的使用,通过type来自定义array
- Oracle数据库设计——定义约束 外键约束
- XML Schema学习教程(二)-元素属性的定义与约束
- 在Oracle数据字典中查看约束信息
- Oracle数据库设计——定义约束 Unique约束
- Oracle中的约束
- ORACLE的索引和约束详解
- 两个读取数据库VIew的定义的SQL语句的写法[Oracle /SQL SERVER]
- 在ORACLE中通过EXP/IMP查看表的结构和约束(重现表的创建)
- Oracle 命令大汇总-索引与约束管理
- oracle约束
- Oracle的定义语言和操纵语言
- Oracle 9i中表的在线重定义
- Oracle 中建表时数据库不检查外键约束的字段宽度是否一致
- Oracle数据库设计——定义约束 主键
- Oracle PL/SQL语言初级教程之完整性约束
- ORACLE 约束添加