Oracle數(shù)據(jù)庫開發(fā)實用教程ppt課件(完整版)_第1頁
Oracle數(shù)據(jù)庫開發(fā)實用教程ppt課件(完整版)_第2頁
Oracle數(shù)據(jù)庫開發(fā)實用教程ppt課件(完整版)_第3頁
Oracle數(shù)據(jù)庫開發(fā)實用教程ppt課件(完整版)_第4頁
Oracle數(shù)據(jù)庫開發(fā)實用教程ppt課件(完整版)_第5頁
已閱讀5頁,還剩268頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 D1GB=1024MB1MB=1024KBOracle數(shù)據(jù)庫開發(fā)實用教程21世紀高職高專規(guī)劃教材 總 目 錄第1章 數(shù)據(jù)庫引論第2章 Oracle數(shù)據(jù)庫實用工具第3章 SQL語言與查詢第4章 數(shù)據(jù)的定義、操縱與控制第5章 PL/SQL程序塊第6章 存儲過程與函數(shù)第7章 PL/SQL包與觸發(fā)器第8章 數(shù)據(jù)庫對象第9章 權(quán)限、角色與用戶第10章 Oracle數(shù)據(jù)庫的邏輯備份第11章 數(shù)據(jù)庫設計過程與方法BD第1章 數(shù)據(jù)庫引論學習要點: 數(shù)據(jù)庫系統(tǒng)的模式結(jié)構(gòu) 數(shù)據(jù)模型 關(guān)系數(shù)據(jù)庫 本章主要內(nèi)容數(shù)據(jù)庫系統(tǒng)概論數(shù)據(jù)模型數(shù)據(jù)描述關(guān)系數(shù)據(jù)庫Oracle數(shù)據(jù)庫系統(tǒng)概述B1.1 數(shù)據(jù)庫系統(tǒng)概論1.1.1 信息

2、、數(shù)據(jù)與數(shù)據(jù)庫 信息是一種已經(jīng)被加工為特定形式的數(shù)據(jù),數(shù)據(jù)是信息的載體和具體表現(xiàn)形式,信息不隨數(shù)據(jù)形式的變化而變化。很多人認為數(shù)據(jù)就是數(shù)字,實際上數(shù)據(jù)有很多形式:文字、數(shù)字、圖形、聲音等。 數(shù)據(jù)和信息是兩個相互聯(lián)系但又相互區(qū)別的概念,數(shù)據(jù)是信息的具體表現(xiàn)形式,信息是數(shù)據(jù)有意義的表現(xiàn),而數(shù)據(jù)庫是一個可以共享的、存儲在計算機內(nèi)的、有組織的數(shù)據(jù)集合。 C1.1.2 數(shù)據(jù)管理技術(shù)的發(fā)展1人工管理階段2文件管理階段3數(shù)據(jù)庫管理階段4分布式數(shù)據(jù)庫管理階段A 表1-1 數(shù)據(jù)庫管理的發(fā)展階段A階段特點人工管理文件管理數(shù)據(jù)庫系統(tǒng)分布式系統(tǒng)背景應用背景科學計算科學計算,數(shù)據(jù)管理大規(guī)模管理分布式管理硬件背景無磁盤,

3、磁帶,磁鼓大容量磁盤大容量磁盤軟件背景無操作系統(tǒng)文件系統(tǒng)數(shù)據(jù)管理系統(tǒng)分布式數(shù)據(jù)管理系統(tǒng)處理方式批處理聯(lián)機實時處理,批處理聯(lián)機實時處理,批處理聯(lián)機實時處理,批處理,分布處理特點數(shù)據(jù)管理者用戶文件系統(tǒng)DBMS各個節(jié)點的DBMS數(shù)據(jù)對象應用程序某應用現(xiàn)實世界現(xiàn)實世界數(shù)據(jù)共享無差,冗余度高高,冗余度小數(shù)據(jù)共享數(shù)據(jù)獨立不獨立差高高結(jié)構(gòu)化無結(jié)構(gòu)記錄內(nèi)有結(jié)構(gòu),整體無結(jié)構(gòu)整體結(jié)構(gòu)化高整體結(jié)構(gòu)化高控制能力應用程序自己控制應用程序自己控制DBMS各個節(jié)點的DBMS1.1.3 數(shù)據(jù)庫系統(tǒng)的組成B 數(shù)據(jù)庫系統(tǒng)由計算機硬件、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫、應用程序和用戶等部分組成。 1.1.4 數(shù)據(jù)庫系統(tǒng)的模式結(jié)構(gòu)數(shù)據(jù)庫系統(tǒng)有

4、著不同的層次結(jié)構(gòu)。美國國家標準委員會在1975年公布了一個關(guān)于數(shù)據(jù)庫標準的報告,提出了數(shù)據(jù)庫的三級結(jié)構(gòu)組織,也就是SPARC分級結(jié)構(gòu)。三級結(jié)構(gòu)對數(shù)據(jù)庫的組織從內(nèi)到外分三個層次描述,分別稱為內(nèi)模式、概念模式和外模式。外模式又稱為子模式或用戶模式,是局部的邏輯結(jié)構(gòu),它與應用程序一一對應,一個數(shù)據(jù)庫有多個外模式,由用戶定義。概念模式又稱為模式或邏輯模式,是數(shù)據(jù)庫全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征描述。一個數(shù)據(jù)庫只有一個模式,由DBA使用DDL(數(shù)據(jù)定義語言)語言來定義。內(nèi)模式又稱為存儲模式,一個數(shù)據(jù)庫只有一個內(nèi)模式。事實上,三級模式中只有內(nèi)模式才是真正存儲數(shù)據(jù)的,而模式和外模式僅是一種邏輯表示數(shù)據(jù)的方法。這三

5、種模式之間存在兩種映射:外模式和模式之間的映射,它把用戶數(shù)據(jù)庫與概念數(shù)據(jù)庫聯(lián)系起來了。模式和內(nèi)模式之間的映射,它把概念數(shù)據(jù)庫與物理數(shù)據(jù)庫聯(lián)系起來了。1.1.5 數(shù)據(jù)庫系統(tǒng)的特點(1)實現(xiàn)數(shù)據(jù)共享,減少數(shù)據(jù)冗余。(2)采用特定的數(shù)據(jù)模型。(3)具有較高的數(shù)據(jù)獨立性。(4)有統(tǒng)一的數(shù)據(jù)控制功能。 B1.2 數(shù)據(jù)模型數(shù)據(jù)模型的三要素包括:數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和數(shù)據(jù)的約束條件。(1)數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)是所研究的對象類型的集合。(2)數(shù)據(jù)操作。數(shù)據(jù)操作是指對各種對象類型的實例(或值)所允許執(zhí)行的操作的集合,包括操作及有關(guān)的操作規(guī)則。(3)數(shù)據(jù)的約束條件。數(shù)據(jù)的約束條件是完整性規(guī)則的集合。1.2.1 層次模

