oracle完全學(xué)習(xí)手冊_第1頁
oracle完全學(xué)習(xí)手冊_第2頁
oracle完全學(xué)習(xí)手冊_第3頁
oracle完全學(xué)習(xí)手冊_第4頁
oracle完全學(xué)習(xí)手冊_第5頁
已閱讀5頁,還剩64頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、Word文檔數(shù)據(jù)庫表空間表空間說明system系統(tǒng)表空間,用于存儲系統(tǒng)的數(shù)據(jù)字典、系統(tǒng)的管理信息和 用戶數(shù)據(jù)表等sysaux輔助系統(tǒng)表空間。用于減少系統(tǒng)表空間的負(fù)荷,提高系統(tǒng)作 業(yè)效率。該表空間由Oracle系統(tǒng)自動維護(hù),一般不用于存儲用戶數(shù)據(jù)temp臨時表空間。用于存儲臨時的數(shù)據(jù),例如存儲排序時產(chǎn)生的 臨時數(shù)據(jù)。一般情況下,數(shù)據(jù)庫中的所有用戶都使用 temp作為默認(rèn)的臨時表空間un dotbs1撤銷表空間。用于在自動撤銷管理方式下存儲撤銷信息。在 撤銷表空間中,除了回退段以外,不能建立任何其他類 型的段。所以,用戶不可以在撤銷表空間中創(chuàng)建任何數(shù) 據(jù)庫對象,usersj戶表空間。用 于存儲永久

2、性用Oracle體系結(jié)構(gòu)Oracle數(shù)據(jù)庫從存儲結(jié)構(gòu)上可以分為物理存儲結(jié)構(gòu)與邏輯存儲結(jié)構(gòu),從實(shí)例結(jié)構(gòu)上可以分為內(nèi)存結(jié)構(gòu)與進(jìn)程結(jié)構(gòu)。Oracle的物理存儲結(jié)構(gòu)是由存儲在磁盤中的操作系統(tǒng)文件所組成的,Oracle在運(yùn)行時需要使用這些文件。一般,Oracle數(shù)據(jù)庫在物理上主要由3種類型的文件組成,分別是數(shù)據(jù)文件(*dbf )、控制文件(*.ctl )和重做日志文件(*log)o 數(shù)據(jù)文件數(shù)據(jù)文件(Data File )是指存儲數(shù)據(jù)庫數(shù)據(jù)的文件。數(shù)據(jù)庫中的所有數(shù)據(jù)最終都保存在數(shù)據(jù)文件中,例如,表中的記錄和索引等。如果數(shù)據(jù)文件 中的某些數(shù)據(jù)被頻繁訪問,則這些數(shù)據(jù)會被存儲在內(nèi)存的緩沖區(qū)中。讀取 數(shù)據(jù)時,O

3、racle系統(tǒng)會首先從內(nèi)存的數(shù)據(jù)緩沖區(qū)中查找相關(guān)數(shù)據(jù)信息,如 果找不到,則從數(shù)據(jù)庫文件中把數(shù)據(jù)讀取出來,存放到內(nèi)存的數(shù)據(jù)緩沖區(qū) 中,供查詢使用;存儲數(shù)據(jù)時,修改后的數(shù)據(jù)信息,也是先存放在內(nèi)存的 數(shù)據(jù)緩沖區(qū)中,在滿足寫入條件(例如執(zhí)行提交操作)時,由Oracle的后臺進(jìn)程DBWn將數(shù)據(jù)寫入數(shù)據(jù)文件。特點(diǎn)數(shù)據(jù)文件一般有以下幾個特點(diǎn):一個表空間由一個或多個數(shù)據(jù)文件組成。一個數(shù)據(jù)文件只對應(yīng)一個數(shù)據(jù)庫。而一個數(shù)據(jù)庫通常包含多個數(shù)據(jù)文件。 數(shù)據(jù)文件可以通過設(shè)置其參數(shù),實(shí)現(xiàn)其自動擴(kuò)展的功能。如果想要了解數(shù)據(jù)文件的信息,可以查詢數(shù)據(jù)字典dba_data_files和v$datafile。數(shù)據(jù)字典介紹Oracl

4、e數(shù)據(jù)字典(Data Dictionary )是存儲在數(shù)據(jù)庫中的所有對象信息 的知識庫,Oracle數(shù)據(jù)庫管理系統(tǒng)使用數(shù)據(jù)字典獲取對象信息和安全信 息,而用戶和數(shù)據(jù)庫系統(tǒng)管理員則用數(shù)據(jù)字典來查詢數(shù)據(jù)庫信息。Oracle數(shù)據(jù)字典保存有數(shù)據(jù)庫中對象和段的信息,例如表、視圖、索引、 包、存儲過程以及與用戶、權(quán)限、角色、審計和約束等相關(guān)的信息。數(shù)據(jù)字典視圖類型視圖類型說明USER視圖USER視圖的名稱以user_為前綴,用來記錄用戶對象的信息。 例如user_tables視圖ALL視圖ALL視圖的名稱以all_為前綴,用來記錄用戶對象的信息以及 被授權(quán)訪問的對象信息。例如all synonyms視圖D

5、BA視圖DBA視圖的名稱以dba_為前綴,用來記錄數(shù)據(jù)庫實(shí)例的所有 對象的信息。例如 dba tables視圖V$視圖V$視圖的名稱以v$為前綴,用來記錄與數(shù)據(jù)庫活動相關(guān)的性 能統(tǒng)計動態(tài)信息。例如v$datafile視圖GV$視圖GV$視圖的名稱以gv$為前綴,用來記錄分布式環(huán)境下所有實(shí) 例的動態(tài)信息。例如gv$lock視圖基本的數(shù)據(jù)字典字典名稱說明dba tables所有用戶的所有表的信息dba tab colu mns所有用戶的表的字段信息dba views所有用戶的所有視圖信息dba s ynonyms所有用戶的同義詞信息dba sequences所有用戶的序列信息dba c on st

