欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

oracle数据库约束创建修改及删除

程序员文章站 2022-05-30 17:10:17
...
  1. 建表前约束的创建(约束跟在字段名后面)
create table student(
   sid int primary key,--设置主键约束
   sname char(8) not null,--设置非空约束
   sage int check(sage>=0 and sage<=100),--设置年龄在0-100之间的约束
   ssex char(6) check(ssex in ('male','female')),--设置性别约束
   sdept char(8)
);
  1. 建表前约束的创建(约束在尾部创建)
create table student(
   sid int ,
   sname char(8),
   sage int,
   ssex char(6),
   sdept char(8),
   contraints pk_student_sid  primary key(sid),
   contraints ck_student_sname check(sname is not null),
   constraints ck_student_sage check(sage>=0 and sage<=100),
   constraints ck_student_ssex check(ssex in ('male','female'))
);
  1. 建表后新增字段
    对于上述student表发现还需增加字段入学时间
    可以使用语句
    alter table student add enterSchTime char(8)

  2. 对于上述字段添加后发现学生的入学时间都是1998年之后的,需要添加约束
    alter table student add constraints ck_enterSchTime check(enterSchTime > '1998-01-01')

  3. 发现不需要上述约束 删除约束
    alter table student drop constraints ck_enterSchTime;

  4. 发现该表中不需要入学时间这一列
    alter table student drop enterSchTime;

  5. 角色的设置
    当我们通过超级管理员新建账户时,我们需要对该用户严格控制权限,以避免该用户对数据的不必要操作
    create role c1;创建角色
    给角色授予多个权限
    grant select,drop,update on table 表名 to c1
    给角色c1授予对表1的查询,删除,创建视图权限

    创建角色是为了方便一次性把权限授权给用户
    grant c1 to user;将角色授权给用户

当我们授权给用户后发现该用户不守规矩乱删数据

revoke drop on table student from user; 收回用户的删除权限

  1. 当我们发现字段名不合适时需要修改字段名时

alter table student rename column enterSchTime to EST