orcal - 约束

数据库约束
1、非空约束
DROP TABLE member PURGE;
CREATE TABLE member(
    mid number ,
    name varchar2(20) not null,
    email varchar2(30) ,
    constraint pk_mid PRIMARY KEY(mid)
);
insert into member(mid,name,email)values(10,'李四','111')
2、唯一约束 null不受null约束 设置别名
UNIQUE,NK
查看约束
user_constraints;
CREATE TABLE member(
    mid number,
    name varchar2(20) not null,
    email varchar2(30) ,
    constraint uk_email UNIQUE(email)
);
3、主键约束
=唯一约束+非空约束
DROP TABLE member PURGE;
CREATE TABLE member(
    mid number ,
    name varchar2(20) not null,
    email varchar2(30) ,
    constraint pk_mid PRIMARY KEY(mid)
);
一般正常情况,一张只有一个主键
但也有符合主键
复合主键
DROP TABLE member PURGE;
CREATE TABLE member(
    mid number ,
    name varchar2(20) not null,
    email varchar2(30) ,
    constraint pk_mid_name PRIMARY KEY(mid,name)
);
4、检查约束(check,ck)
DROP TABLE member PURGE;
CREATE TABLE member(
    mid number ,
    name varchar2(20) not null,
    email varchar2(30) ,
    age number(3)
    constraint ck_age CHeck(age between 0 and 250)
);


insert into member(mid,name,email,age)values(10,'李四','111',330);
5、外键
DROP TABLE member PURGE;
CREATE TABLE member(
    mid number ,
    name varchar2(20) not null,
    constraint pk_mid PRIMARY KEY(mid)
);
DROP TABLE book PURGE;
CREATE TABLE book(
    bid number ,
    title varchar2(20),
    mid number,
    constraint pk_bid PRIMARY KEY(bid),
    constraint fk_mid FOREIGN KEY(mid) REFERENCES member(mid) ON DELETE CASCADE
);
 
insert into  member(mid,name)values(10,'zs');
insert into  member(mid,name)values(20,'lisi');
insert into  member(mid,name)values(30,'wangwu');
insert into  book(bid,title,mid)values(1,'java',10);
insert into  book(bid,title,mid)values(2,'java1',20);
insert into  book(bid,title,mid)values(3,'java2',30);
insert into  book(bid,title,mid)values(44,'java2',40);
限制一:删除父表需要先删除子表
强制删除:不关注子表是否存在,父表直接删除
DROP TABLE member CASCADE CONSTRAINT;
限制二:外键在父类中必须为主键或唯一约束
限制三:默认情况下父类中在子类中有被使用的数据,不能被直接删除
数据级联删除
DROP TABLE book PURGE;
CREATE TABLE book(
    bid number ,
    title varchar2(20),
    mid number,
    constraint pk_bid PRIMARY KEY(bid),
    constraint fk_mid FOREIGN KEY(mid) REFERENCES member(mid) ON DELETE CASCADE
);
级联跟新
DROP TABLE book PURGE;
CREATE TABLE book(
    bid number ,
    title varchar2(20),
    mid number,
    constraint pk_bid PRIMARY KEY(bid),
    constraint fk_mid FOREIGN KEY(mid) REFERENCES member(mid) ON DELETE SET null
);

约束修改
DROP TABLE member PURGE;
CREATE TABLE member(
    mid number ,
    name varchar2(20)
);

insert into member(mid,name) values(1,'张三');

1/添加约束
ALTER TABLE 表名称 ADD CONSTRAINT 约束名称 约束类型(字段)[其他选项]
ALTER TABLE member ADD CONSTRAINT pk_mid PRIMARY KEY(mid); 
增加非空
ALTER TABLE member MODIFY(name varchar2(20) NOT null);
删除约束
ALTER TABLE member DROP CONSTRAINT pk_mid;

猜你喜欢

转载自www.cnblogs.com/jinyu-helloword/p/10765419.html