代码改变世界

Oracle 五种约束的创建和移除:

2020-12-25 16:42  jetwill  阅读(341)  评论(0编辑  收藏  举报
1.主键约束:
    创建表的时候就添加:
    create table table_name 
    (categoryId varchar2(10),
    categoryName varchar2(30),
    primary key(categoryId));
    创建表后追加:
    alter table table_name
    add constraints constraint_name primary key(column_name);
    移除主键约束:
    alter table table_name 
    drop constraint constraint_name;
2.外键约束:保证外键约束的数据库列与所引用的主键约束的数据列一致。
    创建表的时候就在建表语句后面添加:
    constraint constraint_name foreign key (colune_name)   
    reference table_name (column_name)
    on delete cascade;
    创建表后追加外键约束:
    add constraint constraint_name foreign key (column_name)
    reference table_name (column_name)
    on delete cascade;
    移除外键约束:
    alter table table_name 
    drop constraint constraint_name;
3.check约束:规定每一列能够输入的值,以保证数据的正确性。
    创建表的时候在建表语句后面添加检查约束:
    constraint  constraint_name CHECK(检查约束的条件);
    例:
    create table user
    (cumstonId varchar2(10),
    Name varchar2(30),
    age number(2),
    gender varchar2(2),
    constraint check_age check(age>=18 and age<=50));
    修改表的时候添加check约束:
    alter table table_name 
    add constraint constraint_name check(检查条件);
    例:
    alter table user 
    add constraint constraint_name check(gender='男' or gender='女');
    移除检查约束:
    alter table table_name 
    drop constraint constraint_name;
4.UNIQUE约束:设置在表中输入的字段值都是唯一的。
    在创建表的时候在建表语句后面添加唯一约束:
    constraint constraint_name unique(column_name);
    例:
    create table orderinfo(
    orderId varchar2(10),
    custonId varchar2(10),
    constraint unique_orderid unique(orderId));
    在修改表的时候添加UNIQUE约束:
    alter table table_name 
    add constraint constraint_name unique(column_name);
    移除unique约束:
    alter table table_name 
    drop constraint constraint_name;
5.NOT NULL 约束:非空约束,确保字段必须有输入值。
    在创建表的时候在需要的字段后面直接加一个 not null :
    create table table_name 
    (managerId varchar2(10),
    LoginName varchar2(10) not null,
    Password varchar2(10) not null,
    Name varchar2(10));
    在修改表的时候设置NOT NULL 约束:
    alter table table_name 
    modify column_name not null;
    移除非空约束(一般不需要删除):
    alter table table_name 
    modify column_name null;