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 , 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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SG_007_CHAPTER ONEAPT
- SG_007_CHAPTER 5APT
- SG_007_CHAPTER 6APT
- SG_007_CHAPTER 7APT
- SG_007_CHAPTER 8APT
- SG_007_CHAPTER 10APT
- SG_007_CHAPTER 3(1)APT
- SG_007_CHAPTER 3(2)APT
- SG_007_CHAPTER 4 (匯聚函式)APT函式
- 9/9
- 9
- Android Window 9問9答Android
- PHP列印9*9的乘法表PHP
- iZotope Ozone 9 Pro for Mac(臭氧9)Mac
- 4/9
- 6/9
- 6.17 9
- C#版--9*9乘法口訣表C#
- 2024/9/9工作日誌
- 9月9日—9月15日共有48款遊戲開測|GameRes遊戲GAM
- vivo X9s與榮耀9區別對比 vivo X9s和榮耀9哪個好?
- 華為Mate9和P9區別對比 華為Mate9和華為P9哪個好
- NEO改進協議提案9(NEP-9)協議
- Python_9_Codecademy_9_Lists and FunctionsPythonFunction
- 【轉載】—— SQL寫的9×9乘法表SQL
- 在Redhat9下安裝Oracle9RedhatOracle
- Internet explorer 9(IE9)將推出IE9
- RHEL 9 / Rocky Linux 9 上安裝 MySQLLinuxMySql
- 華為榮耀9與榮耀V9區別對比評測:榮耀9與榮耀V9哪個值得買?
- phpcmsV9PHP
- vue9Vue
- Java 9特性Java
- jbuilder9UI
- 程式碼9
- 畢設9
- 9.JDBCJDBC
- 5-9
- Homework9