增加不为空约束:alter table 表名称 modify 列名 not null
增加唯一约束:alter table 表名称 add constraint 表名称_un unique(列名)
在已重复数据列上添加唯一约束:创建索引 create index 表名_inx 表名(列名)
增加唯一约束 alter table 表名 add constraint 表名_un unique(列名) enable novalidate
提交 commit ,即可在重复列上添加唯一约束
删除约束:alter table 表名 drop constraint 约束名
若两张表存在主从关系,则在删除主表的主键约束时必须带上cascade选项,例如:alter table 表名 drop primary key cascade
显示约束信息:select 列名 from user_constraints where table_name='表名'
显示约束列:select 列名 from user_cons_columns where constraint_name='约束名'
列级定义:在定义列的同时定义约束
表级定义:在定义了所有列后再定义约束
唯一类型的字段建表时自动添加索引
创建用户:create user 用户名 identified by 密码,用户初创建时没有权限所以不能连接数据库
授予用户权限:grant 权限 to 用户 with admin option,则意味着允许用户将权限赋予他人
系统权限不是级联回收的。
对象权限可以授予用户,角色和public,在授予权限时,如果带有with grant option选项,则可以将该权限转授给其他用户,但是此选项不能被授予角色。
赋权限:grant 权限 on 表 to 用户名,若管理员将某用户的表的权限赋予某人,则将表名称写为“用户名.表名”即可。
赋予用户修改表的某个字段的权限:grant 权限 on 表名(字段名) to 用户
授予index权限:grant index on 表名 to 用户
回收对象权限:revoke 权限 on 表名 from 用户
赋予对象的权限会级联回收。
创建角色:create role 角色名 not identified,不需要验证
create role 角色名 identified by 密码,需要数据库验证,激活此角色时需要输入密码。
给角色授权:grant 系统权限 to 角色名 with admin option
grant 对象权限 on 表名 to 角色名
给用户分配角色:grant 角色名 to 用户名 (with admin option),括号中内容表示该用户可以讲该角色授予其他人
删除角色:drop role 角色名
显示所有角色:select * from dba_roles;
显示角色所拥有的系统权限:select privilege,admin_option from role_sys_privs where role='角色名'
显示角色所拥有的对象权限:select * from dba_tab_privs where role='角色'
显示用户具有的角色及默认角色:select granted_role,default_role from dba_role_privs where grantee='角色/用户名等'