其它数据库对象.docx

上传人:b****3 文档编号:3942349 上传时间:2022-11-26 格式:DOCX 页数:11 大小:20.77KB
下载 相关 举报
其它数据库对象.docx_第1页
第1页 / 共11页
其它数据库对象.docx_第2页
第2页 / 共11页
其它数据库对象.docx_第3页
第3页 / 共11页
其它数据库对象.docx_第4页
第4页 / 共11页
其它数据库对象.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

其它数据库对象.docx

《其它数据库对象.docx》由会员分享,可在线阅读,更多相关《其它数据库对象.docx(11页珍藏版)》请在冰豆网上搜索。

其它数据库对象.docx

其它数据库对象

同义词(Synonyms)

是oracle的对象,它是指向其它数据库表的指针。

当创建一个同义词时就指定了一个同义词名字(表的别名),当引用同义词名字时,oracle服务器就会自动地用同义词定义的对象来代替同义词的名字。

有两种类型的同义词:

Private和Public

私有同义词是在制定的模式中

创建的,并且只允许拥有他的模式访问。

公共同义词由public模式所拥有,所有的数据库模式都可以引用它。

使用同义词可以保护数据库对象的隐私。

创建同义词:

Create[public|private]synonym<同义词名字>for<表名>

例如:

创建同义词mytest作为表mens1的别名

cretaesynonymmytestforsystem.mens1

删除同义词:

dropsynonym<同义词名字>

查看同义词:

使用下列视图之一:

Dba_Synonyms

All_Synonyms

User_Synonyms

练习:

为从Access数据库导入的”HealthCheck”表创建全局同义词health,

使所有用户可以访问。

序列

可以保证多个用户对同一张表进行操作时生成唯一的整数,通常用来做表的主键。

创建序列:

createsequence<序列名字>

startwith<起始值>

incrementby<增长值>

[MaxValue<最大值>]

[NoMaxValue]//没有上限

例如:

createsequencemySeq

startwith1

increment1

删除序列:

dropsequence<序列名字>

修改序列:

altersequence<序列名字>

[startwith<起始值>]

[incrementby<增长值>]

[MaxValue<最大值>]

查看序列:

使用下列视图之一:

Dba_Sequences

All_Sequences

User_Sequences

访问序列:

CurVal返回序列的当前值

NextVal返回序列的下一个值

例如:

selectmySeq.NextVal,cityfrompost

视图

一.概述

视图是数据库中的一个对象,本身不存储数据,但它使用一个或多个表中的数据,相当于数据库表的一个窗口,它是一种逻辑表。

可以用于下列用途:

1.限制表中行和列的使用。

因此,视图可用来控制一个或多个表中特别部分的访问.

2.隐藏复杂查询的细节。

如果数据库应用需要用到包含涉及到复杂连接操作的查询,那么建立相应的视图可以在很大程度上简化这样的查询。

3.将插入或更新值限制在一定范围内。

说明:

只有少部分的用户有权创建视图。

创建数据库以后,只有系统管理员和数据库所有者拥有此权限。

他们可以使用GrantCreateView语句将这一权限赋予其它用户。

另外,

视图的创建者必须拥有对包含于视图的所有列的读取权限。

4.可以合并表的列

二.创建视图

CreateView([columnList])

AS

select语句

说明:

1.参数说明

ViewName视图名称

ColumnList视图列名表列,如果省略,则使用select语句的列名,但是,下列

情况是必需的:

A。

select语句包含计算列或者函数操作的列;B.依赖的

基表中有相同名称的列。

例:

createviewv_Men

ASselect姓名,性别,月收入Frommens

Wherecsrq>’1980-11’

Createviewv_Count(所在部门,人数)

ASselect所在部门,count(*)frommens

Groupby所在部门

三.删除视图

DropView

事务

事务指一个或多个Sql语句所组成的序列,是对数据库操作的逻辑单位。

连续的执行提交(Commit)或回滚(Rollback)之间的操作成为一个事务,RDBMS要保证数据库的一致性是基于事务而不是基于单条的Sql语句。

事务处理就是面向逻辑单元的一种处理形式,它能够在事务处理期间发生了系统故障或用户进程故障时,是数据库自动的恢复到该事务起始前的状态。

即整个事物自动回滚

数据库的数据提交之后,这些更新操作就不能拆消。

事务提交方式:

1.显式提交

Commit语句

2.隐式提交

下列命名执行之后,系统自动提交

