第3章-表與表數(shù)據(jù)操作-Oracle實用教程(第3版)課件_第1頁
第3章-表與表數(shù)據(jù)操作-Oracle實用教程(第3版)課件_第2頁
第3章-表與表數(shù)據(jù)操作-Oracle實用教程(第3版)課件_第3頁
第3章-表與表數(shù)據(jù)操作-Oracle實用教程(第3版)課件_第4頁
第3章-表與表數(shù)據(jù)操作-Oracle實用教程(第3版)課件_第5頁
已閱讀5頁,還剩125頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

3.1表結(jié)構(gòu)和數(shù)據(jù)類型3.2創(chuàng)建和管理表空間3.3界面方式操作表3.4命令方式操作表3.1表結(jié)構(gòu)和數(shù)據(jù)類型3.2創(chuàng)建和管理表空間3.33.5界面方式操作表數(shù)據(jù)3.6命令方式操作表數(shù)據(jù)3.7同義詞3.5界面方式操作表數(shù)據(jù)3.6命令方式操作表數(shù)據(jù)3.3.1.1表和表結(jié)構(gòu)每個數(shù)據(jù)庫包含若干個表。表是Oracle中最主要的數(shù)據(jù)庫對象,它是用來存儲數(shù)據(jù)的一種邏輯結(jié)構(gòu)。表由行和列組成,因此也稱之為二維表。表是在日常工作和生活中經(jīng)常使用的一種表示數(shù)據(jù)及其關(guān)系的形式,表3.1就是用來表示學(xué)生情況的一個學(xué)生表。學(xué)

號姓

名性

別出生時間專

業(yè)總

學(xué)

分備

注081101王林男1990-02-10計算機(jī)50081103王燕女1989-10-06計算機(jī)50081108林一帆男1989-08-05計算機(jī)52已提前修完一門課081202王林男1989-01-29通信工程40有一門課不及格,待補考081204馬琳琳女1989-02-10通信工程42表3.1“學(xué)生”表3.1.1表和表結(jié)構(gòu)學(xué)號姓名性別關(guān)系數(shù)據(jù)庫使用表(即關(guān)系)來表示實體及其聯(lián)系。表包含下列概念。(1)表結(jié)構(gòu):每個數(shù)據(jù)庫包含了若干個表。每個表包含一組固定的列,而列由數(shù)據(jù)類型(DATATYPE)和長度(LENGTH)兩部分組成,以描述該表所跟蹤的實體的屬性。(2)記錄:每個表包含了若干行數(shù)據(jù),它們是表的“值”,表中的一行稱為一個記錄,因此,表是記錄的有限集合。(3)字段:每個記錄由若干個數(shù)據(jù)項構(gòu)成,將構(gòu)成記錄的每個數(shù)據(jù)項稱為字段。例如表3.1中,表結(jié)構(gòu)為(學(xué)號,姓名,性別,出生時間,專業(yè),總學(xué)分,備注),包含7個字段,由5個記錄組成。(4)關(guān)鍵字:若表中記錄的某一字段或字段組合能唯一標(biāo)識記錄,則稱該字段或字段組合為候選關(guān)鍵字(Candidatekey)。若一個表有多個候選關(guān)鍵字,則選定其中一個為主關(guān)鍵字(Primarykey),也稱為主鍵。當(dāng)一個表僅有唯一的一個候選關(guān)鍵字時,該候選關(guān)鍵字就是主關(guān)鍵字。關(guān)系數(shù)據(jù)庫使用表(即關(guān)系)來表示實體及其聯(lián)系。表包含下列概念表是真正存儲各種各樣數(shù)據(jù)的對象,由行和列組成。行有時也稱為記錄,列有時也稱為字段或域。設(shè)計數(shù)據(jù)庫時,要決定它包括哪些表,每個表中包含哪些列,每列的數(shù)據(jù)類型等。當(dāng)創(chuàng)建和使用表時,需要使用不同的數(shù)據(jù)庫對象,包括數(shù)據(jù)類型、約束、默認(rèn)值、觸發(fā)器和索引等。在表中創(chuàng)建列時,必須為其指定數(shù)據(jù)類型,列的數(shù)據(jù)類型決定了數(shù)據(jù)的取值、范圍和存儲格式。列的數(shù)據(jù)類型可以是Oracle提供的系統(tǒng)數(shù)據(jù)類型,主要的系統(tǒng)數(shù)據(jù)類型列于表3.2中。表是真正存儲各種各樣數(shù)據(jù)的對象,由行和列組成。行有時也稱為記本小節(jié)以本書所使用到的學(xué)生管理系統(tǒng)的三個表:學(xué)生表(表名為XSB)、課程表(表名為KCB)和成績表(表名為CJB)為例介紹如何設(shè)計表的結(jié)構(gòu)。本書基礎(chǔ)部分使用的學(xué)生表XSB包含的屬性有學(xué)號、姓名、性別、出生時間、專業(yè)、總學(xué)分和備注。在實際開發(fā)中,應(yīng)該使用英文字母來表示列名,所以這里使用屬性的拼音首位字母表示列名。最后設(shè)計的XSB的表結(jié)構(gòu)如表3.3所示。列

名數(shù)據(jù)類型是否可空默

認(rèn)

值說