6、型用樹形結(jié)構(gòu)表示數(shù)據(jù)及其聯(lián)系的數(shù)據(jù)模型稱為層次模型。層次模型的基本特點是:樹形結(jié)構(gòu)中有且僅有一個結(jié)點無父結(jié)點,稱其為根結(jié)點;其他結(jié)點有且只有一個父結(jié)點。層次模型可以直接方便地表示一對一聯(lián)系和一對多聯(lián)系,但不能直接表示多對多聯(lián)系。C1.2.2 網(wǎng)狀模型用網(wǎng)絡結(jié)構(gòu)表示數(shù)據(jù)及其聯(lián)系的數(shù)據(jù)模型稱為網(wǎng)狀模型,它是層次模型的拓展。網(wǎng)絡模型的結(jié)點間可以任意發(fā)生聯(lián)系,能夠表示各種復雜的聯(lián)系。網(wǎng)狀模型的基本特點是:(1)有一個以上結(jié)點無父結(jié)點。(2)至少有一個結(jié)點有多于一個的父結(jié)點。 1.2.3 關(guān)系模型用關(guān)系表示的數(shù)據(jù)模型稱為關(guān)系模型。關(guān)系數(shù)據(jù)模型由關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合和關(guān)系的完整性約束三大要素組成。關(guān)

7、系數(shù)據(jù)結(jié)構(gòu)是指由行與列構(gòu)成的二維表。在關(guān)系模型中,實體和實體間的聯(lián)系都是用關(guān)系表示的。也就是說,二維表格中既存放著實體本身的數(shù)據(jù),又存放著實體間的聯(lián)系。關(guān)系不但可以表示實體間一對多的聯(lián)系,通過建立關(guān)系間的關(guān)聯(lián),也可以表示多對多的聯(lián)系。D1.3 數(shù)據(jù)描述1.3.1 信息的三個層次計算機信息處理是這樣的一個過程:首先從現(xiàn)實世界中抽象出大量描述客觀事物的信息,再對這些信息進行整理、分類和規(guī)范,進而將規(guī)范化的信息數(shù)據(jù)化,最終實現(xiàn)由數(shù)據(jù)庫系統(tǒng)存儲、處理。在此過程中,涉及到三個層次,經(jīng)歷了兩次抽象和轉(zhuǎn)換。這三個層次分別是:客觀世界、信息世界和數(shù)據(jù)世界。兩次抽象和轉(zhuǎn)換是:(1)把客觀世界的信息抽象出來,轉(zhuǎn)換

8、為信息世界。(2)把信息世界的數(shù)據(jù)抽象出來,轉(zhuǎn)換為計算機處理的數(shù)據(jù)。1.3.2 實體與屬性客觀事物在信息世界中稱為實體,它是現(xiàn)實世界中任何可區(qū)分、可識別的事物。實體:可以是具體的人或物,如張三同學,石景山業(yè)余大學;也可是抽象概念,如一個人,一所學校。屬性:實體的特性稱為屬性。一個實體可用若干屬性來刻畫。每個屬性都有特定的取值范圍,即值域,值域的類型可以是整數(shù)型、實數(shù)型、字符型等。如學生這個實體,它的姓名和年齡等是學生的屬性;姓名的類型是字符型,值域是所有漢字;年齡是整數(shù)型,值域是(0,100)。B1.3.3 實體之間的關(guān)系 (1)一對一聯(lián)系(1:1)。若兩個不同型實體集中,任一方的一個實體只與

9、另一方的一個實體相對應,稱這種聯(lián)系為一對一聯(lián)系。(2)一對多聯(lián)系(1:n)。若兩個不同型實體集中,一方的一個實體對應另一方若干個實體,而另一方的一個實體只對應本方一個實體,稱這種聯(lián)系為一對多聯(lián)系。(3)多對多聯(lián)系(m:n)。 D1.4 關(guān)系數(shù)據(jù)庫關(guān)系數(shù)據(jù)庫是建立在關(guān)系模型基礎上的數(shù)據(jù)庫,它由一些相關(guān)的表和其他數(shù)據(jù)庫對象組成。這個定義包含幾層含義:(1)建立在關(guān)系模型基礎上。(2)信息被存放在表(二維表)中。(3)表之間是相互關(guān)聯(lián)的。(4)除了表之外,還有其他數(shù)據(jù)庫對象,如索引、視圖、存儲過程等。一般來說,關(guān)系數(shù)據(jù)庫主要包括數(shù)據(jù)定義、數(shù)據(jù)操作和數(shù)據(jù)控制。D1.5 Oracle數(shù)據(jù)庫簡介1.5.1

10、 Oracle數(shù)據(jù)庫及其版本1.5.2 Oracle 10g的版本Oracle 10g版本分為如下五類:(1)Oracle 10g標準版1。(2)Oracle 10g標準版。(3)Oracle 10g企業(yè)版。(4)Oracle 10g個人版。(5)Oracle 10g移動版。C 1.6 本章小結(jié) 本章主要介紹了數(shù)據(jù)管理技術(shù)的發(fā)展、數(shù)據(jù)庫系統(tǒng)的組成、數(shù)據(jù)庫系統(tǒng)的模式結(jié)構(gòu)以及數(shù)據(jù)庫系統(tǒng)的特點。 另外還介紹了數(shù)據(jù)模型的分類和數(shù)據(jù)描述方法,最后介紹了Oracle數(shù)據(jù)庫的版本和技術(shù)特點:網(wǎng)格化管理;自動存儲管理;可移植的集群組件;支持高速無限帶寬網(wǎng)絡;計算資源供應;共振。AD第2章 Oracle數(shù)據(jù)庫實