AlterCommentConnectCreateDisConnectdropexitgrant

RevokeRename以及退出SQL*PLUS

3.自动提交

使用SetAutoCommiton

此命令将系统变量AutoCommit的值设置为ON(默认为off)

命令来设置自动提交环境。

经过设置,SQL*PLUS会自动提交用户的更新操作。

即,设置自动提交环境之后,用户每次执行Insert

updatedelete等命令,系统将立即自动提交

4.屏蔽自动提交

SetAutoCommitoff

事务回滚:

尚未提交的Insertupdatedelete等命令,可以是用Rollback进行撤销。

5.只读事务处理:

只包含查询,也就是说,不能对数据库进行修改操作。

用SetTransactionReadOnly;可以实现只读事务。

添加表空间

数据库建好之后,就可以在其上进行相应的操作了。

如:

添加表空间,管理表空间,

等操作了。

表空间是oracle用于物理存储的结构。

表空间存储段的集合---表和索引。

同时,表空间是oracle数据库中数据的逻辑结构。

一个表空间在操作系统级映射到一个或多个数据文件上。

典型的表空间有系统表空间(Systemtablespace),临时表空间(temporarytablespace),

工具表空间(Tooltablespace),用户表空间(userstablespace),数据及其索引表空间,回滚表空间等。

Oracle建议表空间大小

表空间名称

建议大小

系统表空间

400MB

临时表空间

100MB

索引表空间

70MB

工具表空间

120MB

回滚表空间

250MB

DRSYS表空间

250MB

创建表空间

createTablespace<表空间.名称>

dataFile‘<文件名>’[Size数目[k|M][REUSE]

[Autoextend{OFF|ON[NEXT数目[k|M]]}]

[MaxSize{Unlimited|数目数目[k|M]}]

[,其他数据文件。

]

[ONLINE|OFFLINE]

[PERMANENT|TEMPORARY]

[MANAGEMENTLOCAL|DICTIONARY]

例如:

创建一个Yq_Table表空间,它带有两个数据文件

createtablespaceYq_Table

DataFile

‘D:

\myData\newYq1.dbf’Size100KREUSE//REUSE告诉oracle可以重用

autoextendonnext100KMaxSize2M

‘D:

\myData\newYq2.dbf’Size100KREUSE

ONLINE

Permanent;

设置默认存储值:

创建表空间时,oracle允许指定默认存储参数:

Initial设置创建时分配给每一个新对象的初始区间大小。

Next设置用户使用的随后区间的大小。

Initial和next的设置常常相同。

Minextents定义分配给一个新建对象的最小区间,多数情况下为1。

Maxextents定义了oracle允许对象拥有的最大区间,可以指定一个数目,或用

关键字Unlimited

PCTINCREASE此参数可在每次为对象添加新区间时,通过增加next值建立一个

百分数,它的值通常为0。

例如:

创建一个表空间,名为New_Tablespace,分配50M的初始空间,为对象设置区间数不受限制,则Sql语句如下:

createtablespaceNew_Tablespace

DataFile‘D:

\myData\newTable1.dbf’Size1000M

Defaultstorage(Initial50M

Next50M

MINEXTENTS1

MAXEXTENTSUnlimited

PCTINCREASE0)

说明:

在表空间指定的存储参数代表默认值,仅当在表空间中创建新对象而没有

指定特定的参数时才使用默认值。

例如,用下面的命令创建的表将继承前面例子中

的默认存储参数:

createtabletable1(

ITEM_NONumber(10,0)NOTNULL,

….)

TablespaceNew_Tablespace;

由于在createtable中没有指定storage子句,因此table1表将继承在表空间中设置的

默认存储参数。

50M的初始空间会被立即分配,以后会根据需要分配随后区间50M.

数据字典

一.概述:

Oracle数据库一个最重要的部分就是数据字典,它是只读类型的表的集合,提供数据库的信息。

可以将数据字典视为表的表。

数据字典的结构是表何视图。

数据字典对于所有的用户(从应用涉及人员到数据库管理员)来说,都是非常重要的工具。

可以是用Sql语句访问数据字典,由于数据字典是只读的,所以只能使用Select语句访问它。

一个数据字典包括基表和用户可访问的视图:

1.数据库对象所有的框架对象的定义(表、视图、索引、同义词、序列、过程、函数、包、触发器等)

2.为框架对象如何分配和使用空间

3.列的默认值

4.完整性约束信息

5.Oracle用户的名称

6.每个用户所授予的权限和角色

7.审计信息

8.数据库的其他信息

二.数据字典表

数据字典表(Datadictionarytable)可以存储表,索引、约束以及所有其它数据库结构的信息。

它们属于SYS用户。

三.数据字典视图

数据字典视图是在数据字典基表上创建的视图,分为三类:

数据字典视图前缀

前缀

范围

User

用户视图

All

扩展用户视图

DBA

数据库管理员视图

四.最常用的视图

前缀_Tables所有的视图

前缀_Tab_Columns所有表的所有列视图

前缀_Indexes所有索引视图

前缀_IND_Columns所有索引所关联的列视图

前缀_Views创建的视图的视图

前缀_Sequences所有序列的视图

前缀_Trigger创建的触发器视图

前缀_Synonym创建同义词的视图

前缀_DB_Links创建的数据库链视图

聚族(Clusters)

它是一种可选的数据库对象。

提供了一种存储表数据的方法。

可分为

表族(TableCluster)和哈希族(HashCluster)。

表族:

由若干个共享着相同数据块的表组成。

对于经常查询的表来说,使用表族比较方便,可以给查询带来下列好处:

减轻了磁盘I/O,访问同一表族里的表之间的教诲信息的时间大为缩短.

无论有多少个表,族键值只在族里存储一次,所以,使用表族存储表和索引数据将会比不使用族需要相对少的空间..

一般而言:

满足下列条件的一组表使用于采用表族:

主要用于执行查询操作,而不是以插入或更新为主的操作.

这些表经常一起被查询或连接.

创建表族:

createcluster[模式.]表族名称(列名1数据类型[,列名1数据类型]…)

[物理属性组句]

[Size数目[K|M]

[Tablespace表空间名称]

[存储属性组句]

创建分区表和分区索引

一.创建分区表

为了提高性能,oracle允许将一个巨大的数据表按某种方式划分为

几个较小的部分,并分别将其存放到不同的表空间中。

分区表就是指将一个巨型表或索引分割成相对较小的,可以独立管理的部分,这些分割的表就称为分区表或分区索引

每一个分区都具有相同的逻辑属性,如各个分区都具有相同的字段名、数据类型和约束等,但是每个小分区可以有不同的物理属性,比如不同的存储参数和不同的表空间。

如果表中包含Long或LongRaw类型的字段,则不能对表进行分区。

下列情形适合于创建分区表:

1.一个表的大小超过2GB

2.要对一个表进行并行的DML操作(如:

Update)

3.平衡硬盘I/O操作,需要将一个表分散存储在不同的表空间中

4.如果要将一个表的一部分设为相对固定,另一部分设为可更新,则必须进行分区。

例如:

表中的一部分用来存放历史数据。

1.创建分区表

Oracle9I提供四种类型的分区表:

范围分区

列表分区

散列分区

复合分区

1.1.范围分区

指按照表中的分区字段值的范围来进行分区,比如:

按照日期字段进行划分。

按照月份分成12个分区。

CreateTablesales(

Bike_noNumber,

Sale_yearintnotnull,

Sale_monthintnotnull,

Sale_dayintnotnull

Storage(Initial100kNext50K)Logging

PartitionbyRange(sale_year,sale_month,sale_day)

Partitionsales_q1ValuesLessThan(2004,04,01)

Tablespacefirst_tabsStorage(Initial20KNext10K),

Partitionsales_q2ValuesLessThan(2004,07,01)

Tablespacesecond_tabs,

Partitionsales_q3ValuesLessThan(2004,10,01)

Tablespacethird_tabs,

Partitionsales_q4ValuesLessThan(2005,01,01)

Tablespacefouth_tabs

ENABLEROWMovement;

说明:

A.范围分区主要部分。

PartitionbyRange(字段1,字段2,。

)表示分区范围

ValuesLessThan(字段值1,字段值2,。

)子句指定分区的上限

1.2.列表分区

分区条件是用枚举方式,如按照部门分区

主要子句:

PartitionByList(字段)

例如:

CreateTable人员(

Xmvarchar2(20),

部门char

(2)

Storage(Initial20KNext30K)

Tablespacetbs1

PartitionList(部门)

Partitiondept1Values(‘院务部’)

Storage(Initial20KNext40KPCTIncrease50)

Tablespacetbs2,

Partitiondept2Values(‘后勤部’,’人力资源部’)

……

);

1.3.散列和复合分区

二.创建分区索引

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1