6、ra ints所有用戶的表的約束信息dba_i ndexes所有用戶的表的索引簡要信息dba_i nd_colu mns所有用戶的索引的字段信息與數(shù)據(jù)庫組件相關(guān)的數(shù)據(jù)字典組件數(shù)據(jù)字典中的表或 視圖說明數(shù)據(jù)庫v$datafile記錄系統(tǒng)的運(yùn)行情況表空間dba_tablespaces系統(tǒng)表空間的基本信息dba_free_space系統(tǒng)表空間的空閑空間的信息控制文件v$c on trolfile系統(tǒng)控制文件的基本信息v$c on trolfile_record系統(tǒng)控制文件中記錄文檔段的section信息v$parameter系統(tǒng)各參數(shù)的基本信息數(shù)據(jù)文件dba data files系統(tǒng)數(shù)據(jù)文件以及表空

7、間的基本信息v$filestat來自控制文件的數(shù)據(jù)文件信息v$datafile header厶已錄數(shù)據(jù)文件頭部分的基本信息常用動態(tài)性能視圖視圖名稱說明v$fixed table顯示當(dāng)前發(fā)行的固定對象的說明v$in sta nee顯示當(dāng)前實(shí)例的信息v$latch顯示鎖存器的統(tǒng)計數(shù)據(jù)v$librarycache顯示有關(guān)庫緩存性能的統(tǒng)計數(shù)據(jù)v$rollstat顯示聯(lián)機(jī)的回滾段的名字v$rowcache顯示活動數(shù)據(jù)字典的統(tǒng)計v$sga顯示有關(guān)系統(tǒng)全局區(qū)的總結(jié)信息v$sgastat顯示有關(guān)系統(tǒng)全局區(qū)的詳細(xì)信息v$sort usage顯示臨時段的大小及會話v$sqlarea顯示SQL區(qū)的SQL信息SQLP

8、Ius連接數(shù)據(jù)庫SQL*PIus 工具SQL*Plus工具主要用于數(shù)據(jù)查詢和數(shù)據(jù)處理。利用SQL*Plus可以將SQL和Oracle專有的 PL/SQL結(jié)合起來進(jìn)行數(shù)據(jù)查詢和處理。SQL*Plus工具可以實(shí)現(xiàn)以下功能:連接數(shù)據(jù)庫,完成數(shù)據(jù)庫管理。對數(shù)據(jù)表可以執(zhí)行插入、修改、刪除、查詢操作、以及執(zhí)行SQL、PL/SQL塊。查詢結(jié)果的格式化、運(yùn)算處理、保存、打印以及輸出Web格式。顯示任何一個表的字段定義,并與終端用戶交互。運(yùn)行存儲在數(shù)據(jù)庫中的子程序或包。啟動/停止數(shù)據(jù)庫實(shí)例。SQL*Plus連接與斷開數(shù)據(jù)庫1 .啟動SQL*Plus,連接到默認(rèn)數(shù)據(jù)庫2 .從命令行連接數(shù)據(jù)庫3 .使用SQL*Pl

9、us命令連接與斷開數(shù)據(jù)庫在SQL*Plus中輸入 SQL語句時,一旦執(zhí)行該語句,則SQL*Plus會將該語句保存到緩沖區(qū)中,該語句不再獲得焦點(diǎn),也就不能再接受編輯操作。如果還需要對緩沖區(qū)中的語句進(jìn)行編輯操作,則可以使用SQL*Plus語句實(shí)現(xiàn)。Oracle數(shù)據(jù)庫提供了一些SQL*Plus語句,這些語句由相應(yīng)的命令實(shí)現(xiàn),例如 APPEND (可以簡寫為A)命令。如下表所示SQL*Plus 語句命令說明APPEND text將text附加到當(dāng)前行之后CHANGE /old/new將當(dāng)前行中的 old替換為newCLEAR BUFFER清除緩存區(qū)中的所有行l(wèi)NPUT text插入指定的文本textD

10、EL m n刪除從第 m行到第n行之間的命令行LIST n列出第n行RUN或 /顯示緩沖區(qū)中保存的語句,并運(yùn)行這些語句n將第n行作為當(dāng)前行n text使用text文本替代第n行信息0 text在第一行之前插入text文本創(chuàng)建簡單報表報表所謂報表就是用表格、圖表等格式來動態(tài)顯示數(shù)據(jù)。計算機(jī)上的報表的 主要特點(diǎn)是數(shù)據(jù)動態(tài)化,格式多樣化,并且實(shí)現(xiàn)報表數(shù)據(jù)和報表格式的完 全分離,用戶可以只修改數(shù)據(jù),或者只修改格式。為報表設(shè)置頁眉和頁腳命令說明TTITLE printspec text | variable | OFF | ON 指定出現(xiàn)在報表中每一個頁面頂 端的頁眉。其中 printspec的可選 值

11、有 LEFT、CENTER、RIGHT、BOLD、FORMAT text、COL n、 SKIP n和 TAB n。 ON 選項(xiàng)表示 啟用設(shè)置;OFF選項(xiàng)表示取消設(shè) 置。還可以帶有用戶變量(內(nèi)容 由系統(tǒng)來維護(hù)),如SQL.PNO頁 號、SQL.LNO行號等BTITLE pri ntspec text | variable 指定出現(xiàn)在報表中每一個頁面底端的頁腳OFF | ON 計算小計BREAK命令和COMPUTE命令BREAK 禾口 COMPUTE 命令,用BREAK命令,可以讓 SQL*Plus根COMPUTE在執(zhí)行查詢操作或創(chuàng)建報表時,可以使用 來對輸出的結(jié)果進(jìn)行統(tǒng)計計算。其中使用據(jù)列值的