明列名含義XHchar(6)×無主鍵,前2位年級,中間2位班級號,后2位序號學(xué)號XMchar(8)×無姓名XBchar(2)ד男”性別CSSJdate×無出生時間ZYchar(12)√無專業(yè)ZXFnumber(2)√00≤總學(xué)分<160總學(xué)分BZvarchar2(200)√無備注表3.3XSB的表結(jié)構(gòu)本小節(jié)以本書所使用到的學(xué)生管理系統(tǒng)的三個表:學(xué)生表(表名為X參照XSB表結(jié)構(gòu)的設(shè)計方法,同樣可以設(shè)計出其他兩個表的結(jié)構(gòu),如表3.4所示的是KCB的表結(jié)構(gòu),表3.5所示的是CJB的表結(jié)構(gòu)。列

名數(shù)據(jù)類型是否可空默

認(rèn)

值說

明列名含義KCHchar(3)×無主鍵課程號KCMchar(16)×無課程名KKXQnumber(1)√1只能為1~8開課學(xué)期XSnumber(2)√0學(xué)時XFnumber(1)×0學(xué)分列

名數(shù)據(jù)類型是否可空默

認(rèn)

值說

明列名含義XHchar(6)×無主鍵學(xué)號KCHchar(3)×無主鍵課程號CJnumber(2)√無成績表3.4KCB的表結(jié)構(gòu)表3.5CJB的表結(jié)構(gòu)參照XSB表結(jié)構(gòu)的設(shè)計方法,同樣可以設(shè)計出其他兩個表的結(jié)構(gòu),3.2.1界面方式創(chuàng)建表空間【例3.1】使用OEM創(chuàng)建永久性表空間MYTS。(1)“一般信息”選項頁面。進(jìn)入“一般信息”選項頁面,在“名稱”文本框中輸入表空間名稱MYTS。注意,只能使用數(shù)據(jù)庫字符集中的字符,長度不得超過30個字符。名稱在數(shù)據(jù)庫中必須是唯一的。在該頁面包含:區(qū)管理、類型和狀態(tài)。狀態(tài)選項用于設(shè)置表空間狀態(tài),狀態(tài)有:讀寫、只讀和脫機(jī)三種,這里選擇“讀寫”,如圖3.1所示。3.2.1界面方式創(chuàng)建表空間(2)“存儲”選項頁面。單擊“存儲”選項頁面,則出現(xiàn)如圖3.2所示的界面。在該選項卡中進(jìn)行區(qū)分配、段空間管理、壓縮選項和啟用事件記錄設(shè)置。(2)“存儲”選項頁面。單擊“存儲”選項頁面,則出現(xiàn)如圖3.3.2.2命令方式創(chuàng)建表空間1.創(chuàng)建表空間創(chuàng)建表空間可以使用CREATETABLESPACE語句,創(chuàng)建的用戶必須擁有CREATETABLESPACE系統(tǒng)權(quán)限。在創(chuàng)建之前必須創(chuàng)建包含表空間的數(shù)據(jù)庫。語法格式:CREATETABLESPACEtablespace_name DATAFILE'path/filename'[SIZEinteger[K∣M]][REUSE] [AUTOEXTEND[OFF∣ON[NEXTinteger[K∣M]] [MAXSIZE[UMLIMITED∣integer[K∣M]]]] [MINMUMEXTENTinteger[K|M]] [DEFAULTstorage_clause] [ONLINE∣OFFLINE] [LOGGING∣NOLOGGING] [PERMANENT∣TEMPORARY] [EXTENTMANAGEMENT[DICTIONARY∣LOCAL[AUTOALLOCATE∣UNIFORM[SIZEinteger[K∣M]]]]]3.2.2命令方式創(chuàng)建表空間1.創(chuàng)建表空間3.2.2命令方式創(chuàng)建表空間【例3.2】創(chuàng)建大小為50MB的表空間TEST,禁止自動擴(kuò)展數(shù)據(jù)文件。CREATETABLESPACETEST LOGGING DATAFILE'D:\app\tao\oradata\XSCJ\TEST01.DBF'SIZE50M REUSEAUTOEXTENDOFF;結(jié)果如下所示:3.2.2命令方式創(chuàng)建表空間【例3.2】創(chuàng)建大小為53.2.2命令方式創(chuàng)建表空間【例3.3】創(chuàng)建表空間DATA,允許自動擴(kuò)展數(shù)據(jù)文件。CREATETABLESPACEDATA LOGGING DATAFILE'D:\app\tao\oradata\XSCJ\DATA01.DBF'SIZE50M REUSEAUTOEXTENDONNEXT10MMAXSIZE200M EXTENTMANAGEMENTLOCAL;3.2.2命令方式創(chuàng)建表空間【例3.3】創(chuàng)建表空間D2.管理表空間利用ALTERTABLESPACE命令可以修改現(xiàn)有的表空間或它的一個或多個數(shù)據(jù)文件??梢詾閿?shù)據(jù)庫中每一個數(shù)據(jù)文件指定各自的存儲擴(kuò)展參數(shù)值;Oracle會在自動擴(kuò)展數(shù)據(jù)文件時使用這些參數(shù)。語法格式:ALTERTABLESPACEtablespace_name [ADDDATAFILE∣TEMPFILE'path/filename'[SIZEinteger[K∣M]] [REUSE] [AUTOEXTEND[OFF∣ ON[NEXTinteger[K∣M]] MAXSIZE[UNLIMITED∣integer[K∣M]]] [RENAMEDATAFILE'path\filename',…nTO'path\re_filename',…n] [DEFAULTSTORAGEstorage_clause] [ONLINE∣OFFLINE[NORMAL∣TEMPORARY∣IMMEDIATE]] [LOGGING∣NOLOGGING] [READONLY∣WRITE] [PERMANENT] [TEMPORARY]2.管理表空間【例3.4】通過ALTERTABLESPACE命令把一個新的數(shù)據(jù)文件添加到DATA表空間,并指定了AUTOEXTENDON和

MAXSIZE300M。ALTERTABLESPACEDATA ADDDATAFILE'D:\app\tao\oradata\XSCJ\DATA02.DBF'SIZE50M REUSEAUTOEXTENDONNEXT50MMAXSIZE500M;修改表空間DATA屬性,命令如下:ALTERTABLESPACEDATAOFFLINE;【例3.4】通過ALTERTABLESPACE命令把一3.刪除表空間如果不再需要表空間和其中保存的數(shù)據(jù),可以使用DROPTABLESPACE語句刪除已經(jīng)創(chuàng)建的表空間。語法格式:DROPTABLESPACEtablespace[INCLUDINGCONTENTS[{AND|KEEP}DATAFILES][CASCADECONSTRAINTS]];【例3.5】刪除表空間DATA和及其對應(yīng)的數(shù)據(jù)文件。DROPTABLESPACEDATA INCLUDINGCONTENTSANDDATAFILES;3.刪除表空間3.3.1OEM方式操作表1.創(chuàng)建表以創(chuàng)建XSB表為例,使用OEM創(chuàng)建表的操作步驟如下。(1)使用system賬戶登錄數(shù)據(jù)庫實例XSCJ的OEM頁面,在“方案”屬性頁中的“數(shù)據(jù)庫對象”一欄,用戶可以管理模式對象,如表、索引和視圖等,如圖3.3所示。3.3.1OEM方式操作表3.3.1OEM方式操作表這里選擇“表”選項,進(jìn)入如圖3.4所示的“表搜索”頁面。3.3.1OEM方式操作表這里選擇“表”選項,進(jìn)入如圖33.3.1OEM方式操作表(2)單擊“創(chuàng)建”按鈕進(jìn)入“創(chuàng)建表:表組織”頁面,如圖3.5所示,指定表的存儲類型及是否為臨時表。這里按照默認(rèn)設(shè)置,選擇“標(biāo)準(zhǔn)”選項。3.3.1OEM方式操作表(2)單擊“創(chuàng)建”按鈕進(jìn)入“創(chuàng)(3)單擊“繼續(xù)”按鈕,進(jìn)入“創(chuàng)建表”頁面,如圖3.6所示。該界面有5個選項頁面,可以完成對表的定義。在如圖3.6所示的“一般信息”選項頁中定義表的名稱、所屬方案、使用的表空間和表的基本屬性。該選項頁面包括如下信息。(3)單擊“繼續(xù)”按鈕,進(jìn)入“創(chuàng)建表”頁面,如圖3.6所示。(4)單擊“約束條件”選項頁面,進(jìn)入“約束條件”選項界面,如圖3.7所示。在該選項頁面可以定義表的完整性約束條件。(4)單擊“約束條件”選項頁面,進(jìn)入“約束條件”選項界面,如(5)選擇PRIMARY約束條件,單擊“添加”按鈕,進(jìn)入如圖3.8所示的添加PRIMARY約束條件頁面。(5)選擇PRIMARY約束條件,單擊“添加”按鈕,進(jìn)入如圖(6)在圖3.7所示的界面中,單擊“存儲”選項頁面,進(jìn)入“存儲”選項頁,如圖3.9所示。在此指定表的存儲方式,包括指定區(qū)、空間利用率等特性,這里都按照默認(rèn)設(shè)置。(6)在圖3.7所示的界面中,單擊“存儲”選項頁面,進(jìn)入“存(7)在圖3.7所示的界面中,單擊“選項”選項,進(jìn)入“選項”選項頁面,如圖3.10所示。在該選項頁面中,可以定義表的并發(fā)操作、是否覆蓋和如何審計等特性,這里按照默認(rèn)設(shè)置。(7)在圖3.7所示的界面中,單擊“選項”選項,進(jìn)入“選項”(8)單擊“分區(qū)”選項頁面,進(jìn)入“分區(qū)”選項界面,如圖3.11所示?!胺謪^(qū)”選項界面只在創(chuàng)建新表時可用,可以同時定義多個分區(qū)。已分區(qū)表的所有分區(qū)必須駐留在塊大小相同的表空間中。并不是所有這些表列都可以進(jìn)行分區(qū),只有日期型(DATE)或二進(jìn)制大對象(BLOB)等數(shù)據(jù)類型的表列可進(jìn)行分區(qū)。(8)單擊“分區(qū)”選項頁面,進(jìn)入“分區(qū)”選項界面,如圖3.12.修改表在創(chuàng)建了一個表之后,使用過程中可能需要對表結(jié)構(gòu)、約束或其他列的屬性進(jìn)行修改,另外可能會對表的存儲方式等信息進(jìn)行修改。表的修改與表的創(chuàng)建一樣,也可以通過OEM和PL/SQL兩種方法來進(jìn)行,本節(jié)討論在OEM中修改表的方法。對一個已存在的表可以進(jìn)行的修改操作包括:增加列,刪除列,修改已有列的屬性(列名、數(shù)據(jù)類型、是否為空值),修改存儲方式等操作。2.修改表【例3.6】表XSB中添加一個“獎學(xué)金等級”,名稱為JXJ,類型為NUMBER,允許為空值。在OEM的“方案”屬性頁下選擇“表”進(jìn)入表搜索頁面,在“對象名”欄輸入“XSB”,單擊“開始”按鈕,在結(jié)果列表中選擇選擇表XSB,單擊“編輯”按鈕,進(jìn)入如圖3.12所示界面?!纠?.6】表XSB中添加一個“獎學(xué)金等級”,名稱為JX3.刪除表刪除一個表時,表的定義、表中的所有數(shù)據(jù)以及表的索引、觸發(fā)器、約束等均被刪除。注意:不能刪除系統(tǒng)表和有外鍵約束所參照的表。例如,需將XSCJ數(shù)據(jù)庫中的表XSB刪除,操作過程為:在表搜索頁面中,搜索出要刪除的表XSB;單擊“使用選項刪除”按鈕,轉(zhuǎn)入刪除選項確認(rèn)界面,選擇“刪除表定義,其中所有數(shù)據(jù)和從屬對象(DROP)”選項;單擊“是”按鈕即可刪除表。3.刪除表3.3.2使用SQLDeveloper操作表1.創(chuàng)建表以創(chuàng)建XSB表為例,使用SQLDeveloper創(chuàng)建表的操作步驟如下。(1)啟動SQLDeveloper,在“Connections”節(jié)點下打開數(shù)據(jù)庫連接system_ora(已創(chuàng)建)。右擊“Tables”節(jié)點,選擇“NewTable”菜單。(2)進(jìn)入“CreateTable”窗口,在“Name”欄填寫表名XSB,在“Table”選項卡的“Column”、“Type”、“Size”、“NotNull”、“PrimaryKey”欄填入XSB表中學(xué)號列的列名、數(shù)據(jù)類型、長度、為空性和是否為主鍵等信息,輸入完一列后單擊“AddColumn”按鈕添加下一列,直到所有的列填完為止,如圖3.13所示。3.3.2使用SQLDeveloper操作表1.創(chuàng)建表(3)輸完最后一列的信息后,選中右上角的“Advanced”復(fù)選框,這時,會顯示出更多的表的選項,如表的類型、列的默認(rèn)值、約束條件、外鍵和存儲選項等,如圖3.14所示,例如要設(shè)置默認(rèn)值可以在“Column”選項頁中該列的“Default”欄輸入默認(rèn)值。(3)輸完最后一列的信息后,選中右上角的“Advanced”2.修改表表的主鍵列不能直接刪除,要刪除主鍵列必須先刪除主鍵。如果要刪除表的主鍵,單擊“PrimaryKey”選項,在窗口右邊的“SelectedColumn”欄會顯示已經(jīng)被設(shè)為主鍵的列,如圖3.15所示。雙擊該列即可取消主鍵,如果要設(shè)某一列為主鍵,在“AvailableColumns”欄雙擊該列或單擊“>”按鈕即可添加該列為主鍵。2.修改表3.刪除表以刪除XSB表為例,在“Tables”目錄下右擊XSB表選擇“Table”菜單下的“Drop”子菜單,如圖3.16所示,之后彈出“Drop”確認(rèn)對話框,選中“CascadeConstraints”復(fù)選框,單擊“應(yīng)用”按鈕,之后彈出已經(jīng)刪除表的提示消息,單擊“確定”按鈕即可。3.刪除表3.4命令方式操作表3.4.1創(chuàng)建表使用PL/SQL語句創(chuàng)建表時使用CREATETABLE語句。語法格式:CREATETABLE[schema.]table_name( column_namedatatype[DEFAULTexpression][column_constraint][,…n] <table_constraint>[,…n]) [PCTFREEinteger] [PCTUSEDinteger] [INITRANSinteger] [MAXTRANSinteger] [TABLESPACEtablespace_name] [STORGEstorage_clause] [CLUSTERcluster_name(cluster_column,…n)] [ENABLE|DISABLE] [ASsubquery]3.4命令方式操作表3.4.1創(chuàng)建表3.4.1創(chuàng)建表【例3.7】使用CRETETABLE命令為XSCJ數(shù)據(jù)庫建立表XSB,表結(jié)構(gòu)參照表3.3。打開SQL*Plus工具,以system方案連接數(shù)據(jù)庫,輸入以下語句:CREATETABLEXSB( XHchar(6) NOTNULL PRIMARYKEY, XMchar(8) NOTNULL, XBchar(2) DEFAULT'1'NOTNULL, CSSJdate NOTNULL, ZYchar(12) NULL, ZXFnumber(2) NULL, BZ varchar2(200)NULL);3.4.1創(chuàng)建表【例3.7】使用CRETETABL3.4.1創(chuàng)建表還可以在SQLDeveloper中運行SQL語句,方法如下:啟動SQLDeveloper,在主界面中展開“system_ora”連接,單擊工具欄的“

”按鈕選擇“system_ora”,界面中將彈出SQLWorksheet窗口,在窗口中輸入要運行的SQL語句,如圖3.17所示。輸入SQL語句結(jié)果顯示窗口3.4.1創(chuàng)建表還可以在SQLDeveloper中運行【例3.9】利用CREATETABLE命令為XSCJ數(shù)據(jù)庫建立表KCB,指定表的存儲參數(shù)。CREATETABLEKCB( KCH char(3) NOTNULLPRIMARYKEY, KCM char(16) NOTNULL, KKXQ number(1) NULL, XS number(2) NULL, XF number(1) NOTNULL)PCTFREE10PCTUSED40INITRANS1MAXTRANS255STORAGE(INITIAL64KMINEXTENTS1PCTINCREASE40 FREELISTS1FREELISTGROUPS1);【例3.10】創(chuàng)建XSB表中計算機(jī)專業(yè)學(xué)生的記錄備份。CREATETABLEXS_JSJ ASSELECT* FROMXSB WHEREZY='計算機(jī)';【例3.9】利用CREATETABLE命令為XSCJ數(shù)3.4.2修改表修改表結(jié)構(gòu)可以使用ALTERTABLE語句。語法格式:ALTERTABLE[schema.]table_name [ADD(column_namedatatype[DEFAULTexpression][column_constraint],…n)] /*增加新列*/ [MODIFY([datatype][DEFAULTexpression] [column_constraint],…n)] /*修改已有列的屬性*/ [STORAGEstorage_clause] *修改存儲特征*/ [DROPdrop_clause] /*刪除列或約束條件*/3.4.2修改表修改表結(jié)構(gòu)可以使用ALTERTABLE3.4.2修改表其中,DROP子句用于從表中刪除列或約束。語法格式:DROP{ COLUMNcolumn_name

∣PRIMARY[KEY]

∣UNIQUE(column_name,…n)

∣CONSTRAINTconstraint_name

∣[CASCADE]}3.4.2修改表其中,DROP子句用于從表中刪除列或約束【例3.11】使用ALTERTABLE語句修改XSCJ數(shù)據(jù)庫中的表。(1)在表XSB中增加兩列:JXJ(獎學(xué)金等級)、DJSM(獎學(xué)金等級說明)。ALTERTABLEXSB ADD(JXJnumber(1), DJSMvarchar2(40)DEFAULT'獎金1000元');(2)在表XSB中修改名為DJSM的列的默認(rèn)值。ALTERTABLEXSB MODIFY(DJSMDEFAULT'獎金800元');(3)在表XSB中刪除名為JXJ和DJSM的列。ALTERTABLEXSB DROPCOLUMNJXJ;ALTERTABLEXSB DROPCOLUMNDJSM;【例3.11】使用ALTERTABLE語句修改XSCJ3.4.2修改表(4)修改KCB表的存儲特征。ALTERTABLEKCB PCTFREE20MAXTRANS200;(5)為表XS_JSJ添加主鍵。ALTERTABLEXS_JSJ ADD(CONSTRAINT"PK_JSJ"PRIMARYKEY(XH));3.4.2修改表(4)修改KCB表的存儲特征。3.4.3刪除表語法格式:

DROPTABLE[schema.]table_name

schema為表的擁有者,table_name為要刪除的表名。例如要刪除表XSB,使用如下語句:

DROPTABLEXSB3.4.3刪除表語法格式:3.5界面方式操作表數(shù)據(jù)3.5.1插入、刪除和修改表數(shù)據(jù)首先,啟動SQLDeveloper,在system_ora連接下展開“Tables”目錄,單擊“XSB”表,在左邊窗口中選擇“Data”選項卡,界面如圖3.18所示。3.5界面方式操作表數(shù)據(jù)3.5.1插入、刪除和修改表3.5.1插入、刪除和修改表數(shù)據(jù)存入數(shù)據(jù)后XSB表的Data選項卡如圖3.19所示。3.5.1插入、刪除和修改表數(shù)據(jù)存入數(shù)據(jù)后XSB表的Da3.5.2從Excel表格中導(dǎo)入數(shù)據(jù)(1)在一個Excel文件中輸入要導(dǎo)入的數(shù)據(jù),其格式如圖3.20所示。其中,第一行必須為列標(biāo)題。3.5.2從Excel表格中導(dǎo)入數(shù)據(jù)(1)在一個Exce3.5.2從Excel表格中導(dǎo)入數(shù)據(jù)(2)啟動SQLDeveloper,在system_ora連接的Tables節(jié)點中右擊KCB表,選擇ImportData(D)菜單項中的Excel子菜單項,如圖3.21所示。3.5.2從Excel表格中導(dǎo)入數(shù)據(jù)(2)啟動SQLD(3)在彈出的打開窗口中選擇要導(dǎo)入數(shù)據(jù)的Excel文件,單擊“Open”按鈕,出現(xiàn)“ExcelImportintoKCB”窗口,Excel文件中的數(shù)據(jù)將以表格形式顯示在“DataPreview”框中,其中第一行數(shù)據(jù)作為表格的標(biāo)題。文件中的列標(biāo)題依次出現(xiàn)在“Columns”選項卡的“AvailableColumns”列表框中,逐個選擇需要導(dǎo)入的可選列,然后單擊“>”按鈕,將其移動到“SelectedColumns”列表框中,如圖3.22所示。(3)在彈出的打開窗口中選擇要導(dǎo)入數(shù)據(jù)的Excel文件,單擊(4)在“DataTypes”選項卡的KCB列中,從下拉框中逐個選擇要導(dǎo)入的每個Excel文件的列所對應(yīng)的KCB表中的列,如圖3.23所示。(4)在“DataTypes”選項卡的KCB列中,從下拉框(5)在“DML”選項卡中將列出導(dǎo)入數(shù)據(jù)所使用的INSERT語句,單擊“Insert”按鈕開始導(dǎo)入,完成后返回SQLDeveloper主界面,在KCB表的“Data”選項卡中將顯示已經(jīng)導(dǎo)入的數(shù)據(jù),并在“DataEditor-Log”窗口中顯示導(dǎo)入過程的提示消息,如圖3.24所示。(5)在“DML”選項卡中將列出導(dǎo)入數(shù)據(jù)所使用的INSERT3.6命令方式操作表數(shù)據(jù)3.6.1插入記錄1.INSERT語句插入記錄一般使用INSERT語句。語法格式:INSERTINTOtable_name[(column_list)] VALUES(constant1,constant2,…)該語句的功能是向由table_name指定的表中加入一行,由VALUES指定的各列值?!纠?.12】向XSCJ數(shù)據(jù)庫的表XSB中插入如下的一行: 101101王林

計算機(jī)

1990021050可以使用如下的PL/SQL語句:INSERTINTOXSB(XH,XM,XB,CSSJ,ZY,ZXF) VALUES('101101','王林','男',TO_DATE('19900210','YYYYMMDD'),'計算機(jī)',50);在SQL*Plus中執(zhí)行結(jié)果如下所示:3.6命令方式操作表數(shù)據(jù)3.6.1插入記錄3.6.1插入記錄執(zhí)行下列命令的效果相同。INSERTINTOXSB VALUES('101101','王林',1,'1990-02-10','計算機(jī)',50,NULL);運行COMMIT命令:COMMIT;使用SELECT語句查詢是否添加了該行數(shù)據(jù):SELECTXH,XM,XB,CSSJ,ZY,ZXF FROMXSB;

結(jié)果如下所示:3.6.1插入記錄執(zhí)行下列命令的效果相同。3.6.1插入記錄【例3.13】建立表test。CREATETABLEtest( XM char(20) NOTNULL, ZY varchar2(30)DEFAULT('計算機(jī)'), NJ number NOTNULL);用INSERT向test表中插入一條記錄:INSERTINTOtest(XM,NJ)VALUES('王林',3);利用INSERT語句也可以把一個表中的部分?jǐn)?shù)據(jù)插入到另一個表中,但結(jié)果集中的每行數(shù)據(jù)的字段數(shù)、字段的數(shù)據(jù)類型要與被操作表完全一致。語法格式:INSERTINTOtable_name derived_table3.6.1插入記錄【例3.13】建立表test?!纠?.14】用如下的CREATE語句建立表XSB1:CREATETABLEXSB1( numchar(6)NOTNULL, namechar(8)NOTNULL, speialitychar(12)NULL);用如下的INSERT語句向XSB1表中插入數(shù)據(jù):INSERTINTOXSB1 SELECTXH,XM,ZY FROMXSB WHEREZY='計算機(jī)';【例3.14】用如下的CREATE語句建立表XSB1:2.MERGE語句在Oracle11g中有MERGE語句,用于根據(jù)與源表聯(lián)接的結(jié)果,對目標(biāo)表執(zhí)行插入、更新或刪除操作。例如,根據(jù)在一個表中找到的差異在另一個表中插入、更新或刪除行,可以對兩個表進(jìn)行信息同步。語法格式:MERGEINTOtarget_table USINGtable_nameON(join_condition) WHENMATCHEDTHEN{UPDATESET…|DELETE…} WHENNOTMATCHEDTHENINSERT(…)VALUES(…)2.MERGE語句3.6.1插入記錄【例3.15】創(chuàng)建表a,將XSB表中的數(shù)據(jù)添加至該表。創(chuàng)建表a的語句如下:CREATETABLEa(

學(xué)號

char(6) NOTNULLPRIMARYKEY,

姓名

char(8) NOTNULL,

性別

char(2) NOTNULL,

出生時間

date NOTNULL,

專業(yè)

char(12) NULL,

總學(xué)分

int NULL,

備注

varchar(200)NULL);3.6.1插入記錄【例3.15】創(chuàng)建表a,將XSB表3.6.1插入記錄進(jìn)行信息同步使用如下語句:MERGEINTOa USINGXSBON(a.學(xué)號=XSB.XH) WHENMATCHED THENUPDATESETa.姓名=XSB.XM,a.性別=XSB.XB,a.出生時間=XSB.CSSJ, a.專業(yè)=XSB.ZY,a.總學(xué)分=XSB.ZXF,a.備注=XSB.BZ WHENNOTMATCHED THENINSERTVALUES(XSB.XH,XSB.XM,XSB.XB,XSB.CSSJ,XSB.ZY, XSB.ZXF,XSB.BZ);3.6.1插入記錄進(jìn)行信息同步使用如下語句:3.6.2刪除記錄1.DELETE語句語法格式:DELETEFROMtable_name∣view_name [WHEREcondition]該語句的功能為從table_name指定的表或view_name指定的視圖中刪除滿足condition查詢條件的行,若省略WHERE子句,表示刪除所有的行。【例3.16】將XSCJ數(shù)據(jù)庫的XSB表中總學(xué)分小于50的行刪除,使用如下的PL/SQL語句。DELETEFROMXSB WHEREZXF<50;3.6.2刪除記錄1.DELETE語句2.TRANCATETABLE語句如果確實要刪除一個大表里的全部記錄,可以用TRUNCATETABLE語句,它可以釋放占用的數(shù)據(jù)塊表空間,此操作不可回退。語法格式:TRUNCATETABLEtable_name其中,table_name為要刪除數(shù)據(jù)的表名。由于TRUNCATETABLE語句刪除表中的所有數(shù)據(jù),且不能恢復(fù),所以使用時要謹(jǐn)慎。2.TRANCATETABLE語句3.6.3修改記錄在PL/SQL語言中,UPDATE語句可以用來修改表中的數(shù)據(jù)行。語法格式:UPDATEtable_name∣view_name SETcolumn_name=expression,[…n] [WHEREcondition]該語句table_name指定的表或view_name指定的視圖中滿足condition查詢條件的記錄中,由SET指定的各列的列值設(shè)置為SET指定的新值。若不使用WHERE子句,則更新所有記錄的指定列值。3.6.3修改記錄在PL/SQL語言中,UPDATE語句3.6.3修改記錄【例3.17】將XSCJ數(shù)據(jù)庫的XSB表中學(xué)號為“101110”的學(xué)生備注列值改為“三好學(xué)生”,使用如下PL/SQL語句:UPDATEXSB SETBZ='三好學(xué)生' WHEREXH='101110';在SQLDeveloper中查詢XSB表中的數(shù)據(jù),可以發(fā)現(xiàn)表中學(xué)號為“101110”的行的備注字段值已被修改,如圖3.25所示。圖3.25修改數(shù)據(jù)以后的表3.6.3修改記錄【例3.17】將XSCJ數(shù)據(jù)庫的X【例3.18】將XSB表中的所有學(xué)生的總學(xué)分都增加10。UPDATEXSB SETZXF=ZXF+10;使用UPDATE可以一次更新多列的值,這樣可以提高效率?!纠?.19】將姓名為“羅林琳”的同學(xué)的專業(yè)改為“通信工程”,備注改為“轉(zhuǎn)專業(yè)學(xué)習(xí)”,學(xué)號改為“101241”。UPDATEXS SETZY='通信工程', BZ='轉(zhuǎn)專業(yè)學(xué)習(xí)', XH='101241' WHEREXM='羅林琳';【例3.18】將XSB表中的所有學(xué)生的總學(xué)分都增加10。3.6.3修改記錄【例3.20】對XSB表進(jìn)行修改,將姓名為“李明”的學(xué)生的總學(xué)分加4,備注改為“提前修完《數(shù)據(jù)結(jié)構(gòu)》,并獲得學(xué)分”。UPDATEXS SETZXF=ZXF+4, BZ='提前修完《數(shù)據(jù)結(jié)構(gòu)》,并獲得學(xué)分' WHEREXM='李明';3.6.3修改記錄【例3.20】對XSB表進(jìn)行修改,3.7同義詞3.7.1創(chuàng)建同義詞1.利用OEM創(chuàng)建同義詞【例3.21】為本地數(shù)據(jù)庫XSCJ的表XSB創(chuàng)建同義詞XSB。(1)啟動OEM,選擇“方案”屬性頁中的“同義詞”,單擊鼠標(biāo)左鍵,進(jìn)入“同義詞搜索”頁面。單擊“創(chuàng)建”按鈕,進(jìn)入“創(chuàng)建同義詞”頁面,如圖3.26所示。3.7同義詞3.7.1創(chuàng)建同義詞(2)在該界面定義同義詞要進(jìn)行如下設(shè)置。

名稱:將要創(chuàng)建同義詞的名稱。

類型:指定要創(chuàng)建公用同義詞還是私有同義詞。選擇“方案”,則該同義詞只是該用戶賬號所有者擁有;選擇“公用”,則為公用同義詞。

數(shù)據(jù)庫:可以定義本地同義詞,也可以為遠(yuǎn)程數(shù)據(jù)庫定義同義詞。若選擇了“遠(yuǎn)程”,那么需要指定“服務(wù)名”,選擇數(shù)據(jù)庫鏈接?!皠e名,代表”:同義詞指向的對象。單擊“手電筒”形狀按鈕,選擇對象。(2)在該界面定義同義詞要進(jìn)行如下設(shè)置。2.利用CREATESYNONYM命令創(chuàng)建同義詞語法格式:CREATE[PUBLIC]SYNONYM[schema.]synonym_name FOR[schema.]object[@dblink]【例3.22】創(chuàng)建同義詞。(1)為XSCJ數(shù)據(jù)庫的CJB表創(chuàng)建公用同義詞CJB。CREATEPUBLICSYNONYMCJB FORSYSTEM.CJB;(2)為XSCJ數(shù)據(jù)庫XSB表創(chuàng)建遠(yuǎn)程數(shù)據(jù)庫同義詞。CREATEPUBLICSYNONYMXSB FORSYSTEM.XSB@MY_LINK;2.利用CREATESYNONYM命令創(chuàng)建同義詞3.7.2使用同義詞一旦創(chuàng)建同義詞后,數(shù)據(jù)庫的用戶就可以直接通過同義詞名稱訪問該同義詞所指的數(shù)據(jù)庫對象,而不需要特別指出該對象的所屬關(guān)系?!纠?.23】SYSMAN用戶查詢XSCJ數(shù)據(jù)庫XSB表中所有學(xué)生的情況。SELECT*FROMXSB;如果沒有為XSCJ數(shù)據(jù)庫XSB表創(chuàng)建同義詞XSB,那么SYSMAN用戶查詢XSB表則需指定XSB表的所有者。SELECT*FROMSYSTEM.XSB;3.7.2使用同義詞一旦創(chuàng)建同義詞后,數(shù)據(jù)庫的用戶就可以1.利用OEM刪除同義詞在“同義詞搜索”頁面中,在搜索欄輸入搜索條件,單擊“開始”按鈕查找要刪除的同義詞后,選中要刪除的同義詞,單擊“刪除”,在出現(xiàn)的“確認(rèn)”頁面,單擊“是”按鈕后,就能刪除該同義詞。2.利用DROPSYNONYM命令刪除同義詞語法格式:DROP[PUBLIC]SYNONYM[schema.]synonym_name【例3.24】刪除公用同義詞CJB。DROPPUBLICSYNONYMCJB;1.利用OEM刪除同義詞3.1表結(jié)構(gòu)和數(shù)據(jù)類型3.2創(chuàng)建和管理表空間3.3界面方式操作表3.4命令方式操作表3.1表結(jié)構(gòu)和數(shù)據(jù)類型3.2創(chuàng)建和管理表空間3.33.5界面方式操作表數(shù)據(jù)3.6命令方式操作表數(shù)據(jù)3.7同義詞3.5界面方式操作表數(shù)據(jù)3.6命令方式操作表數(shù)據(jù)3.3.1.1表和表結(jié)構(gòu)每個數(shù)據(jù)庫包含若干個表。表是Oracle中最主要的數(shù)據(jù)庫對象,它是用來存儲數(shù)據(jù)的一種邏輯結(jié)構(gòu)。表由行和列組成,因此也稱之為二維表。表是在日常工作和生活中經(jīng)常使用的一種表示數(shù)據(jù)及其關(guān)系的形式,表3.1就是用來表示學(xué)生情況的一個學(xué)生表。學(xué)

號姓

名性

別出生時間專

業(yè)總

學(xué)

分備

注081101王林男1990-02-10計算機(jī)50081103王燕女1989-10-06計算機(jī)50081108林一帆男1989-08-05計算機(jī)52已提前修完一門課081202王林男1989-01-29通信工程40有一門課不及格,待補考081204馬琳琳女1989-02-10通信工程42表3.1“學(xué)生”表3.1.1表和表結(jié)構(gòu)學(xué)號姓名性別關(guān)系數(shù)據(jù)庫使用表(即關(guān)系)來表示實體及其聯(lián)系。表包含下列概念。(1)表結(jié)構(gòu):每個數(shù)據(jù)庫包含了若干個表。每個表包含一組固定的列,而列由數(shù)據(jù)類型(DATATYPE)和長度(LENGTH)兩部分組成,以描述該表所跟蹤的實體的屬性。(2)記錄:每個表包含了若干行數(shù)據(jù),它們是表的“值”,表中的一行稱為一個記錄,因此,表是記錄的有限集合。(3)字段:每個記錄由若干個數(shù)據(jù)項構(gòu)成,將構(gòu)成記錄的每個數(shù)據(jù)項稱為字段。例如表3.1中,表結(jié)構(gòu)為(學(xué)號,姓名,性別,出生時間,專業(yè),總學(xué)分,備注),包含7個字段,由5個記錄組成。(4)關(guān)鍵字:若表中記錄的某一字段或字段組合能唯一標(biāo)識記錄,則稱該字段或字段組合為候選關(guān)鍵字(Candidatekey)。若一個表有多個候選關(guān)鍵字,則選定其中一個為主關(guān)鍵字(Primarykey),也稱為主鍵。當(dāng)一個表僅有唯一的一個候選關(guān)鍵字時,該候選關(guān)鍵字就是主關(guān)鍵字。關(guān)系數(shù)據(jù)庫使用表(即關(guān)系)來表示實體及其聯(lián)系。表包含下列概念表是真正存儲各種各樣數(shù)據(jù)的對象,由行和列組成。行有時也稱為記錄,列有時也稱為字段或域。設(shè)計數(shù)據(jù)庫時,要決定它包括哪些表,每個表中包含哪些列,每列的數(shù)據(jù)類型等。當(dāng)創(chuàng)建和使用表時,需要使用不同的數(shù)據(jù)庫對象,包括數(shù)據(jù)類型、約束、默認(rèn)值、觸發(fā)器和索引等。在表中創(chuàng)建列時,必須為其指定數(shù)據(jù)類型,列的數(shù)據(jù)類型決定了數(shù)據(jù)的取值、范圍和存儲格式。列的數(shù)據(jù)類型可以是Oracle提供的系統(tǒng)數(shù)據(jù)類型,主要的系統(tǒng)數(shù)據(jù)類型列于表3.2中。表是真正存儲各種各樣數(shù)據(jù)的對象,由行和列組成。行有時也稱為記本小節(jié)以本書所使用到的學(xué)生管理系統(tǒng)的三個表:學(xué)生表(表名為XSB)、課程表(表名為KCB)和成績表(表名為CJB)為例介紹如何設(shè)計表的結(jié)構(gòu)。本書基礎(chǔ)部分使用的學(xué)生表XSB包含的屬性有學(xué)號、姓名、性別、出生時間、專業(yè)、總學(xué)分和備注。在實際開發(fā)中,應(yīng)該使用英文字母來表示列名,所以這里使用屬性的拼音首位字母表示列名。最后設(shè)計的XSB的表結(jié)構(gòu)如表3.3所示。列

名數(shù)據(jù)類型是否可空默

認(rèn)

值說

明列名含義XHchar(6)×無主鍵,前2位年級,中間2位班級號,后2位序號學(xué)號XMchar(8)×無姓名XBchar(2)ד男”性別CSSJdate×無出生時間ZYchar(12)√無專業(yè)ZXFnumber(2)√00≤總學(xué)分<160總學(xué)分BZvarchar2(200)√無備注表3.3XSB的表結(jié)構(gòu)本小節(jié)以本書所使用到的學(xué)生管理系統(tǒng)的三個表:學(xué)生表(表名為X參照XSB表結(jié)構(gòu)的設(shè)計方法,同樣可以設(shè)計出其他兩個表的結(jié)構(gòu),如表3.4所示的是KCB的表結(jié)構(gòu),表3.5所示的是CJB的表結(jié)構(gòu)。列

名數(shù)據(jù)類型是否可空默

認(rèn)

值說

明列名含義KCHchar(3)×無主鍵課程號KCMchar(16)×無課程名KKXQnumber(1)√1只能為1~8開課學(xué)期XSnumber(2)√0學(xué)時XFnumber(1)×0學(xué)分列

名數(shù)據(jù)類型是否可空默

認(rèn)

值說

明列名含義XHchar(6)×無主鍵學(xué)號KCHchar(3)×無主鍵課程號CJnumber(2)√無成績表3.4KCB的表結(jié)構(gòu)表3.5CJB的表結(jié)構(gòu)參照XSB表結(jié)構(gòu)的設(shè)計方法,同樣可以設(shè)計出其他兩個表的結(jié)構(gòu),3.2.1界面方式創(chuàng)建表空間【例3.1】使用OEM創(chuàng)建永久性表空間MYTS。(1)“一般信息”選項頁面。進(jìn)入“一般信息”選項頁面,在“名稱”文本框中輸入表空間名稱MYTS。注意,只能使用數(shù)據(jù)庫字符集中的字符,長度不得超過30個字符。名稱在數(shù)據(jù)庫中必須是唯一的。在該頁面包含:區(qū)管理、類型和狀態(tài)。狀態(tài)選項用于設(shè)置表空間狀態(tài),狀態(tài)有:讀寫、只讀和脫機(jī)三種,這里選擇“讀寫”,如圖3.1所示。3.2.1界面方式創(chuàng)建表空間(2)“存儲”選項頁面。單擊“存儲”選項頁面,則出現(xiàn)如圖3.2所示的界面。在該選項卡中進(jìn)行區(qū)分配、段空間管理、壓縮選項和啟用事件記錄設(shè)置。(2)“存儲”選項頁面。單擊“存儲”選項頁面,則出現(xiàn)如圖3.3.2.2命令方式創(chuàng)建表空間1.創(chuàng)建表空間創(chuàng)建表空間可以使用CREATETABLESPACE語句,創(chuàng)建的用戶必須擁有CREATETABLESPACE系統(tǒng)權(quán)限。在創(chuàng)建之前必須創(chuàng)建包含表空間的數(shù)據(jù)庫。語法格式:CREATETABLESPACEtablespace_name DATAFILE'path/filename'[SIZEinteger[K∣M]][REUSE] [AUTOEXTEND[OFF∣ON[NEXTinteger[K∣M]] [MAXSIZE[UMLIMITED∣integer[K∣M]]]] [MINMUMEXTENTinteger[K|M]] [DEFAULTstorage_clause] [ONLINE∣OFFLINE] [LOGGING∣NOLOGGING] [PERMANENT∣TEMPORARY] [EXTENTMANAGEMENT[DICTIONARY∣LOCAL[AUTOALLOCATE∣UNIFORM[SIZEinteger[K∣M]]]]]3.2.2命令方式創(chuàng)建表空間1.創(chuàng)建表空間3.2.2命令方式創(chuàng)建表空間【例3.2】創(chuàng)建大小為50MB的表空間TEST,禁止自動擴(kuò)展數(shù)據(jù)文件。CREATETABLESPACETEST LOGGING DATAFILE'D:\app\tao\oradata\XSCJ\TEST01.DBF'SIZE50M REUSEAUTOEXTENDOFF;結(jié)果如下所示:3.2.2命令方式創(chuàng)建表空間【例3.2】創(chuàng)建大小為53.2.2命令方式創(chuàng)建表空間【例3.3】創(chuàng)建表空間DATA,允許自動擴(kuò)展數(shù)據(jù)文件。CREATETABLESPACEDATA LOGGING DATAFILE'D:\app\tao\oradata\XSCJ\DATA01.DBF'SIZE50M REUSEAUTOEXTENDONNEXT10MMAXSIZE200M EXTENTMANAGEMENTLOCAL;3.2.2命令方式創(chuàng)建表空間【例3.3】創(chuàng)建表空間D2.管理表空間利用ALTERTABLESPACE命令可以修改現(xiàn)有的表空間或它的一個或多個數(shù)據(jù)文件??梢詾閿?shù)據(jù)庫中每一個數(shù)據(jù)文件指定各自的存儲擴(kuò)展參數(shù)值;Oracle會在自動擴(kuò)展數(shù)據(jù)文件時使用這些參數(shù)。語法格式:ALTERTABLESPACEtablespace_name [ADDDATAFILE∣TEMPFILE'path/filename'[SIZEinteger[K∣M]] [REUSE] [AUTOEXTEND[OFF∣ ON[NEXTinteger[K∣M]] MAXSIZE[UNLIMITED∣integer[K∣M]]] [RENAMEDATAFILE'path\filename',…nTO'path\re_filename',…n] [DEFAULTSTORAGEstorage_clause] [ONLINE∣OFFLINE[NORMAL∣TEMPORARY∣IMMEDIATE]] [LOGGING∣NOLOGGING] [READONLY∣WRITE] [PERMANENT] [TEMPORARY]2.管理表空間【例3.4】通過ALTERTABLESPACE命令把一個新的數(shù)據(jù)文件添加到DATA表空間,并指定了AUTOEXTENDON和

MAXSIZE300M。ALTERTABLESPACEDATA ADDDATAFILE'D:\app\tao\oradata\XSCJ\DATA02.DBF'SIZE50M REUSEAUTOEXTENDONNEXT50MMAXSIZE500M;修改表空間DATA屬性,命令如下:ALTERTABLESPACEDATAOFFLINE;【例3.4】通過ALTERTABLESPACE命令把一3.刪除表空間如果不再需要表空間和其中保存的數(shù)據(jù),可以使用DROPTABLESPACE語句刪除已經(jīng)創(chuàng)建的表空間。語法格式:DROPTABLESPACEtablespace[INCLUDINGCONTENTS[{AND|KEEP}DATAFILES][CASCADECONSTRAINTS]];【例3.5】刪除表空間DATA和及其對應(yīng)的數(shù)據(jù)文件。DROPTABLESPACEDATA INCLUDINGCONTENTSANDDATAFILES;3.刪除表空間3.3.1OEM方式操作表1.創(chuàng)建表以創(chuàng)建XSB表為例,使用OEM創(chuàng)建表的操作步驟如下。(1)使用system賬戶登錄數(shù)據(jù)庫實例XSCJ的OEM頁面,在“方案”屬性頁中的“數(shù)據(jù)庫對象”一欄,用戶可以管理模式對象,如表、索引和視圖等,如圖3.3所示。3.3.1OEM方式操作表3.3.1OEM方式操作表這里選擇“表”選項,進(jìn)入如圖3.4所示的“表搜索”頁面。3.3.1OEM方式操作表這里選擇“表”選項,進(jìn)入如圖33.3.1OEM方式操作表(2)單擊“創(chuàng)建”按鈕進(jìn)入“創(chuàng)建表:表組織”頁面,如圖3.5所示,指定表的存儲類型及是否為臨時表。這里按照默認(rèn)設(shè)置,選擇“標(biāo)準(zhǔn)”選項。3.3.1OEM方式操作表(2)單擊“創(chuàng)建”按鈕進(jìn)入“創(chuàng)(3)單擊“繼續(xù)”按鈕,進(jìn)入“創(chuàng)建表”頁面,如圖3.6所示。該界面有5個選項頁面,可以完成對表的定義。在如圖3.6所示的“一般信息”選項頁中定義表的名稱、所屬方案、使用的表空間和表的基本屬性。該選項頁面包括如下信息。(3)單擊“繼續(xù)”按鈕,進(jìn)入“創(chuàng)建表”頁面,如圖3.6所示。(4)單擊“約束條件”選項頁面,進(jìn)入“約束條件”選項界面,如圖3.7所示。在該選項頁面可以定義表的完整性約束條件。(4)單擊“約束條件”選項頁面,進(jìn)入“約束條件”選項界面,如(5)選擇PRIMARY約束條件,單擊“添加”按鈕,進(jìn)入如圖3.8所示的添加PRIMARY約束條件頁面。(5)選擇PRIMARY約束條件,單擊“添加”按鈕,進(jìn)入如圖(6)在圖3.7所示的界面中,單擊“存儲”選項頁面,進(jìn)入“存儲”選項頁,如圖3.9所示。在此指定表的存儲方式,包括指定區(qū)、空間利用率等特性,這里都按照默認(rèn)設(shè)置。(6)在圖3.7所示的界面中,單擊“存儲”選項頁面,進(jìn)入“存(7)在圖3.7所示的界面中,單擊“選項”選項,進(jìn)入“選項”選項頁面,如圖3.10所示。在該選項頁面中,可以定義表的并發(fā)操作、是否覆蓋和如何審計等特性,這里按照默認(rèn)設(shè)置。(7)在圖3.7所示的界面中,單擊“選項”選項,進(jìn)入“選項”(8)單擊“分區(qū)”選項頁面,進(jìn)入“分區(qū)”選項界面,如圖3.11所示。“分區(qū)”選項界面只在創(chuàng)建新表時可用,可以同時定義多個分區(qū)。已分區(qū)表的所有分區(qū)必須駐留在塊大小相同的表空間中。并不是所有這些表列都可以進(jìn)行分區(qū),只有日期型(DATE)或二進(jìn)制大對象(BLOB)等數(shù)據(jù)類型的表列可進(jìn)行分區(qū)。(8)單擊“分區(qū)”選項頁面,進(jìn)入“分區(qū)”選項界面,如圖3.12.修改表在創(chuàng)建了一個表之后,使用過程中可能需要對表結(jié)構(gòu)、約束或其他列的屬性進(jìn)行修改,另外可能會對表的存儲方式等信息進(jìn)行修改。表的修改與表的創(chuàng)建一樣,也可以通過OEM和PL/SQL兩種方法來進(jìn)行,本節(jié)討論在OEM中修改表的方法。對一個已存在的表可以進(jìn)行的修改操作包括:增加列,刪除列,修改已有列的屬性(列名、數(shù)據(jù)類型、是否為空值),修改存儲方式等操作。2.修改表【例3.6】表XSB中添加一個“獎學(xué)金等級”,名稱為JXJ,類型為NUMBER,允許為空值。在OEM的“方案”屬性頁下選擇“表”進(jìn)入表搜索頁面,在“對象名”欄輸入“XSB”,單擊“開始”按鈕,在結(jié)果列表中選擇選擇表XSB,單擊“編輯”按鈕,進(jìn)入如圖3.12所示界面?!纠?.6】表XSB中添加一個“獎學(xué)金等級”,名稱為JX3.刪除表刪除一個表時,表的定義、表中的所有數(shù)據(jù)以及表的索引、觸發(fā)器、約束等均被刪除。注意:不能刪除系統(tǒng)表和有外鍵約束所參照的表。例如,需將XSCJ數(shù)據(jù)庫中的表XSB刪除,操作過程為:在表搜索頁面中,搜索出要刪除的表XSB;單擊“使用選項刪除”按鈕,轉(zhuǎn)入刪除選項確認(rèn)界面,選擇“刪除表定義,其中所有數(shù)據(jù)和從屬對象(DROP)”選項;單擊“是”按鈕即可刪除表。3.刪除表3.3.2使用SQLDeveloper操作表1.創(chuàng)建表以創(chuàng)建XSB表為例,使用SQLDeveloper創(chuàng)建表的操作步驟如下。(1)啟動SQLDeveloper,在“Connections”節(jié)點下打開數(shù)據(jù)庫連接system_ora(已創(chuàng)建)。右擊“Tables”節(jié)點,選擇“NewTable”菜單。(2)進(jìn)入“CreateTable”窗口,在“Name”欄填寫表名XSB,在“Table”選項卡的“Column”、“Type”、“Size”、“NotNull”、“PrimaryKey”欄填入XSB表中學(xué)號列的列名、數(shù)據(jù)類型、長度、為空性和是否為主鍵等信息,輸入完一列后單擊“AddColumn”按鈕添加下一列,直到所有的列填完為止,如圖3.13所示。3.3.2使用SQLDeveloper操作表1.創(chuàng)建表(3)輸完最后一列的信息后,選中右上角的“Advanced”復(fù)選框,這時,會顯示出更多的表的選項,如表的類型、列的默認(rèn)值、約束條件、外鍵和存儲選項等,如圖3.14所示,例如要設(shè)置默認(rèn)值可以在“Column”選項頁中該列的“Default”欄輸入默認(rèn)值。(3)輸完最后一列的信息后,選中右上角的“Advanced”2.修改表表的主鍵列不能直接刪除,要刪除主鍵列必須先刪除主鍵。如果要刪除表的主鍵,單擊“PrimaryKey”選項,在窗口右邊的“SelectedColumn”欄會顯示已經(jīng)被設(shè)為主鍵的列,如圖3.15所示。雙擊該列即可取消主鍵,如果要設(shè)某一列為主鍵,在“AvailableColumns”欄雙擊該列或單擊“>”按鈕即可添加該列為主鍵。2.修改表3.刪除表以刪除XSB表為例,在“Tables”目錄下右擊XSB表選擇“Table”菜單下的“Drop”子菜單,如圖3.16所示,之后彈出“Drop”確認(rèn)對話框,選中“CascadeConstraints”復(fù)選框,單擊“應(yīng)用”按鈕,之后彈出已經(jīng)刪除表的提示消息,單擊“確定”按鈕即可。3.刪除表3.4命令方式操作表3.4.1創(chuàng)建表使用PL/SQL語句創(chuàng)建表時使用CREATETABLE語句。語法格式:CREATETABLE[schema.]table_name( column_namedatatype[DEFAULTexpression][column_constraint][,…n] <table_constraint>[,…n]) [PCTFREEinteger] [PCTUSEDinteger] [INITRANSinteger] [MAXTRANSinteger] [TABLESPACEtablespace_name] [STORGEstorage_clause] [CLUSTERcluster_name(cluster_column,…n)] [ENABLE|DISABLE] [ASsubquery]3.4命令方式操作表3.4.1創(chuàng)建表3.4.1創(chuàng)建表【例3.7】使用CRETETABLE命令為XSCJ數(shù)據(jù)庫建立表XSB,表結(jié)構(gòu)參照表3.3。打開SQL*Plus工具,以system方案連接數(shù)據(jù)庫,輸入以下語句:CREATETABLEXSB( XHchar(6) NOTNULL PRIMARYKEY, XMchar(8) NOTNULL, XBchar(2) DEFAULT'1'NOTNULL, CSSJdate NOTNULL, ZYchar(12) NULL, ZXFnumber(2) NULL, BZ varchar2(200)NULL);3.4.1創(chuàng)建表【例3.7】使用CRETETABL3.4.1創(chuàng)建表還可以在SQLDeveloper中運行SQL語句,方法如下:啟動SQLDeveloper,在主界面中展開“system_ora”連接,單擊工具欄的“

”按鈕選擇“system_ora”,界面中將彈出SQLWorksheet窗口,在窗口中輸入要運行的SQL語句,如圖3.17所示。輸入SQL語句結(jié)果顯示窗口3.4.1創(chuàng)建表還可以在SQLDeveloper中運行【例3.9】利用CREATETABLE命令為XSCJ數(shù)據(jù)庫建立表KCB,指定表的存儲參數(shù)。CREATETABLEKCB( KCH char(3) NOTNULLPRIMARYKEY, KCM char(16) NOTNULL, KKXQ number(1) NULL, XS number(2) NULL, XF number(1) NOTNULL)PCTFREE10PCTUSED40INITRANS1MAXTRANS255STORAGE(INITIAL64KMINEXTENTS1PCTINCREASE40 FREELISTS1FREELISTGROUPS1);【例3.10】創(chuàng)建XSB表中計算機(jī)專業(yè)學(xué)生的記錄備份。CREATETABLEXS_JSJ ASSELECT* FROMXSB WHEREZY='計算機(jī)';【例3.9】利用CREATETABLE命令為XSCJ數(shù)3.4.2修改表修改表結(jié)構(gòu)可以使用ALTERTABLE語句。語法格式:ALTERTABLE[schema.]table_name [ADD(column_namedatatype[DEFAULTexpression][column_constraint],…n)] /*增加新列*/ [MODIFY([datatype][DEFAULTexpression] [column_constraint],…n)] /*修改已有列的屬性*/ [STORAGEstorage_clause] *修改存儲特征*/ [DROPdrop_clause] /*刪除列或約束條件*/3.4.2修改表修改表結(jié)構(gòu)可以使用ALTERTABLE3.4.2修改表其中,DROP子句用于從表中刪除列或約束。語法格式:DROP{ COLUMNcolumn_name

∣PRIMARY[KEY]

∣UNIQUE(column_name,…n)

∣CONSTRAINTconstraint_name

∣[CASCADE]}3.4.2修改表其中,DROP子句用于從表中刪除列或約束【例3.11】使用ALTERTABLE語句修改XSCJ數(shù)據(jù)庫中的表。(1)在表XSB中增加兩列:JXJ(獎學(xué)金等級)、DJSM(獎學(xué)金等級說明)。ALTERTABLEXSB ADD(JXJnumber(1), DJSMvarchar2(40)DEFAULT'獎金1000元');(2)在表XSB中修改名為DJSM的列的默認(rèn)值。ALTERTABLEXSB MODIFY(DJSMDEFAULT'獎金800元');(3)在表XSB中刪除名為JXJ和DJSM的列。ALTERTABLEXSB DROPCOLUMNJXJ;ALTERTABLEXSB DROPCOLUMNDJSM;【例3.11】使用ALTERTABLE語句修改XSCJ3.4.2修改表(4)修改KCB表的存儲特征。ALTERTABLEKCB PCTFREE20MAXTRANS200;(5)為表XS_JSJ添加主鍵。ALTERTABLEXS_JSJ ADD(CONSTRAINT"PK_JSJ"PRIMARYKEY(XH));3.4.2修改表(4)修改KCB表的存儲特征。3.4.3刪除表語法格式:

DROPTABLE[schema.]table_name

schema為表的擁有者,table_name為要刪除的表名。例如要刪除表XSB,使用如下語句:

DROPTABLEXSB3.4.3刪除表語法格式:3.5界面方式操作表數(shù)據(jù)3.5.1插入、刪除和修改表數(shù)據(jù)首先,啟動SQLDeveloper,在system_ora連接下展開“Tables”目錄,單擊“XSB”表,在左邊窗口中選擇“Data”選項卡,界面如圖3.18所示。3.5界面方式操作表數(shù)據(jù)3.5.1插入、刪除和修改表3.5.1插入、刪除和修改表數(shù)據(jù)存入數(shù)據(jù)后XSB表的Data選項卡如圖3.19所示。3.5.1插入、刪除和修改表數(shù)據(jù)存入數(shù)據(jù)后XSB表的Da3.5.2從Excel表格中導(dǎo)入數(shù)據(jù)(1)在一個Excel文件中輸入要導(dǎo)入的數(shù)據(jù),其格式如圖3.20所示。其中,第一行必須為列標(biāo)題。3.5.2從Excel表格中導(dǎo)入數(shù)據(jù)(1)在一個Exce3.5.2從Excel表格中導(dǎo)入數(shù)據(jù)(2

溫馨提示

  • 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

提交評論