ITPub博客

首页 > 应用开发 > IT综合 > SG_007_CHAPTER 9

SG_007_CHAPTER 9

原创 IT综合 作者:chenai79921 时间:2009-10-26 14:02:12 0 删除 编辑

Other Database Objects

Creating and Managing Sequences:

序列值存在于数据字典中。

Creating and Dropping Sequences:

Create sequence schema..sequence 参数;

参数:start with integer : 默认为1

Increment by integer :每次增长或减少数,默认为1

Nominvalue

Minvalue integer : 产生最小的数字

NOMAXVALUE

MAXVALUE interger :最大的数字

NOCYCLE

CYCLE

NOCACHE

CACHE : 序列的size保存在内存中。默认为20.

Drop sequence sequence_name

Using Sequences:

得到序列的后一个数字,使用NEXTVAL。

得到最新产生的序列数字,使用CURRVAL。如果你的session 还没有产生一个新的序列号,CURRVAL将不会被定义。

Sequence_name.nextval

Sequence_name.currval

Sequence Initialization:

CREATE SEQUENCE emp_seq NOMAXVALUE NOCYCLE;

确定在引用CURRVAL之前,使用NEXTVAL来初始化序列。

SELECT emp_seq.nextval FROM dual;

--------1

SELECT policy_seq.currval FROM dual;

--------1

Missing Sequence Values:

当给数据分配完序列号,如果此时ROLLBACK,再分配序列号时,接着原先分配的序列号之后。

Maximum and Minimum Values:

升序时,超过最大值,出错。

降序时,低于最小值,出错。降序时,默认从-1开始,默认最大为0.

Altering Sequences:

改变序列号步骤:

1.Drop ,re-create序列号

2.SELECT NEXTVAL 到想要的数值。

3.改变INCREMENT BY 参数,使用NEXTVAL变成一个想要的数值。

例子:

SELECT sequence_name , cache_size, last_number

From user_sequences

SEQUENCE_NAME CACHE_SIZE LAST_NUMBER

------------------------ ----------------- ---------------------

SALE_SEQ 20 441

ALTER SEQUENCE sale_seq INCREMENT BY 111555888;

SELECT sale_seq.nextval FROM dual;

NEXTVAL

-------------

111556309

ALTER SEQUENCE sale_seq INCREAMENT BY 1.

SELECT sequence_name , cache_size, last_number

From user_sequences

SEQUENCE_NAME CACHE_SIZE LAST_NUMBER

------------------------ ----------------- ---------------------

SALE_SEQ 20 111556310

Creating and Managing Synonyms:

公共的同义词对任何用户都可用。私有的同义词只对私有用户可用。

当对象drop 或者失效,对象的同义词还是合法的。

同样,也可以建立一个同义词,指向一个不存在的对象。

Creating and Dropping Synonyms:

Create [ public ] SYNONYM synonym_name

FOR [schema.] object [ @db_link];

DROP  PUBLIC  SYNONYM employees;

Public Synonyms:

建立一个同义词,即使其他用户不拥有该表,但是有对该表的select 权限,那么就能引用同义词。

Private Synonyms:

A拥有的表table_A , A把SELECT权限给B 和C

B对table A建立一个私有同义词

此时C也拥有这个私有同义词。

Resolving Object References:

查找引用的顺序。

1.当前用户的对象

2.当前用户的私有同义词

3.公共同义词。

CREATING Database Links :

CREATE [SHARED] [PUBLIC] DATABASE LINK link_name

[CONNECT TO username IDENTIFIED BY password] USING ‘tns_name’;

PUBLIC:使数据链接对所有用户都有效。

CONNECT TO:链接远程服务器的用户名和密码。

Tns_name:远程数据库的服务名。

SHARED : 所有oracle 的公共数据库链接的用户分享单个链接到远程数据库的网络

例子:

Create public database link new_jersry

Connect to home_office INDENTIFIED BY secret USING ‘NJ’

如果不想每个人都用同样的用户名来连接远程数据库,那么建立一个database,不带CONNECT TO语句。

例子:

Create public database link new_jersey USING ‘NJ’

上面的语句告诉每个用户,必须通过他们自己的用户名和密码来连接NJ,那么引用数据库库的用户要拥有一个账号,这个账号必须在本地和远程数据库中都存在。

Creating and Managing Indexes:

Using B-Tree Indexes:

适用于高基数的column,该column有许多不同的数值。

当返回小部分数据时,这是一个很有效的方法。当返回的数据超过所有数据的10%时,此时全表扫描是一个更加好的方法。

B-TREE,

branch blocks : 拥有index column(the key)和 连接另外一个index block的地址。

leaf block :key 和 rowid

column A 和column B是联合索引,where 中有column A时有效,只有column B时无效。

Using Bitmap Indexes:

通常只有单个column作为索引。

适用于低基数的情况,当用and or 上连接使用,比较有效。

以压缩的形式存储,占用比较少的空间。

[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/11997930/viewspace-1028151/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: SG_007_CHAPTER 8
下一篇: SG_007_CHAPTER 10
请登录后发表评论 登录
全部评论
  • 博文量
    19
  • 访问量
    14160