12、范圍分隔輸出結(jié)果,可以使得重復(fù)的列值不進(jìn)行顯示 子句可以讓 SQL*Plus計算一列的值,并在最后輸出顯示。用法如下:BREAK ON column_name SKIP nCOMPUTE fun ctio n LABEL label OF column_name ON break_colu mn_n ame語法說明如下:column_name 表示對哪一列執(zhí)行操作。SKIP n表示在指定列的值變化之前插入n個空行。function 表示執(zhí)行的操作,例如SUM (求和)、MAXIMUM (最大值)、MINIMUM (最小值)、AVG (平均值)、COUNT (非空值的列數(shù))、NUMBER(行數(shù))

13、、VARIANCE (方差)以及 STD (均方差)等。LABEL指定顯示結(jié)果時的文本信息。格式化列的顯示效果COLUMN命令可以對列的顯示效果,包括列標(biāo)題和列數(shù)據(jù),進(jìn)行格式化。該命令的語法如下:COLUMN column_name | ALIAS alias optio ns 語法說明如下:column_nameALIAS alias 指定扌曰疋歹列名。亡要格式化的列的別名。opti ons 指定用OPTION選項(xiàng)于格式化列或別名的一個或者多個選項(xiàng)。選項(xiàng)說明FORMAT format將列或列名的顯示格式設(shè)置為由format字符串指定的格式,format可以使用的格式如下表專業(yè)資料,千位分隔符

14、” 一9,999SQL*Plus 命令命令說明HEIP topic查看命令的使用方法tcpic表示需要查看的命令名稱。例如:HELPDESCHOST使用該命令可以從SQL*Plus 環(huán)境切換到操作系統(tǒng)環(huán)境,以便執(zhí)行操 作系統(tǒng)命令HOST操作系統(tǒng)命令執(zhí)行操作系統(tǒng)命令,例如:HOSTno tepad.exe小數(shù)點(diǎn)位置9999.99清除屏幕內(nèi)容CLEAR SCREENSHOW ALL | USER | SGA | ERRORS | RELEASE| PARAMETERS 查看SQL*Plus的所有系統(tǒng)變量值信息、當(dāng)前是哪個用戶在使用SQL*Plus、顯示 SGA大小、查 看錯誤信息、數(shù)據(jù)庫版本信息、

15、RIfrz4rrr土厶 /1/DESCRIBE系統(tǒng)u初始化參數(shù)信息查看對象的結(jié)構(gòu),這里的對象可以是表、視圖、存儲過程、函數(shù)和包等。例如:DESC dualDESCRIBE 命令DESCRIBE命令語法如下:DESCRIBE schema. object connect_identifier 語法說明如下:DESCRIBE : DESCRIBE 可以簡寫為 DESC。 schema :指定對象所屬的用戶名,或者所屬的用戶模式名稱。 object :表示對象的名稱,如表名或視圖名等。co nn ect_ide ntifier :表示數(shù)據(jù)庫連接字符串。使用EDIT命令編輯緩沖區(qū)內(nèi)容使用EDIT命令,

16、可以將 SQL*Plus緩沖區(qū)的內(nèi)容復(fù)制到一個名為 afiedt.buf的文件中,然后啟動操作系統(tǒng)中默認(rèn)的編輯器打開這個文件, 并且文件內(nèi)容能夠進(jìn)行編輯。在Windows操作系統(tǒng)中,默認(rèn)的編輯器是Notepad (記事本)。EDIT file_name 其中,file_name 默認(rèn)為 afiedt.buf,也可以指定一個其 他的文件。使用SPOOL命令復(fù)制輸出結(jié)果到文件使用SPOOL命令實(shí)現(xiàn)將 SQL*Plus中的輸出結(jié)果復(fù)制到一個指定的文件 中,或者把查詢結(jié)果發(fā)送到打印機(jī)中,直到使用SPOOL OFF命令為止。SPOOL命令的語法如下:SPOOL file_name CREATE | RE

17、PLACE | APPEND | OFF | OUT file_name 指定一個操作系統(tǒng)文件。CREATE創(chuàng)建一個指定的 file_name文件。REPLACE如果指定的文件已經(jīng)存在,則替換該文件。 APPEND將內(nèi)容附加到一個已經(jīng)存在的文件中。OFF 停止將SQL*Plus中的輸出結(jié)果復(fù)制到 filename文件中,并關(guān) 閉該文件。OUT 啟動該功能,將SQL*Plus中的輸出結(jié)果復(fù)制到filename文件。使用GET命令讀取文件內(nèi)容到緩沖區(qū)使用GET命令的語法如下:GET FILE file_name LIST | NOLIST 語法說明如下:file_name 表示一個指定文件,將該文

18、件的內(nèi)容讀入SQL*Plus緩沖區(qū)中。LIST列出緩沖區(qū)中的語句。 NOLIST 不列出緩沖區(qū)中的語句。設(shè)置一行顯示的字符數(shù)量使用LINESIZE命令可以設(shè)置一行數(shù)據(jù)可以容納的字符數(shù)量,默認(rèn)數(shù)量為80。如果LINESIZE的值比較小,那么表中一行數(shù)據(jù),有可能在屏幕上需 要分多行顯示;如果LINESIZE的值設(shè)置大一些,一行數(shù)據(jù)就可以在屏幕的一行中進(jìn)行顯示了。LINESIZE命令的語法如下:SET LINESIZE n其中,n表示屏幕上一行數(shù)據(jù)可以容納的字符數(shù)量,有效范圍是1 -32767。設(shè)置一頁顯示多少行數(shù)據(jù)使用PAGESIZ命令,可以設(shè)置每一頁的大小,從而控制每一頁顯示的 數(shù)據(jù)量。PAGE