11、用工具學習要點 iSQL*Plus的使用 SQL*Plus的使用 本章主要內(nèi)容iSQL*Plus的使用SQL*Plus的使用WebDB開發(fā)工具簡介JDeveloper開發(fā)工具簡介B2.1 iSQL*Plus的使用進入iSQL*Plus的方法如下:(1)先檢查Oracle的服務。把Windows操作系統(tǒng)中控制面板下的服務窗口打開,檢查如下幾個服務是否打開。(2)在瀏覽器中輸入:/isqlplus,如圖2-1所示。(3)輸入安裝時設置的用戶名和密碼即可進入如圖2-2所示的界面。在編輯界面的工作區(qū),可以輸入SQL語句,PL/SQL 程序塊和SQL*Plus命令。如圖2-3所示。CA2.2 SQL*P

12、lus的使用B SQL*Plus有幾類命令:(1)環(huán)境維護。(2)格式設置命令。(3)行編輯和執(zhí)行命令。(4)輸入輸出命令。(5)其他命令。 2.2.1 環(huán)境維護命令1SHOW命令【例】查看所有系統(tǒng)變量值。SQLSHOW all;【例】顯示當前連接用戶。SQLSHOW user;【例】把錯誤信息列出來。SQLSHOW error;2SET命令使用SET 命令可以設置SQL PLUS的環(huán)境參數(shù)?!纠拷馆敵隽袠祟}。SQLSET heading off;heading的默認值為ON?!纠拷癸@示最后一行的計數(shù)反饋信息,默認值為“對6個或更多的記錄,回送ON”。SQLSET feedback o

13、ff;【例】設置查詢SQL語句的執(zhí)行時間,以便測試數(shù)據(jù)庫的性能。SQLSET timing on;timing的默認值為OFF?!纠吭O置默認提示符,默認值就是SQL。SQLSET sqlprompt SQL2.2.2 格式設置命令1表頭和表尾TTITLE 和BTITLE命令可以自動地在每頁的頂部和底部顯示日期和頁號。【例】表頭和表尾。SQLTTITLE sample report for | hitech corp;SQLBTITLE right strictly confidential;“|”表示換行,結(jié)尾不必加分號,選項有三種:right、left、center?!纠客顺雒睢QL

14、TTITLE OFF;SQLBTITLE OFF;2列格式COLUMN命令用于制定輸出列的標題、格式和處理的設置?!纠慷ㄖ屏袠祟}。SQLCOLUMN ename HEADING employee;SQLCOLUMN ename HEADING employee|name;【例】查詢工種為CLECK 的所有雇員信息。SQLCOLUMN sal FORMAT $9,999.99;SQLSELECT ename,sal,job,deptno FROM empWHERE job=CLECK ;3分組顯示BREAK和ORDER BY一起使用可以控制列輸出的統(tǒng)一排序?!纠糠纸M練習。SQLBREAK O

15、N deptnoSQLSELECT deptno,ename FROM emp ORDER BY deptno;結(jié)果如下:DEPTNO ENAME 100 SMITHJERRY 200 FORDSCOTT 300 JAMESWARK-C2.2.3 行編輯命令行編輯命令主要是對于SQL提示符下的命令的編輯。它們是1EDIT命令格式:EDIT 文件名;功能:把當前目錄中指定的.sql文件調(diào)入編輯器進行編輯。注意:這里的“當前行”指在最近執(zhí)行的命令中最近一次的命令(即當前緩存區(qū)中的最后一條命令)?!纠縿?chuàng)建s.sql文件。SQLEDIT s;如果當前目錄下不存在s.sql文件,則系統(tǒng)自動生成s.sq

16、l文件,這樣就可以輸入和編輯SQL命令了,例如輸入“SELECT * FROM tab;”,存盤退出。2APPEND命令格式:APPEND 追加的字符串;功能:追加字符串到緩沖區(qū)當前行尾。注意此命令可以使用簡寫命令“a”?!纠考僭O當前執(zhí)行命令為:SELECT * FROM tab;SQLa order by tname;a命令后面跟兩個空格。結(jié)果為:SQLSELECT * FROM tab ORDER BY tname;D3CHANGE命令格式:CHANGE/OLD/NEW;功能:在當前行用新的文本替換舊的文本。注意此命令可以使用簡寫命令“c”?!纠坑胻name替代當前行的“*”。SQLc

