oracle 的约束,Oracle约束

什么是约束?

约束是Oracle提供的自动保持数据库完整性的一种方法,它通过限制字段中数据、记录中数据和表之间的数据来保证数据库的完整性。

constraint constraint_name (字段)

约束:

primary key constraint——主键约束:表级约束,值不能为NULL,不能重复,一个表只能有一个

如设定主键约束:constraint id_pk primary key(sid)

修改表添加主键约束:alter table student add constraint id_pk primary key(sid);

unique constraint——唯一性约束:指定一个或多个列的组合值具有唯一性

例如:

create table student(

sid number(8,0),

name varchar2(20),

sex char(2) constraint nn_sex,

birthday date,

address varchar2(50),

email varchar2(50) unique,

cardid varchar2(18),

constraint cardid_pk unique(cardid)//指定约束的名称

);

修改表时添加唯一性约束:alter table student add constraint cardid_pk unique(cardid);

禁用唯一性约束:alter table student disable constraint cardid_pk;

删除唯一性约束:alter table student drop constraint cardid_pk;

default constraint——默认约束

not null constraint——非空约束:列级约束,确保列不能为NULL

例如:

create table student(

sid number(8,0),

name varchar2(20) not null,//推荐

sex char(2) constraint nn_sex not null,//指定约束的名称

birthday date,

address varchar2(50),

constraint sid_pk primary key(sid)//指定约束的名称

);

修改表添加约束:alter table student add [constraint constraint_name] constraint_type (column);

添加非空约束:alter table student modify (name varchar2(20) not null);

check constraint——检查约束:限制输入值

创建表时设置检查约束:

create table student(

sid number(8,0),

name varchar2(20),

sex char(2) check(sex='男'or sex='女'),//列级添加约束,两者选其一

birthday date,

address varchar2(50),

constraint ck_sex check(sex='男' or sex='女')//表级添加约束,两者选其一

);

修改表是添加检查约束:alter table student add constraint ck_sex check(sex='男' or sex='女');

禁用启用检查约束:alter table student disable/enable constraint ck_sex;

删除约束:alter table student drop constraint ck_sex;

foreign key constraint——外部键约束:是用于建立或者加强两个表数据之间的链接的一列或多列,通常是先创建的表是主表,后是从表。

例如:

//主表

create table department(

depid varchar2(10) primary key,

depname varchar2(30)

);

//从表

create table student(

sid number(8,0);

name varchar2(20);

sex char(2)

birthday date,

address varchar2(50),

depid varchar2(10) references department(depid)

)

//或

create table student(

sid number(8,0);

name varchar2(20);

sex char(2)

birthday date,

address varchar2(50),

depid varchar2(10) ,

constraint fk_depid foreign key(depid) references department(depid) on delete cascade//级联删除

)

修改表时添加外接约束:alter table student add constraint fk_depid foreign key(depid) references department(depid) on delete cascade;

删除约束:

1、禁用或开启:alter table student disable|enable constraint constraint_name

2、永久删除:alter table student drop constraint constraint_name

3、删除主键约束的格式:alter table student drop primary key

4、另一只方面常用的删除非空约束:alter table table_name modify column_name datatype null;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值