没有合适的资源?快使用搜索试试~ 我知道了~
学习Oracle 约束总结
资源推荐
资源详情
资源评论
约束用于确保数据库满足特定的商业逻辑或者企业规划
--------------------------------------------------------
约束包括: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)
);
--------------------------------------------------------
约束包括: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)
);
--------------------------------------------
当定义了外键约束之后,要求外部键列的数据必须是主表的主键列<或唯一列>中存在,或者为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)
);
--------------------------------------------
剩余5页未读,继续阅读
资源评论
tiegenZ
- 粉丝: 160
- 资源: 51
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功