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博客 ” ,链接:http://blog.itpub.net/11997930/viewspace-1028151/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/11997930/viewspace-1028151/