Oracle的数据库对象
七大对象:用户、表、约束、序列、视图、同义词和索引
知识点一:用户 - User - 账户、管理员-一切对象的宿主
角色:
3种标准角色:select*fromdba_sys_privs wheregrantee ='CONNECT' Oracle为了兼容以前的版本,提供了三种标准的角色(role):connect、resource和dba。 1. connect role(连接角色)
|
grant connect to smith;
2. resource role(资源角色)
grant connect,resourceto smith;
3. dba role(数据库管理员角色)
dba role拥有所有的系统权限----包括无限制的空间限额和给其他用户授予各种权限的能力。system由dba用户拥有。
注意:撤消一个用户的所有权限,并不意味着从oracle中删除了这个用户, 也不会破坏用户创建的任何表;只是简单禁止其对这些表的访问。其他要访问这些表的用户可以象以前那样地访问这些表。
创建角色
除了前面讲到的三种系统角色----connect、resource和dba,用户还可以在oracle创建自己的role。用户创建的role可以由表或系统权限或两者的组合构成。为了创建role,用户必须具有create role系统权限。
create role命令的实例:
这条命令创建了一个名为student的role:
create role student;
给student角色授权:
grant create session to student;
用student角色给用户授权:
grant student to sunny;
删除角色
drop role student;
注意:指定的role连同与之相关的权限将从数据库中全部删除。
知识点二:表 –table -- 维护使用sql语句完成数据存储
primary key,
unique
default
check
知识点三:约束 –constraint –数据完整性和一致性
大体分类:实体完整性 -- 减少数据冗余 -- 主键约束(非空,唯一)
域完整性 -- 数据的准确性 -- check约束(default)
引用完整性 -- 数据的一致性 -- 外键约束
Oracle约束对象5大分类:主键(primary key)、非空(not null)、唯一性(unique)、检查(check)、外键(foreign key)
创建约束的两种方式:create table添加约束、alter table 添加约束
总结:
添加约束【主键、唯一、check、foreign key】
Alter table 表名 add [constraint 自定义约束名] select * from user_constraints; select * from user_cols_cons
primary key() |
unique() |
check() | 列名 between 0 and 100 | 列名 in(‘男’,’女’)
foreign key() references 主键表名(主键列)
添加约束【非空、缺省】
Altert table 表名 modify (列名 非空 | 缺省)
知识点四:序列(sequence)来实现字段的自增长特性
语法:create sequence 序列名
startwith 起始值
Increment by 步长
maxvalue最大值
minvalue最小值
Cycle (nocycle)
Cache 缓存>1的数字
知识点五:视图view - 简化查询、提高安全性
语法 : create [or replace] view 视图名
as
负责的select语句
使用:select * from 视图 where group by having order by
注意:有权限才能创建视图grant create view to用户
1、如何添加主键约束
主键约束不允许为空
--向已经创建的表中添加主键约束
altertableclassadd primary key(classid)
--删除创建的主键约束
drop constraintsys_c0011740
--向已经创建的表中添加自定义名称主键约束
add pk_classid primary key)
--创建表的时候添加主键约束(行级约束)
createtableclass(
classid number(2)primary key,
classname varchar210))
表的时候添加主键约束(表级约束)
),128)">constraint pk_classid primary key(classid)
not null
1、唯一约束unique
允许数据为空,而且可以多行数据为空
?????
2、非空null-行级约束
3、default-行级约束
--向已经创建的表中添加非空约束
modifyclassname notnull--删除非空约束
default用法和非空约束是一样
--向已经创建的表中添加default约束
studentstusex default ‘男’--删除default约束
????
--添加default的行级约束
student(
stuid stuname stusex charstuReg datesysdate--date timestamp
)
4、check约束
--向已经创建的表中添加check约束
alter table student add check(stusex in ('男','女'))
--删除check约束
--创建表的过程中添加check约束(行级约束)
--创建表的过程中添加check约束(表级约束)
Constraint ck_stusex check(stusex in('男','女')
注意:
Constraint notnull_classname check(classname is not null);对的
onstraint default_stusex check(stusex is default ‘男’);不对的
5、外键约束
写起来有点麻烦
--向已经创建的表中加入外键约束
student add foreign key)references --删除外键约束
???
--创建表添加行级约束
references class(classid)
--创建表级约束
??????
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!