2. 建立資料庫使用者時,resource許可權使得使用者可以建立資料庫物件,否則該使用者建立任何資料庫
物件時都會報錯:ora-01031。
3. 對於主外來鍵,主鍵刪除時有三種選擇:
(1)如果有引用它的外來鍵記錄存在,不允許刪除,這是預設情況(不指定on delete子句就是
這種情況)。
(2)如果有引用它的外來鍵記錄存在,刪除主表記錄及相應的從表記錄:on delete cascade。
(3)如果有引用它的外來鍵記錄存在,刪除主表記錄,設定表外鍵值為空:on delete set null
4. 建立表的時候,對於主鍵和唯一約束,oracle會自動建立乙個索引,索引名字由系統自動生成。
5. 索引段空間不會被重用,因此,索引的鍵值經過多次的insert,update,delete之後,空間利用效率會變
低,以下**用於檢查乙個索引的空間利用率:
analyze index idx_name validate structure;
select name,del_lf_rows,lf_rows,
round((del_lf_rows/(lf_rows+0.0000000001))*100) "freg percent" from index_stats;
如果索引的葉子行的碎片超過10%,考慮對索引進行重建:
alter index idx_name rebuild;
notes:index_stats只存放最後一次analyze index ... validate structure的結果。
6. 檢視所引用的基本發生變化時,檢視會變得無效,此時需要修改或重新編譯檢視:
alter view view_name compile;
檢視又稱為虛表,它並不實際儲存資料,因此它能幫助提高查詢速度,在生成報表時依賴於檢視
並不是明智的選擇,它能做的只是構造一些固定的查詢,使複雜的查詢語句看起來清晰一些。
檢視最主要的用途是用來限制使用者對資料的訪問。
7. 同義詞可以使得訪問另乙個使用者的物件,就像訪問自己的物件一樣。
以下為建立乙個同義詞的語句:
-- 首先將相應的許可權賦給另外乙個使用者
grant select,update,delete,insert on table1 to user_b;
-- 建立同義詞
create synonym table1 for user_a.table1;
-- 現在user_b訪問user_a.table1可以用如下語句:
select count(*) from table1;
建立以上同義詞的前提是user_b中沒有與table1同名的物件。
如果user_a和user_b位於不同的主機上,這時候還需要借助乙個資料庫鏈結,它是跨越不同數
據庫伺服器的橋梁。
-- 建立資料庫鏈結
create database link dblink_name connect to service_name using user_name
identified by password;
-- 建立同義詞
create synonym table1 for user_a.table1@dblink_name;
8. 觸發器的**不宜太長,整個觸發器作為乙個事務,不能在觸發器中新增commit或rollback
語句。9. 資料遷移
1>. sql server與oracle之間的資料遷移:
將oracle資料服務建成乙個odbc資料來源,在sql server伺服器上針對這個資料來源進行資料
匯入匯出。可能會有一些自動的資料轉換過程,這個要注意觀察一下。
2>. 將作業系統檔案形式的資料匯入oracle:
使用oracle自帶的工具:sqlldr
sqlldr userid/password control=controlfile.ctl
Oracle儲存過程小記
oracle儲存過程小記 dual 在oracle中,我們有時候會需要判斷乙個字串裡邊是否包含有某乙個串 首先,oracle為我們提供了instr這個函式 instr string1,string2 start position nth appearance 引數分析 string1,源字串,要在此...
iBatis學習小記
1.注意sqlmap.config檔案的sqlmap資源的順序 由於ibatis在初始化時,會將所有的資源檔案,按配置的順序讀入,如果資源的順序錯了,會引發以下異常。this sql map does not contain an resultmap named codenode.codetype ...
STL學習小記
2009 05 09 17 04 387人閱讀收藏 舉報stl standard template libarary 主要提供了三類工具 容器container,迭代器iterato,演算法algorithm.stl提供了兩類容器 序列容器 以線性序列方式組織物件 關聯容器 用關聯的鍵把物件組織在一...