Chinaunix首页 | 论坛 | 博客
  • 博客访问: 240443
  • 博文数量: 49
  • 博客积分: 2500
  • 博客等级: 少校
  • 技术积分: 530
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-06 08:57
文章分类

全部博文(49)

文章存档

2009年(5)

2008年(44)

我的朋友

分类: WINDOWS

2008-08-09 11:39:49

1,CONSTRAINT types 约束类型
(1)NOT NULL ==>实现列完整性
(2)UNIQUE   ==>唯一约束条件,实现行的实体完整性
(3)PRIMARY KEY ==>唯一约束条件,实现行的实体完整性
(4)FOREIGN KEY ==>实现参照完整性
(5)CHECK ==>实现列完整性
2,实体完整性:行的唯一约束条件
SQL> desc test2;
 名称                                      是否为空? 类型
 ----------------------------------------- -------- ----------------------------
 ID                                                 NUMBER(38)
 NAME                                               VARCHAR2(20)
 FNAME                                              VARCHAR2(20)
 
SQL> alter table test2
  2  add constraint uk_test2_1 unique(name,fname);
表已更改。
 
SQL> insert into test2 values (3,'kong','sales');
已创建 1 行。
 
SQL> insert into test2 values(4,'kong','sales');
insert into test2 values(4,'kong','sales')
*
第 1 行出现错误:
ORA-00001: 违反唯一约束条件 (WKADMIN.UK_TEST2_1)
3,主键与外键:参照完整性;
SQL> run
  1  create table test3
  2  (id int,
  3  lname varchar(20),
  4  fname varchar(20),
  5* constraint pk_test3 primary key(id))
表已创建。
 
SQL> run
  1  create table test4
  2  (rid int,
  3  name varchar(20),
  4* constraint fk_test4 foreign key(rid) references test3(id))
表已创建。
 
4,check使用:实现列完整性;
如:约束字段name值必须以k开头;
SQL> alter table test4
  2  add constraint ck_test4_1 check(name like 'k%');
表已更改。
SQL> insert into test4
  2  values(1,'hong');
insert into test4
*
第 1 行出现错误:
ORA-02290: 违反检查约束条件 (WKADMIN.CK_TEST4_1)
 
5,删除主键;
SQL> alter table test3
  2  drop constraint pk_test3 cascade;
表已更改。
6,删除check约束条件;
SQL> alter table test4
  2  drop constraint ck_test4_1;
表已更改。
 
6,禁用主键约束条件:DISABLE CONSTRAINT pk_test3 CASCADE;
或解除禁用的主键约束条件:ENABLE CONSTRAINT pk_test3;
SQL> alter table test3
  2  disable constraint pk_test3;
表已更改。
SQL> run
  1  alter table test3
  2* enable constraint pk_test3
表已更改。
 
7,查询约束条件;
SQL> select constraint_name,constraint_type,
  2  search_condition
  3  from user_constraints
  4   where table_name='test3';
SQL> select constraint_name,constraint_type,
  2  search_condition
  3  from user_constraints


 
阅读(958) | 评论(0) | 转发(0) |
0

上一篇:oracle 修改表结构

下一篇:oracle 创建视图

给主人留下些什么吧!~~