SQL基础03---约束

1 约束条件 constraint

1.1 主键(Primary key,简称 PK)


 1) 主键约束(primary key) = 不能重复 (uk)+ 不能为null(nn)
 2) 主键约束可以用两种方式定义:列级约束和表级约束

 

注意:建议约束命名规则: 表名_列名_约束条件类型
因为当插入重复编码时,将提示出错的约束条件名称

1.1.1 列级约束
例子:主键约束
create table dept_xxx1(
 deptno number(2) dept_xxx2_deptno_pk primary key,
 dname varchar2(20),
 location varchar2(40)
);


1.1.2 表级约束( 可以定义联合主键)
例子:主键约束
create table dept_xxx2(
 deptno number(2),
 dname varchar2(20),
 location varchar2(40),
 constraint dept_xxx2_deptno_pk primary key(deptno)
);

例子:联合主键
create table test(
c1 number(4),
c2 number(2),
 constraint test_c1_c2_pk primary key(c1,c2)
);

 

1.2 非空约束(not null,简称NN)
注意:非空约束只能定义在列级
例子:
create table test(
 id number(4) not null
);

例子:给非空约束命名
create table test(
 id number(4) constraint test_in_nn not null;
);


1.3唯一约束(Unique,简称UK)
unique特点:
唯一,可以为空,一张表可以多个UK约束
1.3.1 列级约束
create table test(
 id number(4) unique;
);
1.3.2 表级约束
create table test(
 id number(4),
 constraint test_id_uk unique(id)
);

1.4检查约束(Check,简称CK)
检查约束
check(条件)

例子:
create table text(
 age number(2) check(age>10),
 gender char(1) check(gander in('F','M'))
);


因为约束条件建立在列级时可读性不好,而且不方便定义约束条件名字,一般建议定义在表级.

例子:定义在表级
create table text(
 age number(2),
 gander char(c),
 constraint text_age_ck
  check(age > 10),
 constraint text_gander_ck
  check(gander in('F','M','f','m'))
);

1.5 外键(Foreign key,简称FK)


例子:
create table test(
  id number(3),
 constraint test_id_fk
  foreign key (id) references test2(id)
);
test2代表另一张表

1.6 on delete set null

作用:一旦主表数据删除,从表关联的数据设置为NULL


create table test(
  id number(3),
 constraint test_id_fk
  foreign key (id) references test2(id) on delete set null
);


1.7 on delete cascade

作用:一旦主表数据删除,从表关联的数据也删除
create table test(
  id number(3),
 constraint test_id_fk
  foreign key (id) references test2(id) on delete cascade
);

 

 

转载于:https://www.cnblogs.com/hqr9313/archive/2012/05/16/2502692.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值