19、SIZE命令的語法如下:SET PAGESIZE n其中,參數(shù)n表示每一頁大小的正整數(shù),最大值可以為50,000,默認(rèn)值為14。頁并不是僅僅由輸出的數(shù)據(jù)行構(gòu)成的,而是由SQL*Plus顯示到屏幕上的所有輸出結(jié)果構(gòu)成,包括標(biāo)題和空行等。使用SAVE命令將緩沖區(qū)內(nèi)容保存到文件使用SAVE命令可以將當(dāng)前緩沖區(qū)的內(nèi)容保存到文件中,這樣,即使緩沖區(qū)中的內(nèi)容被覆蓋, 也保留有前面的執(zhí)行語句。SAVE命令的語法如下:SAVE FILE file_name CREATE | REPLACE | APPEND語法說明如下:file_name 表示將 SQL*Plus緩沖區(qū)的內(nèi)容保存到由file_name指定的文

20、件中。CREATE表示創(chuàng)建一個file_name文件,并將緩沖區(qū)中的內(nèi)容保存到 該文件。該選項(xiàng)為默認(rèn)值。APPEND如果filename文件已經(jīng)存在, 則將緩沖區(qū)中的內(nèi)容,追加到file_name文件的內(nèi)容之后;如果該文件不存在,則創(chuàng)建該文件。REPLACE如果file_name文件已經(jīng)存在,則覆蓋 file_name文件的內(nèi)容;如果該文件不存在,則創(chuàng)建該文件。使用SPOOL命令復(fù)制輸出結(jié)果到文件使用SPOOL命令實(shí)現(xiàn)將 SQL*Plus中的輸出結(jié)果復(fù)制到一個指定的文件 中,或者把查詢結(jié)果發(fā)送到打印機(jī)中,直到使用SPOOL OFF命令為止SPOOL命令的語法如下:SPOOL file_name

21、 CREATE | REPLACE | APPEND | OFF | OUT file_name 指定一個操作系統(tǒng)文件。CREATE創(chuàng)建一個指定的 file_name文件。REPLACE如果指定的文件已經(jīng)存在,則替換該文件 APPEND將內(nèi)容附加到一個已經(jīng)存在的文件中。OFF 停止將SQL*Plus中的輸出結(jié)果復(fù)制到 filename文件中,并關(guān) 閉該文件。OUT 啟動該功能,將SQL*Plus中的輸出結(jié)果復(fù)制到 filename文件使用START命令讀取并運(yùn)行文件內(nèi)容START命令可以讀取文件中的內(nèi)容到緩沖區(qū)中,然后在SQL*Plus中運(yùn)行這些內(nèi)容。START命令的語法如下:START ur

22、l | file_name 語法說明如下:url 用來指定一個 URL 地址,例如 http:/host.domain/script.sql 。 file_name指定一個文件。該命令將file_name 文件的內(nèi)容讀入SQL*Plus緩沖區(qū)中,然后運(yùn)行緩沖區(qū)中的內(nèi)容。使用&符號表示臨時變量在Oracle數(shù)據(jù)庫中,可以使用變量來編寫通用的SQL語句,在運(yùn)行 SQL語句時,為變量輸入值,就會在SQL語句中將變量替換成這些值。臨時變量只在使用它的 SQL語句中有效,變量值不能保留。臨時變量也被稱為替換變量。在 SQL語句中,如果在某個變量前面使用了&符號,那么就表示該變量是一個臨時

23、變量。執(zhí)行SQL語句時,系統(tǒng)會提示用戶為該變量提供一個具體的數(shù)據(jù)。使用&&符號表示臨時變量在SQL語句中,如果希望重新使用某個變量并且不希望重新提示輸入 值,那么可以使用 &&符號來定義臨時變量。SET VERIF 和 SET DEFINE 命令在使用臨時變量時,還可以使用SET VERIF命令和SET DEFINE命令,其中:SET VERIFY ON | OFF 用來指定是否輸出原值和新值信息。SET DEFINE用于指定一個除字符 &之外的字符,作為定義變量的字符。已定義變量已定義變量是指具有明確定義的變量,該變量的值會一直保留到被顯式地刪除、重定

24、義或退出SQL*Plus為止。在SQL語句中,可以在使用變量之前對變量進(jìn)行定義,然后在同一個SQL語句中可以多次使用這個變量。定義變量,可以使用DEFINE或ACCEPT命令;刪除變量,可以使用UNDEFINE命令。使用DEFINE命令命令說明DEFINE顯示所有的已定義變量DEFINE variable顯示指定變量的名稱、值和其數(shù)據(jù)類型DEFINE variable = value創(chuàng)建一個CHAR類型的用戶變量 ,并且為該變量賦初始值使用ACCEPT命令使用ACCEPT命令也可以定義變量,并且定制一個用戶提示,用于提示 用戶輸入指定變量的數(shù)據(jù)。在定義變量時,可以明確地指定該變量是 NUMBE

