Oracle基本知識

一個表空間只能屬於一個數據庫

每個數據庫最少有一個控制文件(建議3個,分別放在不同的磁盤上)

每個數據庫最少有一個表空間(SYSTEM表空間)

建立SYSTEM表空間的目的是儘量將目的相同的表存放在一起,以提高使用效率,只應存放數據字典

每個數據庫最少有兩個聯機日誌組,每組最少一個聯機日誌文件

一個數據文件只能屬於一個表空間

一個數據文件一旦被加入到一個表空間中,就不能再從這個表空間中移走,也不能再加入到其他表空間中

建立新的表空間需要建立新的數據文件

數據文件被ORACLE格式化爲ORACLE塊,Oracle9i以前版本中,ORACLE塊的大小是在第一次創建數據庫時設定的,並且以後不能改變,要想改變,只能重建數據庫

一個段segment只能屬於一個表空間,但可以屬於多個數據文件

一個區extent只能屬於一個數據文件,即區間(extent)不能跨越數據文件

PCTFREE和PCTUSED總和不能大於等於100

單獨一個事務不能跨越多個回滾段

索引表不含ROWID值

擁有不同大小的回滾段沒有任何益處

COMMIT後,數據不一定立即寫盤(數據文件)

一個事務即使不被提交,也會被寫入到重做日誌中。

Oracle 8.0.4中,在初始安裝時建立的缺省數據庫,實例名爲ORCL

一個塊的最大長度爲16KB(有2K、4K、8K、16K)

每個數據庫最大文件數(按塊大小)
2K塊20000個文件
4K塊40000個文件
8K塊或以上 65536個文件

oracle server可以同時啓動多個數據庫

一套操作系統上可以安裝多個版本的ORACLE數據庫系統(UNIX可以,NT不可以)

一套ORACLE數據庫系統中可以有多個ORACLE數據庫及其相對應的實例

每個ORACLE數據庫擁有一個數據庫實例(INSTANCE)(OPS除外)所以,一套操作系統上同時可以有多個oracle數據庫實例啓動 

        //Oracle8 數據類型
char(n) n=1 to 2000字節 定長字符串,n字節長,如果不指定長度,缺省爲1個字節長(一個漢字爲2字節)
varchar2(n) n=1 to 4000字節 可變長的字符串,具體定義時指明最大長度n,
這種數據類型可以放數字、字母以及ASCII碼字符集(或者EBCDIC等數據庫系統接受的字符集標準)中的所有符號。
如果數據長度沒有達到最大值n,Oracle 8i會根據數據大小自動調節字段長度,
如果你的數據前後有空格,Oracle 8i會自動將其刪去。VARCHAR2是最常用的數據類型。
可做索引的最大長度3209。
number(m,n) m=1 to 38
n=-84 to 127 可變長的數值列,允許0、正值及負值,m是所有有效數字的位數,n是小數點以後的位數。
如:number(5,2),則這個字段的最大值是99,999,如果數值超出了位數限制就會被截取多餘的位數。
如:number(5,2),但在一行數據中的這個字段輸入575.316,則真正保存到字段中的數值是575.32。
如:number(3,0),輸入575.316,真正保存的數據是575。  
date 無 從公元前4712年1月1日到公元4712年12月31日的所有合法日期,
Oracle 8i其實在內部是按7個字節來保存日期數據,在定義中還包括小時、分、秒。
缺省格式爲DD-MON-YY,如07-11月-00 表示2000年11月7日。  
long 無 可變長字符列,最大長度限制是2GB,用於不需要作字符串搜索的長串數據,如果要進行字符搜索就要用varchar2類型。
long是一種較老的數據類型,將來會逐漸被BLOB、CLOB、NCLOB等大的對象數據類型所取代。  
raw(n) n=1 to 2000 可變長二進制數據,在具體定義字段的時候必須指明最大長度n,Oracle 8i用這種格式來保存較小的圖形文件或帶格式的文本文件,如Miceosoft Word文檔。
raw是一種較老的數據類型,將來會逐漸被BLOB、CLOB、NCLOB等大的對象數據類型所取代。  
long raw 無 可變長二進制數據,最大長度是2GB。Oracle 8i用這種格式來保存較大的圖形文件或帶格式的文本文件,如Miceosoft Word文檔,以及音頻、視頻等非文本文件。
在同一張表中不能同時有long類型和long raw類型,long raw也是一種較老的數據類型,將來會逐漸被BLOB、CLOB、NCLOB等大的對象數據類型所取代。  
blob
clob
nclob 無 三種大型對象(LOB),用來保存較大的圖形文件或帶格式的文本文件,如Miceosoft Word文檔,以及音頻、視頻等非文本文件,最大長度是4GB。
LOB有幾種類型,取決於你使用的字節的類型,Oracle 8i實實在在地將這些數據存儲在數據庫內部保存。
可以執行讀取、存儲、寫入等特殊操作。  
bfile 無 在數據庫外部保存的大型二進制對象文件,最大長度是4GB。
這種外部的LOB類型,通過數據庫記錄變化情況,但是數據的具體保存是在數據庫外部進行的。
Oracle 8i可以讀取、查詢BFILE,但是不能寫入。
大小由操作系統決定。  

