数据库约束

1.  主键约束:主键表示是一个唯一的标识,本身不能为空。

2.  唯一约束:在一个表中只允许建立一个主键约束,而其他列如果不希望出现重复的话,则就可以使用唯一约束。

3.  检查约束:检查一个列的内容是否合法。

                         使用检查约束来判断一个列中插入的内容是否合法,例如:年龄的取值范围、性别的取值范围。

4.  非空约束:像性别这样的字段就不能为空。

5.  外键约束:在两张表中进行约束的操作。

例如:

create table person(
  pid varchar2(10) not null,
  name varchar2(20) unique not null,
  age number(3) not null check(age between 0 and 100),
  birthday date not null,
  sex varchar2(2) default '男',
  address varchar2(255),
  constraint person_pid_pk primary key(pid),
  constraint person_name_uk unique(address),
  constraint person_sex_ck check(sex in('男','女'))
);

create table book(
  bid number primary key not null,
  bname varchar(30),
  bprice number(5,2),
  pid varchar2(10),
  constraint person_book_pid_fk foreign key(pid) references person(pid)
);

注意:

        关联表删除时,先删除子表,后删除主表,因为子表中有对主表的外键引用,所以先删除子表或子表数据

为了保持数据操作的一致性以及删除的级联操作,我们在创建表的时候需要修改约束,如下:

constraint person_book_pid_fk foreign key(pid) references person(pid) on delete cascade

 

6. 修改约束:alter  table  表名  add  constraint  约束名  约束类型(约束字段)

alter  table  person  add  constraint  person_pk  primary  key(pid)

alter  table  person  add  constraint  person_name_uk  unique(pid)

alter  table  person  add  constraint  person_age_ck  check(age  between  0  and  150)

 

7. 删除表时同时删除约束

drop  table  表名 cascade  constraint

8. 删除约束

    alter  table  表名称  drop  constraint  约束名

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值