数据库约束

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  约束名

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值