您的位置:首页 > 数据库 > Oracle

ORACLE数据库五种约束增删改总结

2019-03-17 11:23 92 查看

 

非空约束:只能在列级设置,不能在表级设置;

Create table userinfo (id number not null);

创建表示设置非空约束;

alter table userinfo modify username varchar2(20) not null

在修改表时添加非空约束注意当表没有值时才可以设置;

alter table userinfo modify username varchar2(20) null;

在修改表时删除非空约束

主键约束:

Create table userinfo(id number primary key,username varchar2(20));

在创建表时设置主键约束;

Create table userinfo1(id number,username varchar2(20) constraint pk_id_username primary key(id,username));

设置为联合主键:

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

在修改表时添加主键约束;

alter table userinfo rename constraint pk_id to new_pk_id;

更改约束的名称;

alter table userinfo disable constraint new_pk_id;

禁用主键约束(以后可以启用);

alter table userinfo drop constraint new_pk_id

删除主键约束

select constraint_name from user_constraints where table_name=’username’; 

查看表中含有的所有约束名称

外键约束:

//方法一(创建表时加入外键约束)

create table typeinfo

(typeid varchar2(10) primary key,

typename varchar2(20));

create table userinfo_f

(id varchar2(10) primary key,

username varchar2(20),

typeid_new varchar2(10) references typeinfo(typeid));

注意数据类型必须一致,

 

 

//方法二

create table userinfo_f2

(id varchar2(10) primary key,

username varchar2(20),

typeid_new varchar2(10),

constraint fk_typeid_new foreign key(typeid_new)

references typeinfo(typeid));

加入级联删除

create table userinfo_f3

(id varchar2(10) primary key,

username varchar2(20),

typeid_new varchar2(10),

constraint fk_typeid_new foreign key(typeid_new)

references typeinfo(typeid) on delete cascade);

 

修改表加入外键约束

alter table userinfo_f4

add constraint fk_typeid_new foreign key(typeid_new)

references typeinfo(typeid) on delete cascade);

 

修改表使能外键约束

alter table userinfo_f4

disable/enable constraint fk_typeid_new;

 

修改表删除外键约束

alter table userinfo_f4

drop constraint fk_typeid_new;

 

唯一约束:保证字段值的唯一性

唯一约束和主键约束的区别:

  1. 主键字段值必须是非空的,唯一约束允许有一个空值;
  2. 主键只有一个,唯一约束可以有多个;

 

create table userinfo_u1

(id varchar2(10) primary key,

username varchar2(20) unique,

userpwd varchar2(20));

在创建表时(列级约束)设置唯一约束

create table userinfo_u2

(id varchar2(10) primary key,

username varchar2(20),

userpwd varchar2(20)),

constraint un_username unique(username));

在创建表时(表级约束)设置唯一约束

alter table userinfo_u3

add constraint un_username unique(username));

在修改表时设置唯一约束

alter table userinfo_u3

disable/enable constraint un_username;

修改表使能唯一约束

alter table userinfo_u3

drop constraint un_username;

在修改表时删除唯一约束

 

检查约束:表中的值更具有实际意义

create table userinfo_c1

(id varchar2(10) primary key,

username varchar2(20) unique,

salary number(5,0) check(salary>0));

在创建表时(列级约束)设置检查约束

create table userinfo_c2

(id varchar2(10) primary key,

username varchar2(20),

salary number(5,0),

constraint ck_salary check(salary>0));

在创建表时(表级约束)设置检查约束

alter table userinfo_c3

add constraint ck_salary unique(username));

在修改表时设置检查约束

alter table userinfo_c3

disable/enable constraint ck_salary;

修改表使能检查约束

alter table userinfo_c3

drop constraint ck_salary;

在修改表时删除检查约束

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: