关闭

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

标签: oracleSQL约束
46951人阅读 评论(0) 收藏 举报
分类:

创建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);


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    欢迎关注个人微信号
      欢迎关注微信账号:在路上的coder .每天一篇java相关或互联网相关的文章




    个人资料
    • 访问:808716次
    • 积分:2824
    • 等级:
    • 排名:第14235名
    • 原创:86篇
    • 转载:4篇
    • 译文:0篇
    • 评论:25条
    资源分享地址
    个人博客地址
    博客专栏
    最新评论