25、R還是DATE等數(shù)據(jù)類型。為了安全性的原因,還可以將用戶輸 入的信息隱藏起來。ACCEPT命令的語法如下:ACCEPT variable datatype FORMAT format DEFAULT default PROMPT text | NOPRQMPT HIDE 語法說明如下:variable 用于一個指定接收值的變量。如果該名稱的變量不存在, 那么SQL*Plus自動創(chuàng)建該變量。datatype 指定變量的 數(shù)據(jù)類型,可以使用 的類型有CHAR、 NUMBER、DATE、BINARY_FLOA 和 BINARY_DOUBL °E 默認(rèn)的數(shù) 據(jù)類型為CHAR。而DATE類型的

26、變量實(shí)際上也是以CHAR變量存儲的。FORMAT 指定變量的格式,包括A15( 15個字符)、9999 (一個 4位數(shù)字)和 DD-MON-YYY 丫(日期)。DEFAULT用來為變量指定一個默認(rèn)值。 PROMPT用于表示在用戶輸入數(shù)據(jù)之前顯示的文本消息。HIDE表示隱藏用戶為變量輸入的值。修改表空間中數(shù)據(jù)文件的自動擴(kuò)展性在創(chuàng)建表空間時,可以設(shè)置數(shù)據(jù)文件的自動擴(kuò)展性。在為表空間增加新 的數(shù)據(jù)文件時,也可以設(shè)置新數(shù)據(jù)文件的自動擴(kuò)展性。而對于已創(chuàng)建的 表空間中的已有數(shù)據(jù)文件,則可以使用ALTER DATABAS語E句修改其自動擴(kuò)展性,其語法如下:ALTER DATABASE DATAFILE fi

27、le_name AUTOEXTEND OFF | ONNEXT number K | M MAXSIZE UNLIMITED | number K | M 修改表空間中數(shù)據(jù)文件的狀態(tài)數(shù)據(jù)文件的狀態(tài)主要有3種:ONLINE、OFFLINE和口 OFFLINE DRO。設(shè)置數(shù)據(jù)文件狀態(tài)的語法如下:ALTER DATABASEDATAFILE file_name ONLINE | OFFLINE | OFFLINE DROP其中,ONLINE表示聯(lián)機(jī)狀態(tài),此時數(shù)據(jù)文件可以使用;OFFLINE表示脫機(jī)狀態(tài),此時數(shù)據(jù)文件不可使用,用于數(shù)據(jù)庫運(yùn)行在歸檔模式下的情 況;OFFLINE DRO則會刪除數(shù)據(jù)文件

28、,與OFFLINE 一樣用于設(shè)置數(shù)據(jù)文 件不可用,但它用于數(shù)據(jù)庫運(yùn)行在非歸檔模式下的情況。將數(shù)據(jù)文件設(shè)置為 OFFLINE狀態(tài)時,不會影響到表空間的狀態(tài);但是將 表空間設(shè)置為 OFFLINE狀態(tài)時,屬于該表空間的所有數(shù)據(jù)文件都被設(shè)置為 OFFLINE 狀態(tài)。移動表空間中的數(shù)據(jù)文件數(shù)據(jù)文件是存儲于磁盤中的物理文件,它的大小受到磁盤大小的限制。 如果數(shù)據(jù)文件所在的磁盤空間不夠,則需要將該文件移動到新的磁盤中保 存?!纠恳苿?myspace表空間中數(shù)據(jù)文件 myspace02.dbf的步驟如下:(1)修改 myspace表空間的狀態(tài)為 OFFLINE,如下:ALTER TABLESPACE mys

29、pace OFFLINE;(2) 在操作系統(tǒng)中,將磁盤中的myspace02.dbf文件移動到新的目錄中, 例如移動到 F:oraclefile目錄中。文件的名稱也可以修改,例如修改為 myspace03.dbf。3)使用 ALTER TABLESPA 語句,將 myspace表空間中 myspace02.dbf文件的原名稱與路徑修改為新名稱與路徑,如下:ALTER TABLESPACE myspaceRENAME DATAFILE 'E:appAdmi nistratororadataorclmyspace02.dbf'TO 'F:oraclefilemyspace0

30、3.dbf'(4)修改 myspace表空間的狀態(tài)為 ONLINE,如下:ALTER TABLESPACE myspace ONLINE;增加表空間大小創(chuàng)建表空間時,必需在物理磁盤上為表空間創(chuàng)建數(shù)據(jù)文件。數(shù)據(jù)文件的 大小決定了創(chuàng)建的表空間的大小。構(gòu)成表空間的數(shù)據(jù)文件可以位于不同的物理磁盤上, 表空間的大小就等于不同物理磁盤上所有數(shù)據(jù)文件的大小之 和。如果在使用表空間的過程中,出現(xiàn)表空間不足的情況,那么就需要增加 表空間的大小,具體實(shí)現(xiàn)時,可以采用增加數(shù)據(jù)文件的大小,也可以增加 一個新的數(shù)據(jù)文件來增大表空間。修改表空間中數(shù)據(jù)文件的大小修改數(shù)據(jù)文件需要使用ALTER DATABA 語E句,

31、其語法如下:ALTER DATABASE DATAFILE file_name RESIZE newsize K | M;語法說明如下:file_name數(shù)據(jù)文件的名稱與路徑。RESIZE newsize 修改數(shù)據(jù)文件的大小為newsize。增加表空間的數(shù)據(jù)文件增加表空間的大小,除了可以修改其對應(yīng)的數(shù)據(jù)文件的大小以外,還可以選擇為其增加新的數(shù)據(jù)文件。增加新的數(shù)據(jù)文件需要使用ALTERTABLESPAC語E句,其語法如下:ALTER TABLESPACE tablespace_nameADD DATAFILEfile_name SIZE number K | MAUTOEXTEND OFF |