17、/*/tname;結(jié)果為:SQLSELECT tname FROM tab ORDER BY Tname;【例】從當前行刪除指定文本tab。SQLc/tab結(jié)果為:SELECT tname FROM ORDER BY tname;4del命令格式:SQLDEL功能:刪除當前行。SQLDEL n功能:刪除第n行。【例】DEL 命令的使用。刪除第2行。5INPUT命令格式:INPUT 文本功能:在當前行之后添加一行。B6LIST命令格式:LIST功能:顯示緩沖區(qū)中所有行。LIST n功能:顯示緩沖區(qū)中第 n 行。LIST m n功能:顯示緩沖區(qū)中 m 到 n 行。D7執(zhí)行命令SQLRUN執(zhí)行當前緩

18、沖區(qū)的命令。SQL/執(zhí)行當前緩沖區(qū)的命令。SQLR執(zhí)行當前緩沖區(qū)的命令。SQL文件名運行調(diào)入內(nèi)存的sql文件。D2.2.4 輸入輸出命令1SAVE 文件名功能:把正在建立的SQL查詢保存到一個選中的文件中,即將緩沖區(qū)的命令以文件方式存盤,缺省文件擴展名為.sql。2GET 文件名功能:調(diào)入存盤的sql文件。3START 文件名功能:START或告訴SQL*Plus執(zhí)行已經(jīng)存儲到文件中的指令,即運行調(diào)入內(nèi)存的sql文件。4SPOOL 文件名功能:SPOOL命令將通常在屏幕上顯示的報表移入一個文件,以便打印。即設置后,在之后的各種操作及執(zhí)行結(jié)果“假脫機”(即存盤到磁盤文件上),默認文件擴展名為.l

19、st。C5HOST功能:向主操作系統(tǒng)(Oracle運行的操作系統(tǒng))發(fā)送命令,即HOST命令后面可以使用主操作系統(tǒng)的命令?!纠恐鞑僮飨到y(tǒng)是Windows情況下的HOST的使用。SQLHOST Copy C:abc D:abc;如果主操作系統(tǒng)是UNIX,可以用SQLHOST mv C:abc D:abc;A2.2.5 其他命令1DESC 表名;功能:顯示表的結(jié)構(gòu)。【例】EMP是一個數(shù)據(jù)庫的表,顯示這個表的結(jié)構(gòu)。SQLDESC EMP;2EXIT 或QUIT功能:退出SQL*Plus。3CLEAR SCREEN功能:清空當前屏幕顯示。D2.3 WebDB開發(fā)工具簡介Oracle當前的Web開發(fā)工具

20、有以下三個:(1)Oracle Developer工具。Oracle Developer 能滿足用戶提出的任何要求,并能創(chuàng)建很“酷”的Web頁面。Developer允許創(chuàng)建Web窗體,但也提供了Client/Server窗體。(2)JDeveloper工具??梢哉f是比較矛盾的,它平衡著新技術(shù)和結(jié)構(gòu)化編程。JDeveloper 開發(fā)者能使用專門為Web創(chuàng)建的技術(shù)提供Web解決方案。因為有Java作為內(nèi)核,JDeveloper 允許用戶開發(fā)、調(diào)試及運行Web窗體和應用,它仍是一個開發(fā)產(chǎn)品,但有了一點改進。JDeveloper 的潛力很大,它將隨著Internet的發(fā)展不斷前進。(3)WebDB 工

21、具。是Oracle最簡單的Web開發(fā)工具。從表面上看,WebDB是一個使用、管理和開發(fā)應用的簡單工具。它能利用數(shù)據(jù)庫存儲自己的對象。正因為把所有東西都存入數(shù)據(jù)庫,WebDB允許用戶利用Oracle數(shù)據(jù)庫的可靠性和備份功能。通過使用數(shù)據(jù)維護、報表、圖形和查詢等多個功能來滿足眾多的需求,WebDB開發(fā)者能把應用迅速發(fā)布到Web。WebDB是簡單的開發(fā)工具,但擁有了管理數(shù)據(jù)庫的必備技能。C2.4 JDeveloper開發(fā)工具簡介Oracle的JDeveloper允許用戶快速容易地創(chuàng)建Java程序,而且只需很少的手工編程。JDeveloper簡化編程過程和編譯Java程序的關(guān)鍵在于它的集成化開發(fā)環(huán)境(

22、IDE)。JDeveloper是一種可視化的程序開發(fā)環(huán)境,它包括了Java成熟的組件,這些組件包括按鈕、下拉式菜單、標題、列表、數(shù)據(jù)庫等。JDeveloper是完全的鼠標驅(qū)動界面,大部分設計可以不必編碼。 程序設計者可以選擇一個組件,將其放在生成對象的程序中。JDeveloper自動產(chǎn)生確定這些項目的代碼,減少程序員設計時的無謂嘗試,使他們能夠集中精力完善這些對象的功能,比如能在用戶選擇菜單后,識別出將會發(fā)生什么。D 2.5 本章小結(jié) 本章主要介紹了Oracle 數(shù)據(jù)庫管理工具iSQL*Plus和SQL*Plus的使用以及WebDB、JDeveloper工具的特點。 WebDB在數(shù)據(jù)庫中存儲了

23、Web頁面需要的數(shù)據(jù),所以不管什么時候Web頁面的內(nèi)容發(fā)生變化,通過Web瀏覽器看到的頁面將反映最新的內(nèi)容。這里的內(nèi)容指的不僅是數(shù)據(jù),還包括頁首、頁腳、圖像和頁面導航。這樣開發(fā)人員就能對Internet和Intrannet不斷變化的需求做出快速的反應。 Oracle JDeveloper的特點:簡便的數(shù)據(jù)庫編程;Internet與Intranet部署;工業(yè)標準部件模型;針對Java的編程環(huán)境;高生產(chǎn)力可視化開發(fā);集成式JDBC支持;利用SQLJ進行數(shù)據(jù)庫編程;針對HTML客戶的服務器端的Java;針對HTML客戶的服務器端的Java;開放性與兼容性。讀者應該著重掌握iSQL*Plus和SQL*

24、Plus工具的使用,了解其他工具的用途。D第3章 SQL語言與查詢學習要點 基本查詢 多表聯(lián)接 子查詢 集合運算 聚合函數(shù) 本章主要內(nèi)容SQL 語言概述SQL語言的功能種類數(shù)據(jù)類型、運算符與表達式基本查詢多表聯(lián)接子查詢集合運算聚合函數(shù)B3.1 SQL語言概述SQL(Structured Query Language)是一種結(jié)構(gòu)化查詢語言,簡稱為SQL。它是1972年在SQUARE(Specifying Queries As Relational Expression)語言的基礎上由Boyce和Chamberlin提出的一個標準的、通用的結(jié)構(gòu)化查詢語言,后來將SEQUEL改為SQL。1989年,

25、美國ANSI采納了ANSI X3.1341989報告中定義的關(guān)系數(shù)據(jù)庫管理系統(tǒng)的SQL標準語言,稱為ANSI SQL 89。該標準被國際標準化組織(ISO)和美國聯(lián)邦政府組織所采納。3.2 SQL語言的功能種類B SQL語言按照功能可以分為四大類:(1)數(shù)據(jù)查詢語言,主要用于查詢數(shù)據(jù),以SELECT 語句為主要關(guān)鍵詞。(2)數(shù)據(jù)定義語言DDL,用于定義SQL模式、基本表、視圖和索引。(3)數(shù)據(jù)操縱語言DML,主要用于完成數(shù)據(jù)修改操作。(4)數(shù)據(jù)控制語言DCL,用于控制對數(shù)據(jù)庫的訪問,服務器的關(guān)閉、啟動等 3.3 數(shù)據(jù)類型、運算符與表達式3.3.1 簡單數(shù)據(jù)類型常用的簡單數(shù)據(jù)類型分為9個:Num

26、ber(p,s)、smallint、integer、float、double、char(n)、varchar(n)、date、time,下面一一進行介紹。(1)Number(p,s)。p是數(shù)字的整個位數(shù),s是小數(shù)點后的位數(shù)。如:number(8,4)是一個8位數(shù)字,其中小數(shù)點后有4位。如果沒有特別指定,例如:number,則系統(tǒng)會設為p=5;s=0。(2)smallint。表示16 位的整數(shù)。(3)integer。表示32 位的整數(shù)。(4)float。表示32位的實數(shù)。(5)double。表示64位的實數(shù)。(6)char(n)。表示固定長度為n的字符串,n不能超過 254。(7)varchar

27、(n)。表示可變長度的字符串且其最大長度為n,n不能超過 4000。(8)date。表示日期,包含年份、月份。(9)time。表示時間,包含小時、分鐘、秒。3.3.2 運算符SQL的運算符分為如下幾種:(1)算術(shù)運算符。加(+),減(-),乘(*),除(/)。(2)比較運算符。 (3)邏輯運算符 (4)范圍運算符 (5)列表運算符。 3.3.3 表達式SQL語言的表達式分為三類:算術(shù)表達式;關(guān)系表達式;邏輯表達式。(1)算術(shù)表達式。用算術(shù)運算符連接的表達式稱為算術(shù)表達式。如:sal +2000。(2)關(guān)系表達式。用比較運算符連接的表達式稱為關(guān)系表達式。如:sal 2000。(3)邏輯表達式。用

28、邏輯運算符連接的表達式稱為邏輯表達式。如:name =HERY AND SAL=2000。3.4 基本查詢SELECT語句的功能是從指定的數(shù)據(jù)庫的表中提取數(shù)據(jù)。其語法格式為:SELECT ALL|DISTINCT字段名列表FROM 表名WHERE 條件表達式GROUP BY group_by_list ORDER BY order_by_list ASC/DESC;說明:這條語句分為三大部分:(1)SELECT:SELECT子句用于指定檢索數(shù)據(jù)庫中的哪些列。(2)FROM:FROM子句用于指定從哪一個表或視圖中檢索數(shù)據(jù)。(3)WHERE:WHERE字句用于在查詢過程中的限制條件。關(guān)于DISTI

29、NCT子句、GROUP BY子句、ORDER BY子句的使用在本節(jié)后面介紹。C3.4.1 簡單查詢簡單查詢格式如下:SELECT 字段名列表 FROM 表名;【例】假設關(guān)于一個企業(yè)信息的數(shù)據(jù)庫中有三個表:職工表EMP、部門表DEPT、崗位(或工種)表JOBLEVEL。其中:表EMP有如下字段:D序號字段名稱字段類型字段說明1name字符型職工姓名2sex字符型性別3birth日期型出生日期4phone字符型員工個人聯(lián)系方式5deptname字符型所在部門6salary實型數(shù)據(jù)工資7job字符型崗位(或工種)8title字符型職務(無職務,可以為空)這個表主要描述企業(yè)的職工信息,數(shù)據(jù)如下 Bna

30、mesexbirthdeptnametitlephonesalaryjob歐陽軍女1986-09-01辦公室867988212500文員底雪洋男1998-10-09軟件開發(fā)部867988233800軟件開發(fā)李一嵐女1984-10-01軟件開發(fā)部139123454500軟件開發(fā)白海燕女1978-02-09市場部867988251700產(chǎn)品銷售劉紫羽女1989-01-09辦公室主任867988213000文員劉徐貝爾女1989-01-09軟件開發(fā)部經(jīng)理867988234500軟件開發(fā)周楚遠男1989-01-09市場部經(jīng)理867988252000產(chǎn)品銷售表DEPT有如下字段 D序號字段名稱字段類型字

31、段說明1deptname字符型部門名2manager字符型部門經(jīng)理姓名3addr字符型部門地址4phone字符型電話號碼表JOBLEVEL有如下字段:D序號字段名稱字段類型字段說明1job字符型崗位名字2level1數(shù)字型工資等級13level2數(shù)字型工資等級24level3數(shù)字型工資等級33.4.2 帶條件的簡單查詢SELECT 字段名列表FROM 表名WHERE 條件表達式這里講的帶條件的簡單查詢指單條件的查詢和組合條件的查詢。下面分別介紹。1單條件的查詢【例】查詢企業(yè)中工資超過2100元(包括2100元)的所有員工的姓名及其崗位。SQL 語句如下:SQLSELECT name,salar

32、y,job FROM EMP WHERE salary = 2100;C2組合條件的查詢組合條件指WHERE子句中的條件由多個條件組成,這些組合主要是由邏輯運算符(AND、OR、NOT)組成。看下面的例子。【例】找出企業(yè)員工中做軟件開發(fā)工作并且工資在4000元以上的員工姓名和所在部門。SQL 語句如下:SQLSELECT name,deptname,salary,jobFROM EMPWHERE job=軟件開發(fā) and salary 4000;A3.4.3 單表查詢應用1查詢某些字段不同的記錄在查詢工程中,可能發(fā)現(xiàn)有某些相同的數(shù)據(jù),為了只顯示不同的數(shù)據(jù),可以使用DISTINCT關(guān)鍵字?!纠?/p>

33、查詢企業(yè)中有多少種不同的崗位。SQL 語句如下:SQLSELECT DISTINCT job FROM EMP;D2BETWEENAND關(guān)鍵字的使用BETWEENAND 關(guān)鍵字給出了查詢范圍內(nèi)的字段,而NOT BETWEENAND則給出了查詢選擇范圍之外的某些列?!纠空页龉べY在2000元到3500元的所有員工。SQL 語句如下:SQLSELECT name,salaryFROM EMPWHERE salary BETWEEN 2000 AND 3500;C3模糊查詢前面的查詢都是精確查詢,但是我們平時查詢時經(jīng)常會使用模糊查詢,比如“找姓陳的先生”,“找員工名字中最后一個字是琳的小姐”等,這些

34、只給出某個字段得到部分關(guān)鍵詞而不是字段的整個數(shù)據(jù)時,就可以使用LIKE關(guān)鍵字了。而NOT LIKE的意思正好相反。這里介紹幾個通配符,如表3-3所示。D序號通配符說明1%代表0到多個字符2_代表單個字符4NULL和 NOT NULL 關(guān)鍵字的使用NULL和 NOT NULL主要用于找出下落不明值的記錄。例如,在公司人員招聘過程中,查詢出尚未安排面試的候選人名單?!纠坎樵冝k公室中一般員工的基本信息(不帶職務的員工)。SQL 語句如下:SQLSELECT *FROM EMPWHERE deptname=辦公室 AND title =null;5查詢結(jié)果排序ORDER BY 子句使得SQL在顯示查

35、詢結(jié)果時將各返回行按順序排列,返回行的排列順序由ORDER BY 子句指定的表達式的值ASC 或DESC確定。SELECT ALL|DISTINCT字段名列表FROM 表名WHERE 條件表達式GROUP BY group_by_list ORDER BY order_by_list ASC/DESC;其中:ASC:升序。表示按照遞增順序從低到高對指定的列值排序。DESC:降序。表示按照遞減順序從高到低對指定的列值排序。6字段運算查詢在數(shù)據(jù)庫查詢時,我們希望把表中的數(shù)據(jù)進行基本的算術(shù)運算,然后顯示出來。常見的算術(shù)運算有:+(加)、-(減)、*(乘)、/(除)四種。【例】如果將軟件開發(fā)部的所有員

36、工工資增加1000元,請顯示出此部門的員工姓名和工資。SQL 語句如下:SQLSELECT name,salary+1000FROM EMPWHERE deptname=軟件開發(fā)部;7rowid和rownumrowid和rownum是很有用的兩個數(shù)據(jù)庫表中隱含的字段。rowid 是數(shù)據(jù)庫內(nèi)部的十六進制的數(shù)據(jù)地址,表明信息放在第幾塊第幾行。rownum是行號,并且順序排列,根據(jù)你的select語句的執(zhí)行動態(tài)生成。它表示是表的邏輯上的第幾行【例】區(qū)別rowid和rownum。SQLSELECT rownum,rowid,ename FROM EMP;執(zhí)行結(jié)果:rownum rowid ename-

37、1 D9B3333C.0003.0002 白海燕2 DAAAA66D.0002.0002 周楚遠3 BAA33331.0003.0002 底雪洋4 D555DFD.0005.0002 歐陽軍5 DB133344.0006.0002 劉徐貝爾.8別名的使用在前面的查詢中,顯示的結(jié)果都是用字段名來顯示的,這樣不是很直觀,我們可以給顯示的字段名起一個直觀的名字(叫“別名”),以這個別名來顯示。格式是:字段名 as 別名在“字段名”和“別名”之間加空格或者“as”即可,可以將默認的字段名以設定的名稱顯示?!纠匡@示出軟件開發(fā)部的每個員工工資增加1000元后的信息。SQLSELECT name 員工姓名

38、,salary+1000 增加工資FROM EMPWHERE deptname=軟件開發(fā)部;3.4.4 多表查詢多表查詢是指查詢結(jié)果要從兩個以上的表中檢索結(jié)果?!纠坎樵儐T工“劉紫羽”所在的部門地址。分析:首先確定要求中的關(guān)鍵字:劉紫羽,部門地址。然后確定查詢的表有哪些?!安块T名稱”在部門表DEPT中,但是“劉紫羽”是員工名稱,“員工名稱”在表EMP中。所以我們確定查詢的表涉及兩個表:EMP和DEPT。SQL語句如下:SQLSELECT d.addrFROM EMP e,DEPT dWHERE =劉紫羽;3.5 子查詢?nèi)绻骋粋€SELECT命令(查詢1)出現(xiàn)在另一個SQL命令(查詢2)的一個子

39、句中,則稱查詢1是查詢2的子查詢,又稱為“嵌套查詢”。在SELECT查詢語句里可以嵌入SELECT查詢語句,稱為嵌套查詢。有些書中將內(nèi)嵌的SELECT語句稱為“子查詢”,子查詢形成的結(jié)果又稱為父查詢的條件。下面是嵌套查詢的格式:SELECT 字段列表FROM 表名WHERE 操作符(SELECT select_list FROM table);3.5.1 簡單子查詢【例】查詢員工中所有高于員工底雪洋薪水的員工信息。SQL 語句如下:SQLSELECT name,sex,salaryFROM EMPWHERE salary= (SELECT salary FROM EMP WHERE name=

40、底雪洋);3.5.2 單行子查詢單行子查詢的結(jié)果僅返回一行記錄。一般使用比較運算符(、=、)?!纠块喿x下面的SQL 語句,并解釋其含義。SQLSELECT name,sex,salaryFROM EMPWHERE job = (SELECT job FROM EMP WHERE name =底雪洋)AND salary (SELECT salary FROM EMP WHERE name=李一嵐);3.6 集合運算3.6.1 UNIONUNION 是集合的并運算,并運算的結(jié)果是參加運算的集合元素的總和,相當于數(shù)學的加法。如圖3-1所示。其中集合A和集合B的交叉部分為集合C。集合A集合B3.6

41、.2 INTERSECTINTERSECT是集合的交運算。交運算的結(jié)果是參加運算的集合元素的公共元素。假設:集合A=1,2,3,集合B=2,3,5,那么執(zhí)行INTERSECT運算的結(jié)果是2,3。數(shù)學符號記為:AB。在SQL語言中它返回查詢結(jié)果中的相同部分?!纠空页鯽ccount、research、sales中都存在的工種。SQLSELECT job FROM accountINTERSECTSELECT job FROM researchINTERSECTSELECT job FROM sales;3.6.3 MINUSMINUS是集合的差運算。差運算的結(jié)果是參加運算的集合元素中從第一個集合

42、中去掉二者相同部分元素后剩余的元素,相當于數(shù)學的減法。假設:集合A=1,2,3,集合B=2,3,5,那么執(zhí)行MINUS運算的結(jié)果是1。數(shù)學符號記為:A-B。在SQL語言中它返回在第一次查詢結(jié)果中而不在第二次查詢結(jié)果中的記錄?!纠空页鲈赼ccount 中存在而在research中不存在的工種。SQLSELECT job FROM accountMINUSSELECT job FROM research;3.7 聚合函數(shù)常用的聚合函數(shù)包括如下幾種函數(shù):AVG()、MIN()、MAX()、SUM()、COUNT()。1MAX格式:MAX(x)返回一個字段的所有值中的最大值。如果x是VARCHAR2

43、數(shù)據(jù)類型,返回一個字符串;如果x是一個DATE數(shù)據(jù)類型,返回一個日期;如果x是number數(shù)據(jù)類型,返回一個數(shù)字?!纠坎樵僂MP表中的最高工資。SQLSELECT max(salary) AS 最高薪水 FROM EMP;2MIN格式:MIN(x)返回一個字段的所有值中的最小值。如果字段是空的,函數(shù)MIN()返回空值。【例】查詢EMP表中的最低工資。SQLSELECT MIN(salary) AS 最少薪水 FROM EMP;【例】查詢公司中工資最高和工資最低的員工。SQLSELECT ename,salFROM EMPHAVING sal=(SELECT MAX(SAL) FROM EMP

44、) AND sal=(SELECT MIN(SAL) FROM EMP);3AVG格式:AVG(x返回指定字段中的平均值。注意,函數(shù)AVG()只能對數(shù)值型字段使用,即x的數(shù)據(jù)類型只能是數(shù)值型,如果空值即AVG(),忽略不計。缺省設置為ALL?!纠坎樵冘浖_發(fā)部人員的平均工資。SQLSELECT avg(salary) AS 平均工資FROM EMPWHERE deptname=軟件開發(fā)部;4COUNT格式:COUNT(*)返回查詢中行的數(shù)目,缺省值是ALL,*表示返回所有的行。用來統(tǒng)計一個表中有多少條記錄,包括有空值的記錄。因此,不需要指定要被計算的特定字段。【例】統(tǒng)計EMP表目前有多少條記

45、錄。SQLSELECT count(*) AS 記錄總數(shù) FROM EMP;5SUM格式:SUM(x)返回選擇列表項目x的數(shù)值的總和?!纠壳笏胁块T的工資總和。SQLSELECT SUM(salary) AS 薪水總和 FROM EMP;3.7.2 GROUP BY的應用聚合函數(shù)就是操作那些已經(jīng)分好組的數(shù)據(jù),可以用GROUP BY給數(shù)據(jù)分組或者分類。【例】對于員工表EMP和部門表DEPT,查詢各個部門的職工數(shù)。SQLSELECT d.deptno,COUNT()FROM EMP e,dept dWHERE e.deptno=d.deptno GROUP BY d.deptno;3.7.3 H

46、AVING與 WHERE 關(guān)鍵詞的使用在使用聚合函數(shù)時一定要小心,如果在SELECT 查詢語句的條件表達式中出現(xiàn)聚合函數(shù)時不要使用WHERE 條件句,而要使用HAVING條件句。【例】查詢哪些部門的工資總和超過了10000元。SQLSELECT deptno,SUM(salary)FROM EMPGROUP BY deptnoHAVING AVG(salary) 10000;3.7.4 ORDER BY的應用使用ORDER BY 子句可以對查詢結(jié)果進行排序,其中包括升序和降序。升序使用ASC關(guān)鍵字(缺省值),降序使用DESC關(guān)鍵字?!纠坎樵僂MP表中所有男員工的信息,按照工資從大到小進行排序

47、。SQLSELECT * FROM EMPWHERE sex=男ORDER BY salary;3.8 本章小結(jié)本章介紹了SQL語言的功能和種類,數(shù)據(jù)類型、運算符和表達式,還介紹了本章的重點SQL語言的數(shù)據(jù)查詢語句SELECT、多表查詢和子查詢,最后介紹了集合運算和聚合函數(shù)的應用。注意,聚合函數(shù)在SELECT 語句中的使用,即WHERE條件句和 HAVING條件句的區(qū)別。D第4章 數(shù)據(jù)的定義、操縱與控制學習要點數(shù)據(jù)定義語言DDL數(shù)據(jù)操縱語言DML事務與事務控制語言DCL 本章主要內(nèi)容數(shù)據(jù)定義語言DDL數(shù)據(jù)操縱語言DML事務與事務控制語言DCLB4.1 數(shù)據(jù)定義語言數(shù)據(jù)定義語言DDL是一組SQL

48、命令,用于創(chuàng)建和定義數(shù)據(jù)庫對象,并且將對這些對象的定義保存在數(shù)據(jù)字典中。數(shù)據(jù)定義語言使用戶能完成下列任務:創(chuàng)建數(shù)據(jù)庫對象;刪除數(shù)據(jù)庫對象;更改數(shù)據(jù)庫對象;為數(shù)據(jù)庫對象授權(quán);回收已授予數(shù)據(jù)庫對象的權(quán)限。4.1.1 創(chuàng)建語句CREATE 與數(shù)據(jù)類型B CREATE語句是用于創(chuàng)建數(shù)據(jù)庫對象的語句,如:表、索引、視圖、同義詞、過程、函數(shù)、數(shù)據(jù)庫鏈接等。創(chuàng)建數(shù)據(jù)庫表的語句格式如下:CREATE TABLE 表名(列名1 列約束,列名2 列約束,列名n 列約束)其中“列約束”包括:(1)datatype:數(shù)據(jù)的類型。(2)DEFAULT expr:列的缺省值expr。(3)column_constrain

49、t:列的約束。列的約束包括:非空約束NOT NULL、唯一性約束UNIQUE。NOT NULL表示是否允許數(shù)據(jù)有空(尚未有數(shù)據(jù)填入),如果不寫,默認為可以為空。(4)table_constraint:表的約束。包括表的主鍵等。(5)primary key:表明本列(或字段)是本表的主鍵。 4.1.2 刪除語句DROP刪除語句的格式如下:DROP table_name:用于從數(shù)據(jù)庫中刪除表table_name。DROP index_name:用于從數(shù)據(jù)庫中刪除索引index_name?!纠繌臄?shù)據(jù)庫中刪除表EMP。SQLDROP TABLE EMP;4.1.3 修改語句ALTERALTER語句是

50、對數(shù)據(jù)庫表的結(jié)構(gòu)進行修改。原來用CREATE 語句創(chuàng)建的表,現(xiàn)在感到有些不妥,需要修改就可以使用ALTER 語句修改表的定義。1在表的后面增加一個字段語句格式為:ALTER TABLE 表名 ADD 列名 類型;或者ALTER TABLE表名 ADD (列名 類型);如果增加多個字段,可以:ALTER TABLE 表名 ADD (列名 類型,列名 類型,);2增加(或設置)一個主鍵ALTER TABLE 表名ADD PRIMARY KEY (列名,列名);或者ALTER TABLE 表名 ADD CONSTRAINT 約束名 PRIMARY KEY (列名,列名);說明:(1)兩個語句都是把表

51、的某一個或幾個列設為主鍵。(2)前者的約束名系統(tǒng)給定為SYS_C00*,后者的約束名是用戶定義的。3刪除主鍵ALTER TABLE 表名 DROP PRIMARY KEY (列名);【例】把EMP 表的主鍵刪除。SQLALTER TABLE EMP DROP PRIMARY KEY (ENAME_ID);4改變表的名稱語句格式為:RENAME 舊表名 TO 新表名;【例】把表EMP修改為EMP1。SQLRENAME EMP TO EMP1;C5修改表里字段的定義描述語句格式為:ALTER TABLE 表名MODIFY 字段描述;6給表里的字段加上唯一性約束條件語句格式為:ALTER TABLE

52、 表名 ADD CONSTRAINT cons_name UNIQUE(列名);其中cons_name為約束名稱,給約束起個名稱?!纠繉Ρ鞟BC 的字段A1增加唯一性約束。SQLALTER TABLE ABC ADD CONSTRAINT ONLY UNIQUE(A1);D4.1.4 數(shù)據(jù)刪除語句TRUNCATETRUNCATE TABLE 命令只刪除表的記錄,而不刪除表的結(jié)構(gòu)。格式如下:TRUNCATE TABLE table_name;【例】刪除表EMP的所有記錄。SQLTRUNCATE TABLE EMP;C4.2 數(shù)據(jù)操縱語言 數(shù)據(jù)操縱語言DML(Data Manipulation

53、Language)是SQL的一個子集,主要包括增加數(shù)據(jù)(INSERT)、更改數(shù)據(jù)(UPDATE)、刪除數(shù)據(jù)(DELETE)等模式,以下分別介紹它們的語法。 所有的DML語句不是自動提交的,所以在DML語句之后必須發(fā)出一個提交命令才能提交(如果在SQL PLUS環(huán)境下,可以把SQL PLUS設置為自動提交)。A4.2.1 插入語句INSERTINSERT語句是在指定的表中增加數(shù)據(jù)(或插入一條記錄)。格式如下:INSERT INTO table_name (column1,column2,) values ( value1,value2,)D【例4-13】根據(jù)已經(jīng)存在的表EMP創(chuàng)建新表manage

54、r。創(chuàng)建的同時將EMP表中有職務的雇員復制到其中。(1)建立表結(jié)構(gòu)。SQLCREATE TABLE manager SQLSELECT empid,name,salary FROM EMP WHERE title != null;建立了一個新表manager(empid,name,salary),字段名與EMP相同。如果建立的新表與舊表EMP的字段不相同,則可以這樣寫:SQLCREATE TABLE manager(empno,ename,sal)SQLSELECT empid,name,salary FROM EMP WHERE title != null;建立了一個新表manager(em

55、pno,ename,sal)。C(2)從EMP表復制數(shù)據(jù)到manager表。從EMP表中把無職務的雇員插入到manager表中。SQLINSERT INTO managerSQLSELECT empno,ename,salFROM EMPWHERE title =null;D4.2.2 更新語句UPDATEUPDATE命令用于修改表中的數(shù)據(jù)。UPDATE命令有兩種格式。1簡單格式SQLUPDATE table_name SET column1=xxx WHERE conditoins;說明:(1)更改某個列,設定其值為xxx。(2)conditions是所要符合的條件,若沒有WHERE則整個t

56、able的那個列全部會被更改?!纠繉T工中出生日期為1989年09月01日的員工的工資翻一倍。SQLUPDATE EMP SET salary =2*salaryWHERE birth =TO_DATE(1989-09-01);2嵌套方式UPDATE語句的另外一種用法:UPDATE 表名1 SET(字段名1,字段名2,)=(SELECT 字段名1,字段名2, FROM 表名2 WHERE 條件);注意:這個格式中“SET(字段名1,字段名2,)”子句與“SELECT 字段名1,字段名2”子句的字段個數(shù)和類型一定要相同?!纠繉anager表中編號為1000的雇員名字和工資修改成為EMP表的

57、編號為7788的雇員的名字和工資。SQLUPDATE managerSET (ename,sal) =(SELECT ename,sal FROM EMP WHERE empno = 7788)WHERE empno = 1000;4.2.3 刪除語句DELETEDELETE語句用來從表中刪除一行或多行數(shù)據(jù)。格式如下:DELETE FROM表名 WHERE 條件;說明:(1)此語句刪除符合條件的數(shù)據(jù)。(2)FROM 是可選項。(3)該命令包含兩個語句:關(guān)鍵字DELETE FROM后是表名。WHERE后是刪除條件。4.3 事務與事務控制語言4.3.1 事務一個事務可以被定義為和單個的邏輯單位一起

58、執(zhí)行的一串操作,由一個或多個SQL語句組成。一個事務是一個原子單位,構(gòu)成事務的全部SQL語句的結(jié)果可被全部提交或者全部回滾。一個事務由第一個可執(zhí)行SQL語句開始,以提交或回滾結(jié)束。4.3.2 事務提交COMMIT 提交一事務,即將在事務中由SQL語句所執(zhí)行的改變永久化。在提交前,Oracle已有下列情況:(1)在SGA的回滾段緩沖區(qū)已生成回滾段記錄,回滾信息包含所有修改值的舊值。(2)在SGA的日志緩沖區(qū)已生成日志項。這些改變在事務提交前可進入磁盤。(3)對SGA的數(shù)據(jù)庫緩沖區(qū)已作修改,這些修改在事務真正提交之前可進入磁盤。 在事務提交之后,有下列情況:1)對于與回滾段相關(guān)的內(nèi)部事務表記錄提交

59、事務,并賦給一個相應的唯一系統(tǒng)修改號(SCN),記錄在表中。2)在SGA的日志緩沖區(qū)中日志項由LGWR進程寫入到在線日志文件,這是構(gòu)成提交事務的原子事務。3)在行上和表上的封鎖被釋放。4)該事務標志為完成。事務提交有三種方式:顯式提交、隱式提交、自動提交。 1顯式提交語法:COMMIT;也就是說直接使用COMMIT命令進行的提交就是顯式提交。2隱式提交隱式提交不用直接使用COMMIT命令提交,這個操作已經(jīng)包含在其他命令里面,這些命令是:DDL 類語句(CREATE,DROP,ALTER,TRUNCATE,GRANT,REVOKE)。換句話說,執(zhí)行了這些命令后就不用再執(zhí)行COMMIT 命令進行提

60、交了。而DML類語句不是隱式提交的。3自動提交為了使數(shù)據(jù)庫的修改永久化,在SQL*Plus 中設置AUTOCOMMIT為允許狀態(tài):SQL SET AUTOCOMMIT ON;4.3.3 事務回滾ROLLBACK事務回滾的含義是撤消未提交事務中的SQL語句所作的對數(shù)據(jù)的修改。Oracle允許撤消未提交的整個事務,也允許撤消部分事務。換句話說,回滾消除上一個COMMIT命令所做的全部修改,使得數(shù)據(jù)庫的內(nèi)容恢復到上一個COMMIT執(zhí)行后的狀態(tài)。在回滾整個事務(沒有引用保留點Savepoint,在后面介紹)時,有下列情況:(1)在事務中所有SQL語句作的全部修改,可以利用相應的回滾段被撤消。(2)所有

溫馨提示

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

最新文檔

評論

0/150

提交評論