在路上

奋斗的路有很多,这里就有一条

Oracle数据库的字段约束创建和维护

创建Oracle数据库的字段约束:

  • 非空约束
  • 唯一约束
  • 对字段的取值的约束
  • 默认值
  • 外键约束
    create table tab_class(
     class_id number primary key,
     class_name varchar2(10) not null unique
    );
    create table tab_stu(
    stu_id number,
     --学生姓名,不能为空,不能重复
    stu_name varchar2(20) not null unique,
     --学生姓名只能是male或female
    stu_gender varchar2(6) not null check(stu_gender='male' or stu_gender='female'),
     --学生年龄只能在18到60之间
    stu_age number check(stu_age >18 and stu_age <60),
     --邮箱可以不填写,填写的话不能相同
    stu_email varchar2(30) unique,
    stu_address varchar2(30),
    --外键约束
    class_id number not null references tab_class(class_id) 
    );


维护已经创建好的约束:

  • 可添加或删除约束,但不能直接修改。
  • 可使约束启用和禁用。
  • 非空约束必须使用MODIFY子句增加。
  • 为表增加主键约束:
    --维护约束
    --创建约束
    create table tab_check(
     che_id number,
     che_name varchar2(20)
    );
    --为表增加主键约束
    alter table tab_check
    add constraints tab_check primary key(che_id);
     
  • 添加唯一约束
    --添加唯一约束,tab_check_unique表示约束的名称
    alter table tab_check
    add constraints tab_check_unique unique(che_name);

  • 添加检查约束:
    --添加一个字段
    alter table tab_check
    add che_age number;
    --添加检查约束
    alter table tab_check
    add constraints tab_check_age check(che_age>18 and che_age<60);

  • 删除约束:
    --删除主键约束
    alter table tab_check
    drop constraints tab_check;

  • 禁用约束:
    --禁用约束
    alter table tab_check disable constraints tab_check;

  • 启用约束
    --启用约束
    alter table tab_check enable constraints tab_check;

  • 复合约束,联合主键,也就是两个字段的组合成一个主键
    --联合主键
    create table tab_person(
     tab_firstname varchar2(10),
     tab_lastname varchar2(10),
     tab_gender varchar2(5),
     primary key(tab_firstname,tab_lastname)
    );

  • 为表添加外键约束:
    alter table tab_stu
    add constraints tab_stu foreign key(class_id) references tab_class(class_id);


阅读更多
版权声明:原创博客,乐于分享 (*^__^*) https://blog.csdn.net/qq455276333/article/details/12214735
文章标签: oracle SQL 约束
个人分类: Oracle数据库
上一篇Oracle数据库学习之数据类型和表的操作
下一篇Oracle数据中的PL/SQL介绍
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