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

  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

你可能感兴趣的:(数据库)