SG_007_CHAPTER 9

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 , ASELECT权限给B C

Btable 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 columnthe key)和 连接另外一个index block的地址。

leaf block key rowid

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

Using Bitmap Indexes

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

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

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

[@more@]

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

转载于:http://blog.itpub.net/11997930/viewspace-1028151/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值