32、ONNEXT number K | M MAXSIZE UNLIMITED | number K | M +* ? +77重命名表空間在需要的情況下,可以對表空間的名稱進(jìn)行修改。修改表空間的名稱,不會影響到表空間中的數(shù)據(jù)。但不能修改系統(tǒng)表空間system與sysaux的名稱。重命名表空間的語法如下:ALTER TABLESPACE tablespace_name RENAME TO new_tablespace_name;注意:如果表空間的狀態(tài)為OFFLINE,則無法重命名該表空間。 刪除表空間刪除表空間需要使用DROP TABLESPA語E句,其語法如下:DROP TABLESPACE ta

33、blespace_nameINCLUDING CONTENTS AND DATAFILES 語法說明如下:INCLUDING CONTENTS表示刪除表空間的同寸,刪除表空間中的所有數(shù)據(jù)庫對象。如果表空間中有數(shù)據(jù)庫對象,則必須使用此選項(xiàng)。AND DATAFILES表示刪除表空間的同寸,刪除表空間所對應(yīng)的數(shù)據(jù)文件。如果不使用此選項(xiàng)則刪除表空間實(shí)際上僅是從數(shù)據(jù)字典和控制文件中將該表空間的 有關(guān)信息刪除,而不會刪除操作系統(tǒng)中與該表空間對應(yīng)的數(shù)據(jù)文件。切換日志文件組日志文件組是循環(huán)使用的,當(dāng)一組日志文件被寫滿時Oracle系統(tǒng)動切換到下一組日志文件。在需要的時候,數(shù)據(jù)庫管理員也可以手 動換 日志文件組

34、。切換日志文件組需要使用如下語句:ALTER SYSTEM SWITCH LOGFILE ;清空日志文件組如果日志文件組中的日志文件受損,將導(dǎo)致數(shù)據(jù)庫無法將受損的日志文件進(jìn)行歸檔,這會最終導(dǎo)致數(shù)據(jù)庫停止運(yùn)行。此時,在不關(guān)閉 數(shù)據(jù)庫的 情況下,可以選擇清空日志文件組中的內(nèi)容 清空日志文件組語法如下:LTER DATABASE CLEAR LOGFILE GROUP group_number ;注意:被清空的日志文件組不能處于CURRENT狀態(tài),也就是說不能清空數(shù) 據(jù)庫當(dāng)前正在使用的日志文件組。當(dāng)數(shù)據(jù)庫中只有兩個日志文件組時,不能清空日志文件組。創(chuàng)建日志文件組語法如下:ALTER DATABASE

35、 database_nameADD LOGFILE GROUP group_number(file_ name *, file_ name *,? +)SIZE size REUSE;語法說明如下:GROUP group_number為日志文件組指定組編號 file_name 為該組創(chuàng)建日志文件成員。SIZE number指定日志文件成員的大小。REUSE如果創(chuàng)建的日志文件成員已存在,可以使用 REUSE關(guān)鍵字覆蓋已存在的文件。但是該文件不能已經(jīng)屬于其他日志文件組,否 則 無法替換。創(chuàng)建日志文件 創(chuàng)建日志文件,一般是指向日志文件組中添加日志成員,需要使用 ALTERDATABASE ? ADD

36、 LOGFILE MEMB 語R 句。例如,向日志文件組 GROUP 4中添加一個新的日志文件:alter database add logfile member 'f:oraclefilelogfileredo03.log' to group 4;歸檔日志Oracle利用重做日志文件記錄對數(shù)據(jù)庫的操作,但是重做日志文件組是循環(huán)使用的,當(dāng)所有的日志文件都被填滿時,系統(tǒng)自動切換到第 一組日 志文件,當(dāng)然數(shù)據(jù)庫管理員也可以使用命令手工切換。而在循環(huán)使用日志文 件時,日志文件中已經(jīng)存在的日志內(nèi)容將會被覆蓋。為了完整地記錄數(shù)據(jù) 庫的全部操作,Oracle提出了歸檔日志的概念。如果是非歸

37、檔日志模式,則切換日志文件時,日志文件中原有內(nèi)容將被 新的內(nèi)容覆蓋;如果是歸檔日志模式,則切換日志文件時,系統(tǒng)會首 先 對日志文件進(jìn)行歸檔存儲,之后才允許向文件中寫入新的日志內(nèi)容。Oracle日志模式Oracle數(shù)據(jù)庫有兩種日志模式:非歸檔日志模式NOARCHIVELO)在非歸檔日志模式下,如果發(fā)生日志切換,則日志文件中原有內(nèi)容將被新的內(nèi)容覆蓋;歸檔日志模式ARCHIVELO G在歸檔日志模式下,如果發(fā)生日志切換,則Oracle系統(tǒng)會將日志文件通過復(fù)制保存到指定的地方,這個過程叫歸檔”復(fù)制保存下來的日志文件叫歸檔日志;然后才允許向文件中寫入新的日志內(nèi)容。設(shè)置數(shù)據(jù)庫模式在安裝Oracle Dat

38、abase 11g時,默認(rèn)設(shè)置數(shù)據(jù)庫運(yùn)行于非歸檔模式,這 樣可以避免對創(chuàng)建數(shù)據(jù)庫的過程中生成的日志進(jìn)行歸檔,從而縮短數(shù)據(jù)庫的創(chuàng)建時間。在數(shù)據(jù)庫成功運(yùn)行后,數(shù)據(jù)庫管理員可以根據(jù)需要修改數(shù)據(jù) 庫的運(yùn)行模式。如果要修改數(shù)據(jù)庫的運(yùn)行模式,可以使用如下語句:ALTER DATABASE ARCHIVELOG | NOARCHIVELOG ;其中,ARCHIVELOG 表示歸檔模式;NOARCHIVELOG 表示非歸檔模式。刪除日志文件刪除日志文件的語法如下:ALTER DATABASE DROP LOGFILE MEMBER logfile_name ;刪除日志文件需要注意如下幾點(diǎn):該日志文件所在的日志

