oracle数据库基础学习(三)

前端之家收集整理的这篇文章主要介绍了oracle数据库基础学习(三)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

Oracle数据库对象@H_502_5@

七大对象:用户、表、约束、序列、视图、同义词和索引@H_502_5@

知识点一:用户 - User - 账户、管理员-一切对象的宿主@H_502_5@

@H_502_5@

角色:@H_502_5@

3种标准角色select*fromdba_sys_privs wheregrantee ='CONNECT'
  Oracle为了兼容以前的版本,提供了三种标准的角色(role)connectresourcedba
  1. connect role(连接角色)
@H_502_5@

grant connect to smith;@H_502_5@

2. resource role(资源角色)@H_502_5@

grant connect,resourceto smith;@H_502_5@

3. dba role(数据库管理员角色)
  dba role拥有所有的系统权限----包括无限制的空间限额和给其他用户授予各种权限的能力。systemdba用户拥有。
@H_502_5@

注意:撤消一个用户的所有权限,并不意味着从oracle删除了这个用户, 也不会破坏用户创建的任何表;只是简单禁止其对这些表的访问。其他要访问这些表的用户可以象以前那样地访问这些表。@H_502_5@

创建角色@H_502_5@

除了前面讲到的三种系统角色----connectresourcedba用户还可以在oracle创建自己的role用户创建的role可以由表或系统权限或两者的组合构成。为了创建role用户必须具有create role系统权限。@H_502_5@

create role命令的实例: @H_502_5@

这条命令创建了一个名为studentrole@H_502_5@

create role student;@H_502_5@

student角色授权: @H_502_5@

grant create session to student;@H_502_5@

student角色给用户授权:@H_502_5@

grant student to sunny;@H_502_5@

删除角色 @H_502_5@

drop role student;@H_502_5@

注意:指定的role连同与之相关的权限将从数据库中全部删除@H_502_5@


@H_502_5@

知识点二:表 –table -- 维护使用sql语句完成数据存储@H_502_5@


@H_502_5@

primary key,@H_502_5@

unique@H_502_5@

default@H_502_5@

check@H_502_5@

知识点三:约束 –constraint –数据完整性和一致性@H_502_5@

大体分类:实体完整性 -- 减少数据冗余 -- 主键约束(非空,唯一)@H_502_5@

域完整性 -- 数据的准确性 -- check约束(default@H_502_5@

引用完整性 -- 数据的一致性 -- 外键约束@H_502_5@

Oracle约束对象5分类:主键(primary key)、非空(not null)、唯一性(unique)、检查(check)、外键(foreign key@H_502_5@

创建约束的两种方式:create table添加约束、alter table 添加约束@H_502_5@

总结:@H_502_5@

添加约束【主键、唯一、checkforeign key@H_502_5@

Alter table 表名 add [constraint 自定义约束名] select * from user_constraints; select * from user_cols_cons@H_502_5@

primary key() | @H_502_5@

unique() | @H_502_5@

check() | 列名 between 0 and 100 | 列名 in(‘男’,’女’)@H_502_5@

foreign key() references 主键表名(主键列)@H_502_5@

@H_502_5@

添加约束【非空、缺省】@H_502_5@

Altert table 表名 modify (列名 非空 | 缺省)@H_502_5@

@H_502_5@

知识点四:序列(sequence)来实现字段的自增长特性@H_502_5@

语法:create sequence 序列名@H_502_5@

startwith 起始值@H_502_5@

Increment by 步长@H_502_5@

maxvalue最大值@H_502_5@

minvalue最小值@H_502_5@

Cycle nocycle@H_502_5@

Cache 缓存>1的数字@H_502_5@

知识点五:视图view - 简化查询、提高安全性@H_502_5@

语法 : create [or replace] view 视图名@H_502_5@

as@H_502_5@

负责的select语句@H_502_5@

使用:select * from 视图 where group by having order by@H_502_5@

注意:有权限才能创建视图grant create view to用户@H_502_5@

1、如何添加主键约束@H_502_5@

主键约束不允许为空@H_502_5@

--向已经创建的表中添加主键约束@H_502_5@

altertableclassadd primary key(classid)@H_502_5@

--删除创建的主键约束@H_502_5@

drop constraintsys_c0011740@H_502_5@

--向已经创建的表中添加自定义名称主键约束@H_502_5@

add pk_classid primary key)@H_502_5@

@H_502_5@

--创建表的时候添加主键约束(行级约束)@H_502_5@

createtableclass(@H_502_5@

classid number(2)primary key,@H_502_5@

classname varchar210))@H_502_5@

@H_502_5@

表的时候添加主键约束(表级约束)@H_502_5@

),128)">constraint pk_classid primary key(classid)@H_502_5@

not null@H_502_5@

@H_502_5@

@H_502_5@

1、唯一约束unique@H_502_5@

允许数据为空,而且可以多行数据为空@H_502_5@

?????@H_502_5@

2、非空null-行级约束@H_502_5@

3、default-行级约束@H_502_5@

--向已经创建的表中添加非空约束@H_502_5@

modifyclassname notnull--删除非空约束@H_502_5@

default用法和非空约束是一样@H_502_5@

--向已经创建的表中添加default约束@H_502_5@

studentstusex default --删除default约束@H_502_5@

????@H_502_5@

--添加default的行级约束@H_502_5@

student(@H_502_5@

stuid stuname stusex charstuReg datesysdate--date timestamp@H_502_5@

)@H_502_5@

4check约束@H_502_5@

--向已经创建的表中添加check约束@H_502_5@

alter table student add check(stusex in ('',''))@H_502_5@

--删除check约束@H_502_5@

--创建表的过程中添加check约束(行级约束)@H_502_5@

--创建表的过程中添加check约束(表级约束)@H_502_5@

Constraint ck_stusex check(stusex in('','')@H_502_5@

注意:@H_502_5@

Constraint notnull_classname check(classname is not null);对的@H_502_5@

onstraint default_stusex check(stusex is default );不对的@H_502_5@

5、外键约束@H_502_5@

写起来有点麻烦@H_502_5@

--向已经创建的表中加入外键约束@H_502_5@

student add foreign key)references --删除外键约束@H_502_5@

???@H_502_5@

--创建表添加行级约束@H_502_5@

references class(classid)@H_502_5@

--创建表级约束@H_502_5@

??????@H_502_5@

原文链接:https://www.f2er.com/oracle/213379.html

猜你在找的Oracle相关文章