一個表空間隻能屬于一個資料庫
每個資料庫起碼有一個節制檔案(首倡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
版權聲明:
原創作品,允許轉載,轉載時請務必以超連結方法标明文章 原始情由 、作者資訊和本聲明。否則将追查功令責任。