39、文件組不能處于CURRENT狀態(tài),需要執(zhí)行一次手工日志切換,將該日志文件組的狀態(tài)修改為INACTIVE。該日志文件所在的日志文件組中必須還包含有其他日志成員。如果數(shù)據(jù)庫運(yùn)行在歸檔模式下,則應(yīng)該在刪除日志文件之前,確定 它所在的日志文件組已經(jīng)被歸檔,否則會導(dǎo)致數(shù)據(jù)丟失。狀態(tài)值日志組的狀態(tài):ACTIVE、CURREN TINACTIVE、UNUSED日志文件的狀態(tài):VALID、INVALID、STALE刪除日志文件組刪除日志文件組的語法如下:ALTER DATABASE DROP LOGFILE GROUP group_number ;刪除日志文件組需要注意如下幾點(diǎn):一個數(shù)據(jù)庫至少需要兩個日志文件

40、組。日志文件組不能處于 CURRENT狀態(tài)。如果數(shù)據(jù)庫運(yùn)行在歸檔模式下,應(yīng)該確定該日志文件組已經(jīng)被歸檔。設(shè)置歸檔目標(biāo)歸檔目標(biāo)就是指存放歸檔日志文件的目錄。一個數(shù)據(jù)庫可以有多個歸檔目標(biāo)。在創(chuàng)建數(shù)據(jù)庫時,默認(rèn)設(shè)置了歸檔目標(biāo),可以通過db_recovery_file_dest 參數(shù)查看。設(shè)置歸檔目標(biāo)的語法形式如下:ALTER SYSTEM SETlog_archive_dest_N = ' LOCATION | SERVER = directory '其中,directory表示磁盤目錄;LOCATION表示歸檔目標(biāo)為本地系統(tǒng)的 目錄;SERVER表示歸檔目標(biāo)為遠(yuǎn)程數(shù)據(jù)庫的目錄。設(shè)置

41、歸檔日志名稱通過參數(shù)log_archive_forma ,可以設(shè)置歸檔日志名稱格式。語法形式:ALTER SYSTEM SET log archive format = ' fix name%S %R.%T 'SCOPE = scope_type ;語法說明如下:fix_name%S_%R.%T其中,fix_name是自定義的命名前綴;%S表示日志序列號;%R表示聯(lián)機(jī)重做日志(RESETLOG )S的ID值;%T表示歸檔線程編號。log_archive_format參數(shù)的值必須包含 %S、%R和%T匹配符。SCOPE = scope_typeSCOPE 有 3 個參數(shù)值: ME

42、MORY、SPFILE 和口 BOTH。其中, MEMORY表示只改變當(dāng)前實(shí)例運(yùn)行參數(shù);SPFILE表示只改變服務(wù)器參數(shù)文件SPFILE中的設(shè)置;BOTH則表示兩者都改變。重新定義日志成員重新定義日志成員,是指為日志成員組重新指定一個日志成員。例如:GROUP 4文件組中包含一個 redo01.log文件,現(xiàn)在移除該文件, 改為包含 redo01_new.log 。CHECK約束CHECK約束是指檢查性約束,使用CHECK約束時,將對輸入的每一個數(shù)據(jù)進(jìn)行檢查,只有符合條件的記錄才會保存到表中,從而保證數(shù)據(jù)的有效性和完整性。CHECK約束具有以下 4個特點(diǎn):在CHECK約束的表達(dá)式中,必須引用表

43、中的一個或者多個列;并且 表達(dá)式的運(yùn)算結(jié)果是一個布爾值。在一個列中,可以定義多個CHECK約束。對于同一列,可以同時定義CHECK約束和 NOT NULL約束。CHECK約束既可以定義在列級別中,也可以定義在表級別中。創(chuàng)建表時,為表定義CHECK約束,需要使用 CHECK約束條件)語句。例如,創(chuàng)建表 STUDENT 3為STUDENTAG 列指定 CHECK約束,如下: SQL> create table stude nt3(2 stude ntid nu mber(4) not null primary key,3 stude ntcode varchar2(10) uniq ue,4

44、 stude ntn ame varchar2(20),5 stude ntage nu mber(3) con stra int stu3_ck check(stude ntage > 0),6 stude ntaddress varchar2(40)7 );表已創(chuàng)建。FOREIGN KE 約束FOREIGN KEY約束是指外鍵約束,用于引用本表或另一個表中的一列 或一組列。引用列與被引用列可以在同一個表中,這種情況稱為“自弓用”。被引用的列或列組應(yīng)該具有主鍵約束或惟一約束。引用列的取值只能為被引用列的值或NULL值??梢詾橐粋€列或一組列定義FOREIGN KEY約束。如果引用列中存儲