SQL(Structured Query Language)語句分類
DDL、數據定義語言:create、alter、drop、truncate(創建、修改結構、刪除、截斷)(其他:rename)
DML、數據操縱語言:insert、delete、select、update(增、刪、查、改)
DCL、數據控制語言:grant、revoke(授權、回收)、set role
事務控制:commit、rollback、savepoint(其他:lock table、set constraint(s)、set transaction)
審計控制:audit、noaudit
系統控制:alter system
會話控制:alter session
其他語句:comment(添加註釋)、explain plan、analyze(收集統計)、validate、call

//SQL*Plus中運行的幾種命令
1. SQL*Plus命令          一般用來格式化查詢輸出、設置環境、編輯存儲SQL命令和PL/SQL塊
  SQL> show user
  SQL> select user from dual;
2. SQL命令
  SQL> select * from tab;
3. PL/SQL塊
  SQL> BEGIN
  DBMS_OUTPUT.PUT_LINE('Hello World!');
  END;

//Oracle中實現某一字段自動增加1
create sequence 序列名
increment by 1
start with 1
maxvalue 999999999
cycle;
當向表中插入數據時,SQL語句寫法如下:
SQL> insert into 表名 values(序列名.nextval,列1值,列2值);

//如何用SQL生成SQL批處理文件?
軟件環境:
1、Windows NT4.0+ORACLE 8.0.4
2、ORACLE安裝路徑爲:C:\ORANT
問題提出:
1、用戶需要對數據庫用戶下的每一張表都執行一個相同的SQL操作,這時,一遍、一遍的鍵入SQL語句是很麻煩的
實現方法:
SQL> set heading off --禁止輸出列標題
SQL> set feedback off --禁止顯示最後一行的計數反饋信息
列出當前用戶下所有同義詞的定義,可用來測試同義詞的真實存在性
select 'desc '||tname from tab where tabtype='SYNONYM';
查詢當前用戶下所有表的記錄數
select 'select '''||tname||''',count(*) from '||tname||';' from tab where tabtype='TABLE';
把所有符合條件的表的select權限授予爲public
select 'grant select on '||table_name||' to public;' from user_tables where 《條件》;
刪除用戶下各種對象
select 'drop '||tabtype||' '||tname from tab;
刪除符合條件用戶
select 'drop user '||username||' cascade;' from all_users where user_id>25;
快速編譯所有視圖
----當在把數據庫倒入到新的服務器上後(數據庫重建),需要將視圖重新編譯一遍,
----因爲該表空間視圖到其它表空間的表的連接會出現問題,可以利用PL/SQL的語言特性,快速編譯。
SQL> SPOOL ON.SQL
SQL> SELECT'ALTER VIEW '||TNAME||' COMPILE;' FROM TAB;
SQL> SPOOL OFF
然後執行ON.SQL即可。
SQL> @ON.SQL
當然,授權和創建同義詞也可以快速進行,如:
SQL> SELECT 'GRANT SELECT ON '||TNAME||' TO 用戶名;' FROM TAB;
SQL> SELECT 'CREATE SYNONYM '||TNAME||' FOR 用戶名.'||TNAME||';' FROM TAB (完)


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章