oracle数据库约束创建修改及删除
程序员文章站
2022-05-30 17:10:17
...
- 建表前约束的创建(约束跟在字段名后面)
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)
);
- 建表前约束的创建(约束在尾部创建)
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'))
);
-
建表后新增字段
对于上述student表发现还需增加字段入学时间
可以使用语句alter table student add enterSchTime char(8)
-
对于上述字段添加后发现学生的入学时间都是1998年之后的,需要添加约束
alter table student add constraints ck_enterSchTime check(enterSchTime > '1998-01-01')
-
发现不需要上述约束 删除约束
alter table student drop constraints ck_enterSchTime;
-
发现该表中不需要入学时间这一列
alter table student drop enterSchTime;
-
角色的设置
当我们通过超级管理员新建账户时,我们需要对该用户严格控制权限,以避免该用户对数据的不必要操作create role c1;
创建角色
给角色授予多个权限grant select,drop,update on table 表名 to c1
给角色c1授予对表1的查询,删除,创建视图权限创建角色是为了方便一次性把权限授权给用户
grant c1 to user;
将角色授权给用户
当我们授权给用户后发现该用户不守规矩乱删数据
revoke drop on table student from user;
收回用户的删除权限
- 当我们发现字段名不合适时需要修改字段名时
alter table student rename column enterSchTime to EST
推荐阅读
-
mysql中数据库与数据表编码格式的查看、创建及修改
-
MySQL数据库创建、修改和删除表操作实例介绍
-
MSSQL监控数据库的DDL操作(创建,修改,删除存储过程,创建,修改,删除表等)
-
MySQL数据库创建、修改和删除表操作实例介绍
-
oracle创建删除用户示例分享(oracle删除用户命令及授权)
-
oracle删除主键查看主键约束及创建联合主键
-
查看oracle数据库的编码及修改编码格式的方法
-
MSSQL监控数据库的DDL操作(创建,修改,删除存储过程,创建,修改,删除表等)
-
[Oracle]Oracle数据库数据被修改或者删除恢复数据
-
Oracle创建表、删除表、修改表(添加字段、修改字段、删除字段)语句总结