oracle数据库各种物理文件,Oracle数据库应用

什么是表空间?

Oracle数据库包含逻辑结构和物理文件。数据库的物理结构是指构成数据库的一组操作系统文件数据库的逻辑结构是指描述数据组织方式的一组逻辑概念及他们之间的关系。表控件是数据库逻辑结构的一个重要组件。表控件可以存放各种应用对象,如表,索引。而每个表空间由一个或多个文件组成。

类别 举例 说   明

永久性表空间 SYSTEM,USERS 一般保存表、视图、过程和索引等的数据

临时性表空间 TEMP 只用于保存系统中短期活动的数据

撤销表空间 UNDO 用来帮助回退未提交的事务数据

小计:一般不需要建临时和撤销表空间,除非把它们转移其他磁盘中以提高性能

创建表空间

基于应用性能和管理方面的考虑,最好为不同的子系统创建独立的表空间

通过CREATE TABLESPACE命令创建表空间

语法:

CREATE TABLESPACE tablespacename

DATAFILE 'filename' [ SIZE integer [ K | M ] ]

[ AUTOEXTEND [ OFF | ON ] ] ;

}

示例:

CREATE TABLESPACE tp_hr

DATAFILE

'd:datap_hr01.dbf' SIZE 60M;

修改表空间

调整表空间大小

--方法一:更改数据文件的大小

ALTER DATABASE DATAFILE

'D:DATAp_hr01.dbf'

RESIZE 80M;

--方法二:向表空间内添加数据文件

ALTER TABLESPACE tp_hr

ADD DATAFILE

'E:DATAp_hr02.DBF' SIZE 20M

AUTOEXTEND ON;

更改表控件状态只读

实例:ALTER TABLESPACE tp_hr READONLY;

删除表空间

删除表空间前先备份再删除

通过DROP TABLESPACE命令创建表空间

语法:

DROP TABLESPACE tablespacename

[INCLUDING CONTENTS];

示例:DROP TABLESPACE tp_hr INCLUDING CONTENTS;

SYS和SYSTEM用户都是Oracle 的系统用户,它们都使用SYSTEM表空间,SYS拥有更大的权限

SYS用户 SYSTEM用户

地位 Oracle的一个超级用户 Oracle默认的系统管理员,拥有DBA权限

作用 主要用来维护系统信息和管理实例 通常用来管理Oracle数据库的用户、权限和存储等

登录身份 只能以SYSDBA或SYSOPER角色登录 只能以Normal方式登录

创建用户

语法:CREATE USER user

IDENTIFIED BY password

[DEFAULT TABLESPACE tablespace]

[TEMPORARY TABLESPACE tablespace]

[QUOTA {integer [K|M] | UNLIMITED}ON tablespace

[QUOTA {integer [K|M] | UNLIMITED}ON tablespace ] ...]

[PASSWORD EXPIRE ]

权限与角色

权限指执行特定类型SQL 命令或访问其他对象的权利

系统权限和对象权限

系统权限允许用户执行某些数据库操作

对象权限允许用户对某一特定对象执行特定的操作

角色是具有名称的一组权限的组合

常用系统预定义角色

CONNECT:临时用户

RESOURCE:更为可靠和正式的用户

DBA:数据库管理员角色,拥有管理数据库的最高权限

--分配权限或角色

GRANT privileges or role TO user;

--撤销权限或角色

REVOKE privileges or role FROM user;

序列

序列是用于生成唯一、连续序号的对象

序列可以是升序的,也可以是降序的

使用CREATE SEQUENCE语句创建序列

实例: CREATE SEQUENCE toys_seq

START WITH 10指定第一个序号从 10 开始

INCREMENT BY 10指定序号之间的间隔为 10

MAXVALUE 2000表示序列的最大值为 2000

MINVALUE 10表示序列的最小值为 10

NOCYCLE在达到最大值后停止生成下一个值

CACHE 10;指定内存中预先分配的序号数

访问序列

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

NEXTVAL 返回序列的下一个值

CURRVAL 返回序列的当前值

SYS_GUID函数

生成32位的唯一编码作为主键

与SYS_GUID函数区别

在不需要并行的环境中使用序列作为主键

在并行的环境里或者希望避免使用序列的情况下使用函数

更改和删除序列

使用ALTER SEQUENCE语句修改序列,

不能更改序列的START WITH参数

SQL> ALTER SEQUENCE toys_seq MAXVALUE 5000 CYCLE;

使用DROP SEQUENCE语句删除序列

SQL> DROP SEQUENCE toys_seq;

同义词

同义词是现有对象的一个别名

简化SQL语句

隐藏对象的名称和所有者

提供对对象的公共访问

同义词共有两种类型

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

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

私有同义词

CREATE OR REPLACE SYNONYM emp 别名 FOR SCOTT 模式.emp 表名;

公有同义词

CREATE PUBLIC SYNONYM public_sy_dept FOR SCOTT.dept;

删除同义词

SQL> DROP SYNONYM emp;

SQL> DROP PUBLIC SYNONYM emp_syn;

索引

物理分类 逻辑分类

分区或非分区索引 单列或组合索引

B树索引 唯一或非唯一索引

正常或反向键索引 基于函数索引

位图索引

B 树索引结构

CREATE INDEX index_id ON t(id);

反向键索引

CREATE INDEX index_reverse_empno ON emp(empno) REVERSE;

位图索引

CREATE BITMAP INDEX index_bit_job ON emp(job);

表分区

允许用户将一个表分成多个分区

用户可以执行查询,只访问表中的特定分区

将不同的分区存储在不同的磁盘,提高访问性能和安全性

可以独立地备份和恢复每个分区

范围分区

以表中的一个列或一组列的值的范围分区

语法:

PARTITION BY RANGE (column_name)

(

PARTITION part1 VALUE LESS THAN (range1),

PARTITION part2 VALUE LESS THAN (range2),

...

[PARTITION partN VALUE LESS THAN (MAXVALUE)]

);

间隔分区

PARTITION BY RANGE(column_name)

INTERVAL(NUMTOYMINTERVAL(n, 'interval_unit'))

(PARTITION P1 VALUES LESS THAN (range1));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值