日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Oracle知識點總結(一)

系統 2435 0

體系結構:

數據庫的體系結構是指數據庫的組成、工作過程與原理,以及數據在數據庫中的組織與管理機制。

體系結構包括:實例( instence ),數據庫文件( database ),用戶進程( user?process

,服務器進程( server?process ),以及其他文件(如參數文件( parameter?file ),密碼文件( password?file ),歸檔日志文件( archive?log?file )等)。

Oracle 服務器由數據庫文件和數據庫實例組成。

其中數據庫實例包括 SGA (即內存結構的集合)和管理數據庫的后臺進程。

數據庫文件包括三種:數據文件( data?files ),控制文件( control?files )和重做日志文件( redo?log?files )。

?

Oracle 中的 3 個主要內存區域是:

–?系統全局區域 (system?global?area SGA)-- 當數據庫實例啟動時會首先分配

–?程序全局區域 (program?global?area PGA)

–?用戶全局區域 (user?global?area UGA)

SGA 內存結構包括 :? 共享池( Shared?Pool ),數據緩沖區( Database?Buffer?Cache ),重做日志緩沖區( Redo?Log?Buffer?Cache )。共享池的作用:共享池由庫緩存和數據字典緩存組成。緩存和共享 SQL PL/SQL 代碼;數據緩沖區的作用: 存儲從數據文件中讀入的數據,提高查詢速度;重做日志緩沖區的作用:變化前和變化后的數據在寫入數據緩沖區前都會先寫入重做日志緩沖區,這樣在數據恢復時, Oracle 就知道哪些需要回滾。 日志數據首先產生于重做日志緩沖區,當重做日志緩沖區的日志數據達到一定數量時,由日志寫進程LGWR將日志數據寫入重做日志文件中。

PGA 是為單獨的服務器進程存儲私有數據的內存區域,只為各個服務器進程提供一個 PGA PGA 只能由他們的服務器進程訪問。

UGA 是用于存儲會話狀態的內存區域。 UGA 的位置依賴于服務器是運行在共享服務器模式中,還是專用服務器模式中。在專用服務器模式中, UGA 會在 PGA 中分配,只能夠由服務器進程訪問。

?

Oracle進程主要有用戶進程、服務器進程和后臺進程。

用戶進程是一個需要與Oracle服務器進行交互的程序。

服務器進程猶如一個中介,完成用戶的各種數據服務請求,而把數據庫服務器返回的數據發給客戶端。

后臺進程主要作用是協調好系統的性能。其主要包括進程監控進程(PMON,服務器進程的管理和維護)、系統監控進程(SMON,在數據庫出現故障時進行實例恢復)、數據庫寫進程(DBWR,主要負責將數據緩沖區內的數據寫到數據文件)、重做日志寫進程(LGWR,主要負責將重做日志緩沖區內的數據寫到重做日志文件)及檢查點進程(CKPT,其作用是保證所有修改過的數據庫緩沖區都被寫入數據庫文件)。以上5個進程也是數據庫啟動過程中必須啟動的。

?

數據庫啟動和關閉

數據庫的啟動3個狀態:

1:NOMOUNT?只打開數據庫實例?

2:MOUNT?打開實例并讀取控制文件?

3:OPEN?打開數據庫

按123順序啟動

數據庫的關閉3個狀態:

1:CLOSE?關閉數據庫

2:DISMOUNT?

3:SHUTDOWN?關閉數據庫實例

?

?

事務

事務的概念:事務是一組邏輯工作單元,它由一條或多條SQL語句組成。

事務的4個特性:原子性,一致性,隔離性和持久性

事務控制:commit,rollback

?

?

SQL語言

SQL語言分為數據定義語言(DDL)、數據操縱語言(DML)和數據控制語言(DCL)。

DDL用于定義SQL模式、基本表、視圖和索引的創建和撤消操作。常用命令有:CREATE、ALTER、DROP。

DML用于數據的插入、修改、刪除和查詢。常用命令有:INSERT、UPDATE、DELETE、SELECT。

DCL用于對基本表的授權、完整性規則的描述和事務的控制等。常用的命令有:GRANT、REVOKE、COMMIT、SAVEPOINT、ROLLBACK。

?

Char和varchar2兩種數據類型的區別:

在數據庫中char(n)表示固定長度n的字符串,當實際數據不足定義長度時,將使用空格補全右邊不足位,當實際數據的長度大于其固定長度時,Oracle將不允許數據存儲于對應列或者變量中,并拋出異常;

而varchar2(n)是可變長的字符串,意味著該列或變量的最大長度不大于n,但當實際數據小于n時,并不在其右端補齊空格。

?

delete和truncate的區別。

Delete是DML語句,在刪除數據時要記錄重做信息,且刪除數據后不釋放表空間,速度慢。Truncate是數據定義語言,執行后數據直接刪除且釋放表空間,不記錄日志信息,速度快。

?

?

?

?

PL/SQL語言

PL/SQL語言的敘述:

PL/SQL是一種塊結構的語言,它將一組語句放在一個塊中。構成PL/SQL程序的基本單元是邏輯塊(如過程、函數或匿名塊),每個邏輯塊對應要解決的問題或子問題。PL/SQL塊共分為3個部分,分別為聲明部分、可執行部分和異常處理部分。

?

屬性數據類型包括兩種,分別是%TYPE和%ROWTYPE。

1、%TYPE將某種數據類型的變量或列提供給其他變量。

其語法格式為:var1?table_name.column_name%TYPE;其中聲明了變量var1,它的數據類型與table_name表中的column_name字段的數據類型相同。

2、%ROWTYPE提供一種表示表中的某行的記錄類型。

???其語法格式為:var1?table_name%ROWTYPE;其中聲明了變量var1,可以用來存儲從table_name表中提取的一個記錄。

?

?

過程、函數、程序包

過程和函數的區別:過程沒返回值,而函數有返回值。

程序包是對相關過程、函數、變量、游標和異常等對象的封裝。

程序包由規范和主體兩部分組成。規范可以在沒有程序包主體的情況下存在,主體不能在沒有程序包規格說明的情況下存在。

?

?

游標和觸發器

游標的4種屬性:%Isopen?、%found、%notfound、%rowcount。

使用游標的 4 個步驟: 定義游標(declare)、打開游標(open)、循環取數據(fetch)、關閉游標(close)。

顯式游標和隱式游標在使用過程中的區別:顯示游標使用時要定義、隱式游標不需要定義,在上下文中的 dml 語句默認使用隱式游標。

?

觸發器定義:觸發器是當特定事件出現時自動執行的代碼塊。

觸發器與過程的區別:過程是由用戶或應用程序甚至是觸發器顯式調用的,而觸發器是由Oracle根據發生的事件而隱式激活的,它不能被直接調用執行。

觸發器的類型及其運行時機:

Oracle觸發器分為DML觸發器、模式(DDL或用戶事件)觸發器和數據庫級觸發器。

1:DML觸發器:當DML語句在表中發生時執行。DML語句包括以下3種類型:

a.語句級觸發器:無論受觸發語句影響的行數是多少,都只激活一次。

b.行級觸發器:每當觸發器語句影響表時就會激活行級觸發器,行級觸發器在被修改的每一行上執行一次。

c.INSTEAD?OF觸發器:允許用戶修改不能使用DML語句修改的視圖。INSTEAD?OF觸發器只可用于視圖,不可用于表。

2:模式(DDL或用戶事件)觸發器:在數據庫模式中執行DDL語句時激活。

3:數據庫(系統事件)觸發器:在發生LOGOFF(退出)、LOGON(登錄)、STARTUP(打開)、SHUTDOWN(關閉)數據庫和SERVERERROR(生成錯誤消息)等系統事件時執行。

?

?

數據庫對象(同義詞,序列,視圖,索引)

同義詞的定義:是現有對象的一個別名。

同義詞的作用:

1 :簡化 SQL 語句。 2 :隱藏對象的名稱和所有者。 3 :提供對對象的公共訪問。

同義詞的兩種類型:

1 :公有同義詞。 CREATE?public?synonym?emp_syn?FOR?SCOTT.emp;

2 :私有同義詞。 CREATE?synonym?emp?FOR?SCOTT.emp;

公有的同義詞只能建立在超級用戶下定義。

?

序列是用來生成唯一、連續的整數的數據庫對象。

在表中使用序列:

1.創建序列:

CREATE?SEQUENCE?sequence_name?[START?WITH?startnum]?[INCREMENT?BY?step];

2.創建表時使用序列:

CREATE?TABLE?table_name?(?uid?smallint?not?null,?...);

3.插入數據時使用序列:

INSERT?INTO?table_name?VALUES(sequence_name.NEXTVAL,?...);

?

?

視圖是從若干基本表和(或)其他視圖構造出來的虛表。

視圖和表的區別是:創建一個視圖時,只是把其視圖的定義存放在數據字典中,而不存儲視圖對應的數據,而表會存儲對應的數據。

視圖的目的和作用:篩選表中數據,簡化查詢語句,對表起到保護作用。

注:加 WITH?READ?ONLY? 選項可使視圖不允許 DML 操作?

Oracle知識點總結(一)


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 平陆县| 儋州市| 寿光市| 阿合奇县| 墨竹工卡县| 布拖县| 宁强县| 嘉黎县| 松滋市| 沅陵县| 舟山市| 克山县| 太原市| 尉犁县| 揭阳市| 垣曲县| 中牟县| 融水| 平昌县| 太仓市| 仁怀市| 衡阳市| 赫章县| 图木舒克市| 高要市| 获嘉县| 望谟县| 宁南县| 榆林市| 万宁市| 浦北县| 乐安县| 东兴市| 溧阳市| 济宁市| 鄂州市| 曲沃县| 台北市| 个旧市| 光山县| 本溪市|