45、了被引用列的某個值,貝U不能直接刪除被引用列 中的這個值,否則會與第二條相矛盾。如果一定要刪除,需要先刪 除引用列中的這個值,然后再刪除被引用列中的這個值。學(xué)號姓名所在班級s1234t 王雪.14 f 1 LS1235楊小雨S12362學(xué)生寒林S12373舒昊班級添加FOREIGN KE約束在創(chuàng)建表時,為列添加FOREIGN KE約 束,形式如下:column_name1 data_type CONSTRAINT co nstrai nt_name REFERENCES table_name2 (column_nam 或2)CREATE TABLE table_name (column_nam

46、e data_type ,*?, +CONSTRAINT con strai nt_name FOREIGN KEY (column_name1)REFERENCES table_name2 (colu mn_ name2)* ,?+)其中,REFERENCE 鍵字用于定義 column_name1列指向其他表或本表)中 的 column_name2 歹V。也可以為已創(chuàng)建的表中的列添加FOREIGN KE約束,如下:ALTER TABLE table_name1 ADD CONSTRAINT con strai nt_name FOREIGN KEY (column_name1) REFERE

47、NCES table_name2 (column_name2);NOT NULL 約束NOT NULL約束是指非空約束,用于要求向表中添加記為 束的列提供數(shù)據(jù),否則將出現(xiàn)錯誤 NOT NULL約束只能在列級另上定義, 一個表中可以定義多個 NOT NULL約束。添加NOT NULL約束在創(chuàng)建表時,為列添加NOT NULL約束,形式如下:colu mn_n ame data_typeCONSTRAINT con strai nt_name NOT NULL 其中,CONSTRAINT con strai nt_nam 表示為約束指定名稱也可以為已創(chuàng)建的表中的列添加NOT NULL約束,這時就需要

48、使用ALTER TABLE ? MODI語Y句,形式如下:ALTER TABLE table_name MODIFY column_nameCONSTRAINT con strai nt_name NOT NULL;刪除NOT NULL約束如果需要刪除表中的列上的NOT NULL約束,依然是使用 ALTERTABLE ? MODIF 1Y句,形式如下:TABLE table_name MODIFY column_name NULL;PRIMARY KEY 約束PRIMARY KEY約束是指主鍵約束,用于惟一標(biāo)識一行記錄。在一個表 中只能定義一個 PRIMARY KEY約束,該約束可以定義在單獨(dú)

49、的列上,也可以定義在多個列上(表級約束)。定義了 PRIMARY KEY約束的列或列I合 不能有重復(fù)值,也不能有NULL值。添加PRIMARY KEY約束在創(chuàng)建表時,為列添加PRIMARY KE約束,形式如下:colu mn_n ame data_type CONSTRAINT con strai nt_n ame PRIMARY KEY 或 CREATE TABLE table_name (colu mn_n ame data_type ,*? , +* CONSTRAINT co nstrai nt_name + PRIMARY KEY (column_name)* ,? +)也可以為已創(chuàng)

50、建的表中的列添加PRIMARY KE約束,形式如下:ALTER TABLE table_name ADD CONSTRAINT con strai nt_name PRIMARY KEY (column_name);刪除PRIMARY KEY約束刪除列上的 PRIMARY KEY 約束,需要使用 ALTER TABLE ? DRO語P句,不過形式上只能米取指定約束名的方式,如下:ALTER TABLE table_name DROP CONSTRAIN co nstrai nt_name;如果在添加約束時使用 CONSTRAINT子句為其指定了約束名,那么這里就可以直接使用 該名稱。而如果沒有

51、使用CONSTRAINT子句,則約束名由Oracle自動創(chuàng)建,此時就可以通過連接數(shù)據(jù)典user_cons_columns禾口 user_constraints 來查看約束名稱。UNIQUE約束UNIQUE約束是指惟一約束,用于要求列中不允許出現(xiàn)重復(fù)值??梢詾?單獨(dú)的列添加一個 UNIQUE約束,也可以為多個列添加一個UNIQUE約束(屬于表級約束)。如果為多個列添加一個UNIQUE約束,只需要保i這多個列的值不全部相同即可。添加UNIQUE約束在創(chuàng)建表時,為列添加 UNIQUE約束,形式如下: column_name data_type CONSTRAINT con strai nt_name

52、 UNIQUE 或CREATE TABLE table_name (column_name data_type ,*?, +* CONSTRAINT co nstrai nt_name + UNIQUE (column_name)* ,? +)也可以為已創(chuàng)建的表中的列添加 UNIQUE約束,這時就需要使用 ALTERTABLE ? AD語 句,形式如下:ALTER TABLE table_nameADD CONSTRAINT con strai nt_name UNIQUE (column_name);刪除UNIQUE約束刪除列上的 UNIQUE約束,可以使用 ALTER TABLE ? DR

53、O語P句,形 式如下:ALTER TABLE table_name DROP UNIQUE (column_name);如果約束有名稱,也可以使用指定名稱的方式刪除該約束,語句形式為如下:ALTER TABLE table DROP CONSTRAINT con strai nt_name;視圖 USER_CONSTRAINTS通過查詢數(shù)據(jù)字典視圖USER_CONSTRAIN ,S可以了解當(dāng)前用戶模式中所有約束的基本信息。列類型說明ownerVARACHAR2(30)約束的所有者con strai nt_n ameVARACHAR2(30)約束名con stra in t_typeVARACH

54、AR2(1)約束類型,值為P、R、C、U、V或Otable_ nameVARACHAR2(30)約束定義所針對的表名statusVARACHAR2(8)約束的狀態(tài)。值為 ENABLED 或 DISABLEDdeferrableVARACHAR2(14)該約束是否為可延遲的。值為DEFERRABLE 或NOTDEFERRABLEdeferredVARACHAR2(9)約束是立即執(zhí)行還是延遲執(zhí)行。值為IMMEDIATE 或DEFERRED視圖 USER_CONS_COLUMNS通過查詢數(shù)據(jù)字典視圖USER CONS COLUM NS可以了解定義約束的列列類型說明ownerVARCHAR2(30)約束的所有者con strai nt_n ameVARCHAR2(30)約束名tab

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論