oracle数据的完整性

(1)not null:只能在列内定义,其他4种约束可以在列定义结束后在表内定义。

  create table MZ_SF(id number(14) not null,jyqq number(5) default 0);

(2)unique:不重复,但是可以为空。

  create table MZ_SF1(id number(14) not null,djh varchar2(50) notnull,unique(id,djh));

   或者

  create table MZ_SF1(id number(14) not null,djh varchar2(50) not null);

  alter table MZ_SF1 add unique(id,djh);

(3)check:可以根据用户要求进行自动检索。

  create table MZ_SF2(id number(14) not null check (id<100 anddjh>100));

   或者

  create table MZ_SF2(id number(14) not null);

  alter table MZ_SF2 add check (id<100 and djh>100);

(4)primary key:主键不可以重复,也不能为空。而且oracle会自动为主键列创建索引。一个表只能有一个primary key,可以有多个unique。

5种方式:

 1)oracle起的主键名称:

  create table MZ_SF3(id number(14) primary key);

   或者

  create table MZ_SF3(id number(14) not null);

  alter table MZ_SF3 add primary key (id);

 2)自己起的主键名称:

  create table MZ_SF4(id number(14) constraint pk_id1 primary key);

   或者

  create table MZ_SF4(id number(14) not null);

  alter table MZ_SF4 add constraint pk_id1 primary key (id);

 3)oracle起的主键名称:

  create table MZ_SF5(id number(14),primary key(id));

   或者

  create table MZ_SF5(id number(14) not null);

  alter table MZ_SF5 add primary key (id);

 4)自己起的主键名称:

  create table MZ_SF6(id number(14),constraint pk_id2 primary key(id));

   或者

  create table MZ_SF6(id number(14) not null);

  alter table MZ_SF6 add constraint pk_id2 primary key (id)

 5)后来加上主键:

  oracle起的主键名称:

  create table MZ_SF8(id number(14) not null);

  alter table MZ_SF8 add primary key(id);

   自己起的主键名称:

  create table MZ_SF8(id number(14));

  alter table MZ_SF8 add constraint pk_id primary key(id);

(5)foreign key:外键实现两个表之间参照或被参照的关系,外键只能取主键已经有的值。

  create table mz_sfzb1(sno char(8),constraint pk_sfzb1 primary key(sno));

  create table mz_sfzb2 (sid char(4),constraint pk_sfzb2 primarykey(sid));

  alter table mz_sfzb1 add constraints fk_sfzb2 foreign key(sid);

(6)default语句:

create table MZ_SF7(id number(14) default12);

或者

Create table MZ_SF7(id number(14));

Alter table MZ_SF7 alter column id setdefault 12; 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值