Oracle数据库应用

Posted 波涛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle数据库应用相关的知识,希望对你有一定的参考价值。

01.表空间

我们知道oarcle数据库真正存放数据的是数据文件(data files),Oarcle表空间(tablespaces)实际上是一个逻辑的概念,他在物理上是并不存在的,那么把一组data files 捻在一起就成为一个表空间。

使用该CREATE TABLESPACE语句创建一个表空间,该表空间是数据库中可以包含模式对象的空间分配。

表空间属性:

一个数据库可以包含多个表空间,一个表空间只能属于一个数据库

一个表空间包含多个数据文件,一个数据文件只能属于一个表空间

表这空间可以划分成更细的逻辑存储单元

表空间分类:

 

一个永久表空间包含持久模式对象。永久表空间中的对象存储在数据文件中。

一个撤销表空间是一种通过使用Oracle数据库,如果你在自动撤销管理模式下运行的数据库来管理还原数据永久表的。Oracle强烈建议您使用自动撤消管理模式,而不是使用回滚段进行撤消。

一个临时表空间包含模式对象只有一个会话的持续时间。临时表空间中的对象存储在临时文件中。

当你创建一个表空间时,它最初是一个读/写表空间。随后可以使用该ALTER TABLESPACE语句使表空间脱机或联机,向其中添加数据文件或临时文件,或者使其成为只读表空间。

您还可以使用该DROP TABLESPACE语句从数据库中删除表空间。

 

表空间作用

方便存储管理

提高I/O性能

备份和恢复

 1 --查看当前数据库的所有表空间  注意需管理员权限
 2 select tablespace_name from dba_tablespaces; 
 3 --用system登录 授权表空间权限
 4 GRANT CREATE tablespace to LIUTAO
 5 
 6 --创建表的同时指定表空间
 7 create table grade
 8 (
 9    gid number primary key not null,
10    gname nvarchar2(32)
11 )tablespace jbit
12 
13 --创建表空间  第一次和创建至少指定一种物理文件
14 create tablespace jbit
15 datafile \'E:\\app\\Administrator\\oradata\\orcl\\jbit.DBF\'
16 size 10M --初始大小
17 autoextend on next 32M maxsize unlimited
18 
19 --用system登录 授权表空间删除权限
20 GRANT drop tablespace to LIUTAO
21 --删除表空间的同时删除物理文件
22 drop tablespace jbit including contents and datafiles

02.序列

 序列是用于生成唯一、连续序号的对象   序列可以是升序的,也可以是降序的

 

创建语法:

create sequence 序列名称
[start with 初始量]
[increment by 递增量]
[maxvalue 最大值| nomaxvalue]
[minvalue 最小值| nominvalue]
[cycle | nocycle]
[cache 缓存个数| nocache];

start with:生成第一个序列号,对于升序列,其默认值为序列最小值;对于降序序列,其默认值为序列的最大值 。
increment by:用于指定序列号之间的间隔,其默认值为1,如果integer为正值,则生成的序列按升序排列,如果integer为负值,则生成的序列将按降序排列。
maxvalue:序列可以生成的最大值。
nomaxvalue:oracle将升序序列的最大值设为1027,将降序序列的最大值设为-1.这是默认选项。
minvalue:minvalue必须小于或等于start with的值,并且必须小于maxvalue的值。
nominvalue:oracle将升序的最小值设为1,或将降序序列的最小值设为-1026.这是默认值。
cycle:序列在达到最大值或最小值后,将继续从头开始生成值。
nocycle:序列在达到最大值或最小值后,将不能再继续生成值。不写默认为nocycle这是默认选项 。
cache:预先分配一组序列号,并将其保留在内存中,这样可以更快地访问序列号.当用完缓存中的所有序列号.oracle将生成另一组数值,并将其保留在缓存中。
nocache:不会加快访问速度而预先分配序列号,如果在创建序列时忽略了cache和nocache,orcale将默认缓存20个序列号。

通过序列的伪列来访问序列的值

NEXTVAL 返回序列的下一个值

CURRVAL 返回序列的当前值

04.SYS_GUID函数

1 --创建一个序列
2 create sequence seq_first
3 --查询下一个序列
4 select seq_first.nextval from dual
5 --查询当前序列
6 select seq_first.currval from dual
7 --使用序列
8 insert into grade(gid,gname) VALUES(seq_first.nextval,\'ssh开发企业级框架\')
  9  --删除序列的SQL
 10  DROP SEQUENCE seq_newsId;

 03.同义词

 

 同义词:使用对象(TableView,同义词)的一个别名,不占用任何实际的存储空间,只是在Oracle的数据字典中保存其定义描述,在使用同义词时,Oracle会将其翻译为对应对象的名称。

 

作用:屏蔽对象的名字及其持有者,为用户简化SQL语句

 

   01、分类

 

      私有同义词

 

        私有同义词只能在其模式内访问,且不能与当前模式的对象同名

 

      公有同义词

 

        公有同义词可被所有的数据库用户访问

 

 1 --同义词
 2 -- 私有同义词
 3     --私有同义词只能在其模式内访问,且不能与当前模式的对象同名
 4 --公有同义词
 5      -- 公有同义词可被所有的数据库用户访问
 6 --私有同义词
 7 --使用Ssytem登录,授予私有同义词的权限
 8 grant create synonym to LIUTAO
 9 --用liutso登录  创建学生表的同义词 
10 CREATE synonym stu for LIUTAO.STUDENT
11 
12 --创建共有同义词权限
13 GRANT create PUBLIC SYNONYM to LIUTAO
14 
15 --用liutao登录,创建班级表的同义词
16 CREATE PUBLIC SYNONYM gra for LIUTAO.grade
17 select * from gra
18 --liutao登陆模式授权
19 grant select on grade to PUBLIC
20 --查看某张表的同义词
21 SELECT * FROM SYS.ALL_SYNONYMS WHERE table_NAME=\'GRADE\'
22 --删除私有同义词
23  drop synonym gra
24 --用system登录,授予liutao删除共有同义词的权限
25 grant drop PUBLIC SYNONYM to LIUTAO
26 --删除共有同义词 DROP PUBLIC SYNONYM public_emp;  删除名为public_emp的公有同义词 
27 drop PUBLIC SYNONYM gra

 

小补充:收回权限

1 --用system登录收回权限
2 revoke drop tablespace from LIUTAO

 

以上是关于Oracle数据库应用的主要内容,如果未能解决你的问题,请参考以下文章

Oracle 数据库 - 使用UEStudio修改dmp文件版本号,解决imp命令恢复的数据库与dmp本地文件版本号不匹配导致的导入失败问题,“ORACLE error 12547”问题处理(代码片段

Client / Server Interoperability Support Matrix for Different Oracle Versions (Doc ID 207303.1)(代码片段

Oracle-常用数据库对象笔记(片段)

Android 应用程序不断因空指针异常而崩溃

Oracle数据库从RMAN备份集片段还原指定单个归档日志进行日志挖掘分析

如何使用 Swift 使用此代码片段为 iOS 应用程序初始化 SDK?