版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、27 八月 20221第1章 數(shù)據(jù)庫基礎知識27 八月 20222第1章 數(shù)據(jù)庫基礎知識本章主要內容數(shù)據(jù)庫的基本原理管理數(shù)據(jù)庫及其對象數(shù)據(jù)庫安全設置和管理27 八月 20223數(shù)據(jù)管理技術的產生和發(fā)展數(shù)據(jù)處理是指數(shù)據(jù)收集、存儲、加工和傳輸?shù)然顒拥目偤?。什么是?shù)據(jù)管理對數(shù)據(jù)進行分類、組織、編碼、存儲、檢索和維護,是數(shù)據(jù)處理的中心問題數(shù)據(jù)管理技術的發(fā)展過程人工管理階段(40年代中-50年代中)文件系統(tǒng)階段(50年代末-60年代中)數(shù)據(jù)庫系統(tǒng)階段(60年代末-現(xiàn)在)27 八月 20224數(shù)據(jù)庫技術產生于六十年代末,是數(shù)據(jù)管理的最新技術,是計算機科學的重要分支。數(shù)據(jù)庫技術是信息系統(tǒng)的核心和基礎,它的出
2、現(xiàn)極大地促進了計算機應用。數(shù)據(jù)庫的建設規(guī)模、數(shù)據(jù)庫信息量的大小和使用頻度已成為衡量一個國家信息化程度的重要標志。數(shù)據(jù)庫系統(tǒng)概述27 八月 20225四個基本概念數(shù)據(jù)(Data)數(shù)據(jù)是數(shù)據(jù)庫中存儲的基本對象數(shù)據(jù)庫(Database)數(shù)據(jù)庫(Database,DB)是長期儲存在計算機內、有組織的、可共享的大量數(shù)據(jù)集合。存放數(shù)據(jù)的倉庫。數(shù)據(jù)庫管理系統(tǒng)(DBMS)數(shù)據(jù)庫管理系統(tǒng)(DBMS)是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件。數(shù)據(jù)庫管理系統(tǒng)是對數(shù)據(jù)庫進行管理和實現(xiàn)對數(shù)據(jù)庫的數(shù)據(jù)進行操作的管理系統(tǒng)。數(shù)據(jù)庫系統(tǒng)(DBS):使用DBMS的軟件系統(tǒng)27 八月 20226硬件應用系統(tǒng)應用開發(fā)工具軟件DBM
3、S操作系統(tǒng)編譯系統(tǒng)帶有數(shù)據(jù)庫的計算機系統(tǒng)層次27 八月 20227DBMS的主要功能數(shù)據(jù)定義功能:DDL,定義數(shù)據(jù)對象數(shù)據(jù)操縱功能:(DML) 操縱數(shù)據(jù)實現(xiàn)對數(shù)據(jù)庫操作SIDU數(shù)據(jù)庫的運行管理:安全性、完整性、 多用戶并發(fā)操作,故障后的系統(tǒng)恢復數(shù)據(jù)庫的建立和維護功能(實用程序) 數(shù)據(jù)庫數(shù)據(jù)批量裝載,轉儲,重組織 性能監(jiān)視, 分析功能等。27 八月 20228四、數(shù)據(jù)庫系統(tǒng)什么是數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)(DBS)是指在計算機系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng)構成。在不引起混淆的情況下常常把數(shù)據(jù)庫系統(tǒng)簡稱為數(shù)據(jù)庫。數(shù)據(jù)庫系統(tǒng)的構成由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)(及其開發(fā)工具)、應用系統(tǒng)、數(shù)據(jù)庫管理員(和用戶)構成。2
4、7 八月 20229數(shù)據(jù)庫系統(tǒng)(續(xù))數(shù)據(jù)庫系統(tǒng)構成數(shù)據(jù)庫系統(tǒng)在計算機系統(tǒng)中的位置用戶用戶用戶應用系統(tǒng)開發(fā)工具DBMS操作系統(tǒng)數(shù)據(jù)庫數(shù)據(jù)庫管理員27 八月 202210數(shù)據(jù)庫系統(tǒng)的特點一、數(shù)據(jù)結構化數(shù)據(jù)結構化:是與文件系統(tǒng)的根本區(qū)別文件是記錄內部有結構。定長等。數(shù)據(jù)庫可以描述記錄之間的關系。27 八月 202211二、數(shù)據(jù)的共享性高、冗余度低,易擴充數(shù)據(jù)是面向整個系統(tǒng)。多個用戶共享,減少冗余。 避免不相容與不一致性。不一致性是指同一數(shù)據(jù)不同拷貝的值不一樣。容易增加,易于擴充,適用各種需求。數(shù)據(jù)庫系統(tǒng)的特點27 八月 202212物理獨立性指用戶的應用程序與存儲在磁盤上的數(shù)據(jù)庫中數(shù)據(jù)是相互獨立的。
5、邏輯獨立性指用戶的應用程序與數(shù)據(jù)庫的邏輯結構是相互獨立的。數(shù)據(jù)的邏輯結構改變了,用戶程序也可以不變。數(shù)據(jù)獨立性是由DBMS的二級映象來保證。數(shù)據(jù)庫系統(tǒng)的特點三、數(shù)據(jù)獨立性27 八月 202213數(shù)據(jù)抽象過程現(xiàn)實世界中的客觀對象抽象為概念模型把概念模型轉換為某一DBMS支持的數(shù)據(jù)模型。27 八月 202214關系模型1. 關系數(shù)據(jù)模型的數(shù)據(jù)結構 2. 關系數(shù)據(jù)模型的操縱3. 關系數(shù)據(jù)模型的完整性約束 4. 關系數(shù)據(jù)模型的存儲結構 27 八月 202215關系數(shù)據(jù)模型的數(shù)據(jù)結構 在用戶觀點下,關系模型中數(shù)據(jù)的邏輯結構是一張二維表,它由行和列組成。27 八月 202216關系模型的基本概念關系(Re
6、lation)一個關系對應通常說的一張表。關系模式元組(Tuple)表中的一行即為一個元組。屬性(Attribute)表中的一列即為一個屬性,給每一個屬性起一個名稱即屬性名。27 八月 202217關系模型的基本概念主碼(Key)表中的某個屬性組,它可以唯一確定一個元組。域(Domain)屬性的取值范圍。分量元組中的一個屬性值。是一個不可以分割的數(shù)據(jù)項。關系模式對關系的描述。關系名(屬性1,屬性2,屬性n)學生(學號,姓名,年齡,性別,系,年級)27 八月 202218關系數(shù)據(jù)模型的數(shù)據(jù)結構(續(xù))學生、系、系與學生之間的一對多聯(lián)系:學生(學號,姓名,年齡,性別,系號,年級)系 (系號,系名,辦
7、公地點)系、系主任、系與系主任間的一對一聯(lián)系學生、課程、學生與課程之間多對多: 學生(學號,姓名,年齡,性別,系號,年級)課程(課程號,課程名,學分)選修(學號,課程號,成績)27 八月 202219關系模型的數(shù)據(jù)操縱和完整性查詢、插入、刪除、更新數(shù)據(jù)操作是集合操作,操作對象和操作結果都是關系,即若干元組的集合存取路徑對用戶隱蔽,用戶只要指出“干什么”,不必詳細說明“怎么干”實體完整性(有主鍵)參照完整性(外鍵引用)用戶定義的完整性(列的約束)27 八月 202220關系數(shù)據(jù)模型的存儲結構在關系數(shù)據(jù)模型中,實體與實體間的聯(lián)系都用表來表示。在物理結構中,表以文件形式存儲有的DBMS一個表對應一個
8、操作系統(tǒng)文件有的DBMS自己設計文件結構27 八月 202221數(shù)據(jù)庫系統(tǒng)結構 從數(shù)據(jù)庫內部: 數(shù)據(jù)庫系統(tǒng)采用三級模式。從最終用戶看; 集中式(單機/主從)分布式結構C/S并行結構27 八月 202222數(shù)據(jù)庫系統(tǒng)的組成數(shù)據(jù)庫數(shù)據(jù)庫管理系統(tǒng)(及其開發(fā)工具)應用系統(tǒng)數(shù)據(jù)庫管理員(用戶)27 八月 202223硬件平臺及數(shù)據(jù)庫數(shù)據(jù)庫系統(tǒng)對硬件資源的要求(1) 足夠大的內存,要運行:操作系統(tǒng),DBMS的核心模塊,數(shù)據(jù)緩沖區(qū)應用程序(2) 足夠大的外存 磁盤:OS、DBMS、應用程序、數(shù)據(jù)庫及其備份 光盤、磁帶、軟盤數(shù)據(jù)備份(3) 較高的通道能力,提高數(shù)據(jù)傳送率27 八月 202224軟件DBMS操作
9、系統(tǒng)與數(shù)據(jù)庫接口的高級語言及其編譯系統(tǒng)以DBMS為核心的應用開發(fā)工具為特定應用環(huán)境開發(fā)的數(shù)據(jù)庫應用系統(tǒng)27 八月 202225人員數(shù)據(jù)庫管理員庫的信息內容和結構、存儲結構和存儲策略。定義數(shù)據(jù)安全性和完整性約束條件監(jiān)控數(shù)據(jù)庫使用和運行,DB改進和重組重構系統(tǒng)分析員數(shù)據(jù)庫設計人員應用程序員(最終用戶)27 八月 202226人員27 八月 202227數(shù)據(jù)庫管理員(DBA)決定數(shù)據(jù)庫中的信息內容和結構決定數(shù)據(jù)庫的存儲結構和存取策略定義數(shù)據(jù)的安全性要求和完整性約束條件。監(jiān)控數(shù)據(jù)庫的使用和運行周期性轉儲數(shù)據(jù)庫:數(shù)據(jù)文件,日志文件系統(tǒng)故障恢復介質故障恢復監(jiān)視審計文件數(shù)據(jù)庫的改進和重組性能監(jiān)控和調優(yōu),數(shù)據(jù)
10、重組,數(shù)據(jù)庫重構27 八月 2022282. 系統(tǒng)分析員負責應用系統(tǒng)的需求分析和規(guī)范說明與用戶及DBA協(xié)商,確定系統(tǒng)的硬軟件配置。參與數(shù)據(jù)庫系統(tǒng)的概要設計3. 數(shù)據(jù)庫設計人員參加用戶需求調查和系統(tǒng)分析確定數(shù)據(jù)庫中的數(shù)據(jù),設計數(shù)據(jù)庫各級模式4. 應用程序員設計和編寫應用系統(tǒng)的程序模塊,進行調試和安裝5.用戶: 偶然用戶、簡單用戶、復雜用戶人員27 八月 202229數(shù)據(jù)庫技術的研究領域數(shù)據(jù)庫管理系統(tǒng)軟件的研制DBMS核心相互聯(lián)系的軟件系統(tǒng)(工具軟件、中間件)數(shù)據(jù)庫設計數(shù)據(jù)庫設計方法、設計工具、設計理論、數(shù)據(jù)模型和數(shù)據(jù)建模數(shù)據(jù)庫理論關系數(shù)據(jù)理論、分布式數(shù)據(jù)庫、知識發(fā)現(xiàn)和推理。27 八月 20223
11、0關系模型 數(shù)據(jù)模型是對客觀世界數(shù)據(jù)的抽象,是用來描述數(shù)據(jù)的結構和性質、數(shù)據(jù)之間的聯(lián)系以及在數(shù)據(jù)或聯(lián)系上的操作和約束。1數(shù)據(jù)結構數(shù)據(jù)結構是所研究的對象類型的集合,一類是與數(shù)據(jù)類型、內容、性質有關的對象,另一類是與數(shù)據(jù)之間聯(lián)2數(shù)據(jù)操作數(shù)據(jù)操作是指對數(shù)據(jù)庫中各種對象的實例所執(zhí)行操作的集合。3數(shù)據(jù)的約束條件數(shù)據(jù)的約束條件是一組完整性規(guī)則的集合。27 八月 202231實體關系圖 1. 一對一聯(lián)系(1:1)2. 一對多聯(lián)系(1:N)3. 多對多關系(M:N)27 八月 20223227 八月 20223327 八月 202234數(shù)據(jù)庫系統(tǒng)設計1. 需求分析階段需求分析的重點是調查、求精、收集和分析用戶
12、在數(shù)據(jù)管理中的信息要求、處理要求、安全性要求與完整性要求等需求。 2. 概念結構設計階段形成一個獨立于具體DBMS的概念模型 3. 邏輯結構設計階段邏輯結構設計的主要任務是將用ER圖等描述的概念模型轉換成關系模型。 4. 物理設計階段 物理設計是在計算機的物理設備上,確定應采取的數(shù)據(jù)存儲結構和存取方法,以及如何分配存儲空間等問題 5. 數(shù)據(jù)庫實施階段 根據(jù)邏輯結構設計和物理設計的結果建立數(shù)據(jù)庫、編寫與調試應用程序、組織數(shù)據(jù)入庫,并經過系統(tǒng)測試、集成測試和驗收測試后進行試運行。 6. 數(shù)據(jù)庫運行與維護階段改正性維護,適應性維護 ,完善性維護 ,預防性維護 27 八月 202235Oracle11
13、g數(shù)據(jù)庫簡介 ORACLE公司在2004年推出以網格計算模型的關系型數(shù)據(jù)庫管理系統(tǒng)。Oracle11g盡可能以最低成本和最高的服務質量提供信息,它提供了企業(yè)網絡計算所需的集群、工作負載管理、數(shù)據(jù)中心自動化、易用性。27 八月 202236網絡計算模型網格計算是一種新的軟件體系結構,它的基本思想是把網格作為公用設施(像電力網)進行計算。客戶端來看,網格計算是一種使用方便、安全可靠、按需使用的辦公設備。用戶不用關心數(shù)據(jù)或應用程序的存儲位置、使用什么樣的平臺,隨時隨地都能夠進行查詢、計算或信息發(fā)布。從服務器端來看網格計算是關于資源分配、信息共享以及高可用性的技術手段。 網格計算消除了應用程序、服務器
14、、數(shù)據(jù)庫、計算機、存儲等網格中每一個組件的固定連接。 27 八月 202237Oracle11g網格模型網格計算的基礎是硬件,但網格基礎架構的功能必須在軟件中得以體現(xiàn)。Oracle11g提供了網格基礎架構,通過提供軟件來利用和控制具備網格功能的硬件,從而實現(xiàn)企業(yè)網格。Oracle Database11g RAC、Oracle Application Server和Oracle Enterprise Manager Grid Control等一起提供了完整的網格基礎架構軟件。 27 八月 202238Oracle安裝 Oracle數(shù)據(jù)庫管理組成:數(shù)據(jù)庫服務器 它是Oracle的核心,是DBMS的
15、主要內容,它完成DBMS的功能。 客戶 它是安裝在用戶端的軟件,它也有相應的管理工具和開發(fā)工具。 網絡通訊 它要通常自動安裝在服務器端和客戶端 開發(fā)工具 Developer 2008,JAVA等中間件其它服務27 八月 202239閱讀隨機文檔,看系統(tǒng)更新和升級信息系統(tǒng)最小需求是否能滿足。以管理員成員組登錄計算機(NT或2000)如果有要升級的數(shù)據(jù)庫,請備份數(shù)據(jù)庫安裝并測試網絡硬件和軟件。如果有,停止所有ORACLE進程。管理工具開始安裝:如果是128M內存,先選擇只安裝軟件,然后用ONCA和ODCA配置網絡和數(shù)據(jù)庫。安裝前的準備27 八月 202240 數(shù)據(jù)庫名:它是一個數(shù)據(jù)庫的名稱標識,在
16、創(chuàng)建數(shù)據(jù)庫時由初始化參數(shù)DB_NAME指定。 全局數(shù)據(jù)庫名:它是在整個網絡中數(shù)據(jù)庫的唯一標識,它包含數(shù)據(jù)庫的名稱和所在的域名,由初始化參數(shù)DB_NAME和DB_DOMAIN共同組成。 系統(tǒng)標識描述符SID:它是Oracle實例的惟一名稱標識。如果數(shù)據(jù)庫只具有一個實例,SID與數(shù)據(jù)庫名相同,由DB_NAME來指定。 Oracle基目錄: Oracle Base是存儲Oracle數(shù)據(jù)庫數(shù)據(jù)的位置。安裝過程中將提示指定Oracle基目錄路徑。Oracle主目錄是所有Oracle軟件安裝的目錄,它由組成:產品安裝的目錄、系統(tǒng)路徑設置、安裝在主目錄的產品程序組以及從主目錄中運行的服務。d:appadmi
17、n 是基目錄, 主目錄:d:appadminproduct11.1.0db_1幾個概念27 八月 202241ORACLE服務器安裝類型 企業(yè)版數(shù)據(jù)庫服務器針對高端的應用環(huán)境,適用于對安全性和性能要求很高的聯(lián)機事務處理以及數(shù)據(jù)倉庫等應用環(huán)境。 標準版數(shù)據(jù)庫服務器提供了大部分核心的數(shù)據(jù)庫功能和特性,適用部門級或工作組應用環(huán)境 個人版數(shù)據(jù)庫只提供基本的數(shù)據(jù)庫管理服務,它適合單用戶開發(fā)環(huán)境,對系統(tǒng)配置要求較低。 自定義安裝允許用戶自由選擇要安裝的組件,通過用戶的定制能夠創(chuàng)建于特定環(huán)境、配置和應用程序需求的數(shù)據(jù)庫服務器。 27 八月 202242ORACLE數(shù)據(jù)庫安裝類型 通用類型:這類數(shù)據(jù)庫能夠為并
18、發(fā)事務處理和復雜查詢都提供較為優(yōu)異的性能。通用類型既可支持大量并發(fā)用戶對數(shù)據(jù)的快速訪問,也可快速地對大量的歷史數(shù)據(jù)進行數(shù)據(jù)掃描和處理,以滿足DDS環(huán)境的性能需求。 事務處理:即聯(lián)機事務處理( OLTP)數(shù)據(jù)庫。該類型的數(shù)據(jù)庫主要針對具有大量并發(fā)用戶連接,并且用戶主要執(zhí)行簡單事務處理的應用環(huán)境。銀行系統(tǒng)數(shù)據(jù)庫等。27 八月 202243 數(shù)據(jù)倉庫:該類型的數(shù)據(jù)庫主要針對有大量的對某個主題大量數(shù)據(jù)進行快速訪問以及復雜查詢的應用環(huán)境。數(shù)據(jù)倉庫也被稱做“決策支持系統(tǒng)(DSS)”,如客戶訂單研究、支持呼叫、銷售預測、采購模式以及其他戰(zhàn)略性業(yè)務問題的數(shù)據(jù)處理等。ORACLE數(shù)據(jù)庫安裝類型 27 八月 20
19、224427 八月 20224527 八月 20224627 八月 20224727 八月 20224827 八月 20224927 八月 202250小結本章主要介紹了數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫系統(tǒng)、數(shù)據(jù)模型、關系模型等基本概念;詳細講解了數(shù)據(jù)庫管理系統(tǒng)的組成和主要功能以及數(shù)據(jù)庫系統(tǒng)的結構;簡要介紹了數(shù)據(jù)庫設計的主要過程,它也是數(shù)據(jù)庫應用系統(tǒng)的設計過程。實體關系圖是用來描述概念模型的重要工具,即描述數(shù)據(jù)實體及實體之間的關系。Oracle11g數(shù)據(jù)庫是基于網格的計算模型。網格計算的基本思想是把網格作為公用設施進行計算。了解Oracle11g數(shù)據(jù)庫的新增功能可以允許利用它。Oracle11g
20、數(shù)據(jù)庫安裝包括服務器端數(shù)據(jù)庫管理系統(tǒng)安裝和客戶端工具的安裝。27 八月 202251第2章 Oracle實例27 八月 202252 ORACLE實例 實例概念及實例結構實例的內存結構 SGA(System Global Area) PGA(Program Global Area)實例的進程結構 用戶進程 ORACLE進程 后臺進程27 八月 202253ORACLE實例結構 數(shù)據(jù)庫實例(instance)是用來訪問數(shù)據(jù)庫文件集的內存結構及ORACLE進程的集合。一個數(shù)據(jù)庫可以被多個實例訪問。 27 八月 202254一個數(shù)據(jù)庫至少有一個與之對應的實例。啟動數(shù)據(jù)庫時先創(chuàng)建一個實例,然后由實例加
21、載(即將數(shù)據(jù)庫與實例聯(lián)系起來)并打開數(shù)據(jù)庫。用戶連接連接到實例中,然后由實例負責與數(shù)據(jù)庫通信,將處理結果返回給用戶用戶、實例和數(shù)據(jù)庫的關系27 八月 202255ORACLE內存結構內存結構主要記錄如下數(shù)據(jù): 解析后的SQL或PL/SQL程序代碼。 用戶連接會話信息。 緩存的數(shù)據(jù)。 程序運行時所需的各種信息。 SGA(System Global Area)和PGA(Program Global Area)。SGA是由所有服務進程和后臺進程所共享的內存段。PGA區(qū)是存放每個服務進程和后臺進程所私有的數(shù)據(jù)和控制信息。Oracle中每個進程都擁有自己的PGA區(qū)。 27 八月 202256ORACLE
22、內存結構27 八月 202257系統(tǒng)全局區(qū)SGA 每個Oracle實例只有一個SGA,SGA區(qū)中的信息能夠被所有Oracle進程共享使用。 在SGA中保存著Oracle系統(tǒng)與所有數(shù)據(jù)庫用戶的共享信息,包括在進行數(shù)據(jù)管理、重做日志管理以及 SQL程序分析時所必需的共享信息。 顯示SGA的大?。?SQLSHOW SGA; 動態(tài)性能視圖V$SGA,V$SGASTAT。 27 八月 202258SGA的組成1.數(shù)據(jù)庫緩存:它保存的是最近從數(shù)據(jù)文件中讀取的數(shù)據(jù)(臟緩存塊、空閑塊、命中塊)大?。篋B_BLOCK_SIZE和DB_BLOCK_BUFFERS 2.重做日志緩存:它是存儲對數(shù)據(jù)庫所做修改信息的緩
23、存區(qū)。重做記錄形式存儲。大小:LOG_BUFFER 3.共享池:包括庫緩存、數(shù)據(jù)字典緩存和用于存儲并行操作信息和控制結構的緩存。庫緩存用于存放已經解析并執(zhí)行過的SQL語句、PL/SQL程序代碼。SHARED_POOL_SIZE 4.Java池:SGA中專門為所有Java代碼或JVM中的數(shù)據(jù)而分配的內存。主要存儲每個會話中每個類的共享部分,包括代碼向量、類的方法等只讀內存。 大?。篔AVA_POOL_SIZE 5.大型池:主要用于共享服務的會話內存、I/O服務進程、ORACLE備份和恢復操作和并行執(zhí)行的消息緩存。 大小:LARGE_POOL_SIZE。27 八月 202259程序全局區(qū)PGA 程
24、序全局區(qū)PGA是保存服務進程的數(shù)據(jù)和控制信息的內存結構,只有服務進程本身才能夠訪問它自己的PGA區(qū)。每個服務進程都有它自己PGA區(qū),各個服務進程PGA區(qū)的總和 即為實例的PGA區(qū)的大小。 實例PGA的內容一般有私有SQL區(qū)和會話內存組成。私有SQL區(qū)中包含有聯(lián)編變量以及 SQL語句運行時的內存結構等信息。會話內存區(qū)用于保存用戶會話的變量(登錄信息)以及其他與會話相關的信息27 八月 202260 查詢PGA區(qū)內存分配信息: V$SYSSTAT 系統(tǒng)統(tǒng)計信息V$SESSTAT 用戶會話統(tǒng)計信息V$PGASTAT 顯示內存使用統(tǒng)計信息 V$SQL_WORKAREA SQL游標所用工作區(qū)信息 V$S
25、QL_WORKAREA_ACTIVE 當前系統(tǒng)工作區(qū)的信息查詢PGA區(qū)27 八月 202261實例的進程結構 進程是操作系統(tǒng)中一組用于完成指定任務的動態(tài)執(zhí)行的程序。進程是一個動態(tài)概念,可以動態(tài)地創(chuàng)建,完成任務后即會消亡。每個進程都有它自己的專用內存區(qū)。一、進程分類1.用戶進程(User Process) 用戶進程運行應用程序或ORACLE工具代碼,它在用戶方(如客戶端)工作。用戶進程是通過SGA區(qū)與服務器中的Oracle進程進行通訊27 八月 202262進程分類2. Oracle進程(Oracle Process) Oracle進程是在創(chuàng)建實例時由Oracle本身產生,執(zhí)行的是Oracle自
26、已的服務器端的代碼,用于完成特定的服務功能。 Oracle進程分為服務進程和后臺進程 服務進程是Oracle自身創(chuàng)建,用于處理連接到實例中的用戶進程所提出的請求。后臺進程是以最有效的方式為并發(fā)用戶進程提供Oracle的系統(tǒng)服務。27 八月 202263進程之間的關系27 八月 202264服務進程 服務進程是Oracle自身創(chuàng)建,用于處理連接到實例中的用戶進程所提出的請求。Oracle通過創(chuàng)建服務進程為連接到數(shù)據(jù)庫實例中的用戶進程提供服務,用戶進程總是通過服務進程與ORACLE進行通訊。服務進程主要完成如下任務: 解析并執(zhí)行應用程序所提交的SQL語句。 從數(shù)據(jù)文件中讀數(shù)據(jù)到SGA數(shù)據(jù)庫緩存。
27、將數(shù)據(jù)返回給用戶進程。 27 八月 202265專用服務器進程 專用服務進程操作模式中,Oracle為每一個連接到實例的用戶進程啟動一個專用的服務進程。一個專用服務進程僅為一個用戶進程提供服務。專用服務進程之間是完全獨立的,它們不需要共享數(shù)據(jù)。在用戶進程連接到實例的過程中,專用服務進程一直存在,不論用戶進程是否活動,直到用戶進程斷開連接時專用服務進程才被終止。 專用服務進程模式下,用戶進程數(shù)量與實例中的服務進程數(shù)量是一樣的。27 八月 202266專用服務進程工作方式 適用于:數(shù)據(jù)庫的類型為數(shù)據(jù)倉庫或DSS;只有少數(shù)客戶機并發(fā)連接數(shù)據(jù)庫;建立持久的、長時間的請求27 八月 202267共享服務
28、器進程Shared Server Process 在共享服務器進程模式下,Oracle在創(chuàng)建實例時啟動指定數(shù)目的服務進程(由初始化參數(shù)決定),在一個調度進程的管理下,這些服務進程可以為任意數(shù)量的用戶進程提供服務。每個共享服務器進程可以為多個用戶進程提供服務。減少每個連接要求的服務進程的數(shù)量。 使用資源省。 適用于:在聯(lián)機事務處理(OLTP)環(huán)境中使用數(shù)據(jù)庫、有大量用戶需要連接到數(shù)據(jù)庫、受系統(tǒng)內存的限制。27 八月 202268共享服務器進程的工作方式 27 八月 202269后臺進程 Oracle數(shù)據(jù)庫將不同的工作交給多個系統(tǒng)進程專門進行處理。每個系統(tǒng)進程的大部分操作都是相互獨立并且完成指定的
29、一類任務,這些系統(tǒng)進程稱為后臺進程。 后臺進程的主要作用是以最有效的方式為并發(fā)建立的多個用戶進程提供Oracle的系統(tǒng)服務,如進行 I/O操作、監(jiān)視各個進程的狀態(tài)、維護系統(tǒng)的性能和可靠性。 27 八月 202270后臺進程與數(shù)據(jù)庫進行交互的過程 27 八月 202271數(shù)據(jù)庫寫進程(DBWn) DBWn負責將數(shù)據(jù)庫緩存中的臟緩存塊成批寫入到數(shù)據(jù)文件中。通常Oracle只在創(chuàng)建實例時啟動一個DBWn進程(稱為DBW0)。 0racle最多允許9個額外的DBWn進程(DBW1到DBW9)。由DB_WRITER_PROCESSES來決定DBWn進程的數(shù)量。 寫入時間:當用戶執(zhí)行INSERT等更新操作
30、時,服務進程找不到可用的空閑塊;當檢查點發(fā)生時,將啟動DBWn進程;若發(fā)生超時;LRU列表的長度達到初始化指定值的一半時。 27 八月 202272日志寫進程(LGWR) LGWR負責將重做日志緩存中的重做記錄寫入到聯(lián)機重做日志文件。在LGWR進程將緩存中的數(shù)據(jù)寫入重做日志文件的同時,還能夠繼續(xù)向緩存中寫入新的數(shù)據(jù)。 寫入時間:用戶進程通過COMMIT語句提交當前事務。重做日志緩存被寫滿三分之一。 DBWn進程開始將臟緩存塊寫人數(shù)據(jù)文件。每隔3秒(發(fā)生超時),此時會啟動LGWR。 27 八月 202273檢查點進程(CKPT) 在指定時間讓DBWn進程將所有SGA數(shù)據(jù)庫緩存中修改過的數(shù)據(jù)寫入到
31、數(shù)據(jù)文件,這個事件叫檢查點。當檢查點發(fā)生時,Oracle必須更新所有數(shù)據(jù)文件的頭信息以記錄檢查點的詳細信息。 執(zhí)行檢查點后所有已提交事務對數(shù)據(jù)庫所做的更改全部寫入硬盤,同時將對數(shù)據(jù)庫控制文件和數(shù)據(jù)文件進行更新,以記錄下當前的數(shù)據(jù)庫結構的狀態(tài),此時數(shù)據(jù)庫處于一個完整狀態(tài)。 27 八月 202274系統(tǒng)監(jiān)視進程(SMON) SMON在實例啟動時負責對數(shù)據(jù)庫進行崩潰恢復操作。如果上一次數(shù)據(jù)庫是正常關閉的,當下一次啟動實例時,SMON進程會自動讀取重做日志文件,對數(shù)據(jù)庫進行恢復,即將已提交的事務寫入數(shù)據(jù)文件、回滾末提交的事務等操作。 SMON進程在實例運行期間會被定期地喚醒以檢查是否有工作需要它來做。
32、27 八月 202275進程監(jiān)視進程(PMON) 進程監(jiān)視進程PMON負責對那些失敗的用戶進程或服務進程進行恢復,并且釋放這些進程所占用的資源。 PMON進程還會定期地檢查調度程序和服務進程的狀態(tài),如果它們失敗,將會嘗試重新啟動它們,并釋放它們所占用的各種資源。與SMON進程類似,PMON進程在實例運行期間會被定期地喚醒,檢查是否有工作需要它來做。如果任何其他進程需要使用到PMON進程的功能,它們將隨時喚醒PMON進程。 27 八月 202276恢復進程(RECO) 恢復進程RECO負責在分布式數(shù)據(jù)庫環(huán)境中自動恢復那些失敗的分布式事務。 如果將數(shù)據(jù)庫配置為分布式事務處理,即將初始化參數(shù) DIS
33、TRIBUTED_TRANSACTIONS的值設置為大于0,RECO進程會自動啟動。 當分布式事務由于網絡連接故障原因而失敗時,RECO進程將嘗試與事務相關的所有數(shù)據(jù)庫進行聯(lián)系,以完成對失敗事務的處理工作。RECO進程一般不需要管理員進行干預,它會自動完成自己的任務。 27 八月 202277歸檔進程(ARCO) 當數(shù)據(jù)庫運行在歸檔模式下時,歸檔進程ARCn負責在日志切換后將已經寫滿的重做日志文件復制到歸檔重做日志文件中,以防止寫滿的重做日志文路被覆蓋。 只有數(shù)據(jù)庫運行在歸檔模式時,ARCn進程才能被啟動。 Oracle最多可以啟動10個歸檔進程。從ARCO到ARC9。 27 八月 20227
34、8跟蹤文件(Trace File) 每個服務進程和后臺進程在運行過程中都可以將一些錯誤信息寫入到相應的操作系統(tǒng)文件中,稱為跟蹤文件。當進程檢測到一個錯誤時,進程就將錯誤信息寫入到跟蹤文件中。DBA檢查錯誤用或ORACLE支持服務所用。 每個Oracle進程都有自己的跟蹤文件。如,名稱為StudentDBW0.TRC的跟蹤文件。 位置:BACKGROUND_DEMP_DEST 默認位置: E:ORACLEADMINSTUDENTBDUMP。 27 八月 202279警告文件(Alert File) 警告文件是按時間順序記錄數(shù)據(jù)庫實例的操作信息和錯誤信息。在需要寫入警告文件時,Oracle實例會自
35、動查找是否存在已有的警告文件。如果存在,它繼續(xù)寫入該警告文件;如果不存在,它創(chuàng)建新的警告文件。 警告文件的名稱是由數(shù)據(jù)SID加ALERT組成,如studentALERT.log。 位置是由BACKGROUND_DEMP_DEST初始化參數(shù)指定,默認位置為Oracle安裝目錄下的ADMIN數(shù)據(jù)庫SIDBDUMP目錄。 27 八月 202280小結Oracle數(shù)據(jù)庫實例是由內存結構和數(shù)據(jù)庫后臺進程組成。SGA是所有進程可以共享的內存塊。PGA是進程專用的內存塊。UGA是存儲用戶會話信息的內存區(qū)。服務進程是Oracle數(shù)據(jù)庫自身在服務器端創(chuàng)建,用于處理連接到實例中的用戶進程所提出的請求;后臺進程用來
36、完成實例恢復、寫數(shù)據(jù)庫、寫重做日志到磁盤文件等功能。服務進程又分為專用服務進程和共享服務進程。后臺進程有DBWn、LGWR、ARC0等,有的后臺進程必須啟動,而有的可在需要時啟動。ADR是一個數(shù)據(jù)庫外的文件結構,它存放跟蹤文件、警告文件、診斷報告等內容,以后可根據(jù)故障號進行查詢或故障分析。27 八月 202281第4章 Oracle網格結構與管理27 八月 202282 ORACLE網絡服務組成 Oracle網絡服務是管理、配置、監(jiān)控和連接網絡的一組網絡組件,主要組成:Oracle NET監(jiān)聽程序(Listener)Oracle連接管理器(Oracle Connection Manager)網
37、絡工具(Net Tools)Oracle高級安全管理。27 八月 202283ORACLE NET結構 Oracle 網絡基礎層利用TNS技術來負責建立和維護客戶端和數(shù)據(jù)庫服務器的連接和信息交換。 Oracle協(xié)議支持層將TNS功能映射為工業(yè)標準協(xié)議。Oracle 網絡基礎層利用Oracle協(xié)議支持層可為基于工業(yè)標準的以下協(xié)議通信:TCP/IP、具有SSL的TCP/IP、命名管道(Named Pipes)和SDP。27 八月 202284監(jiān)聽程序是位于服務器端的一個后臺進程,它監(jiān)聽客戶端的連接請求,并且負責對服務器端的連接負荷進行調整。監(jiān)聽程序通常與數(shù)據(jù)庫服務器運行在同一臺計算機上。監(jiān)聽程序2
38、7 八月 202285Oracle連接管理器Oracle連接管理器是一個運行在獨立計算機中的軟件組件,它與客戶端和數(shù)據(jù)庫服務器是分離的,它為數(shù)據(jù)庫服務器的請求作代理,即將客戶連接請求轉發(fā)到下一網絡或直接轉發(fā)到數(shù)據(jù)庫服務器。Oracle連接管理器可以實現(xiàn)多路會話、訪問控制或協(xié)議轉換的功能。27 八月 202286Oracle應用解決方案 1. 客戶/服務器應用程序連接27 八月 2022872. WEB客戶端應用程序連接Oracle應用解決方案 27 八月 202288 網絡配置概念服務名(Service Name)或數(shù)據(jù)庫服務名是數(shù)據(jù)庫的邏輯表示,對于客戶端來說就是數(shù)據(jù)庫的存在方式。一個數(shù)據(jù)庫
39、可以具有多個服務名,一個服務名也可以通過多個數(shù)據(jù)庫實例來實現(xiàn)連接描述符是一個網絡連接目標的格式描述字符串,它包括目標服務連接信息(即數(shù)據(jù)庫服務名或數(shù)據(jù)庫SID)和網絡路由信息(即數(shù)據(jù)庫監(jiān)聽的網絡地址和端口號等)組成。 網絡服務名(Net Service Name)是用來解釋連接描述符的一個服務別名。用戶可以使用用戶名、口令和網絡服務名來連接數(shù)據(jù)庫服務器。連接字符串(Connect String)是指客戶端在連接數(shù)據(jù)庫時需要提供的信息所組成的字符串,這些信息包括用戶名、口令以及連接標識符。連接標識符(Connect Identifier)可是網絡服務名、數(shù)據(jù)庫服務名或是存儲在目錄中的網絡服務別名
40、。用戶使用連接標識符建立連接。27 八月 202289 Oracle網絡工具1. Oracle Enterprise Manager(OEM)OEM可以跨平臺的對Oracle網絡服務進程配置和管理。利用OEM可以配置監(jiān)聽程序、命名方法、Oracle主目錄位置等。2. Oracle網絡配置助手Oracle網絡配置助手ONCA)是用來配置基本網絡組件的工具。用它可以配置監(jiān)聽程序名、協(xié)議地址、客戶端解析連接標識符的命名方法、TNSNAMES.ORA文件中的網絡服務名和目錄服務器用法等。3. Oracle網絡管理器Oracle網絡管理器把配置功能和組件控制功能組合在一起為配置和管理Oracle 網絡服
41、務提供一個集成環(huán)境。 27 八月 202290監(jiān)聽程序的配置27 八月 202291客戶端網絡配置的主要任務就是為客戶端選擇所使用的命名方法,即建立連接標識符到連接描述符的映射關系,或者是定義網絡服務名??蛻舳司W絡配置 27 八月 202292命名方法分類命名方法(Naming Method)是客戶程序在連接數(shù)據(jù)庫服務時,將連接標識符解析為連接描述符的一種機制。 本地命名方法是將網絡服務名存儲在本地計算機的tnsnames.ora的配置文件中,每個網絡服務名對應著一個連接標識符與連接描述符的映射關系??蛻舳嗽诒镜鼐湍軌蛲瓿蛇B接標識符到連接描述符的轉換。目錄命名方法是將每個客戶的連接標識符到連接
42、描述符的映射信息存儲在一個與LDAP兼容的目錄服務器中 易用連接命名方法客戶在連接時只需提供TCP/IP連接字符串,即主機名、端口號或服務名、用戶名等信息即可直接連接數(shù)據(jù)庫 外部命名方法利用支持命名方法的非Oracle名稱服務器來存儲連接標識符信息,這些服務器包括NIS 27 八月 202293命名方法的配置Oracle網絡配置助手ONCA,在圖4-11中選擇【命名方法配置】,單擊【下一步】按鈕將出現(xiàn)如圖4-16所示的界面 27 八月 202294 配置本地命名方法本地命名方法將連接標識符到連接描述符的映射關系保存在名稱為tnsnames.ora的文本文件中。 ONCA,在圖4-11中選擇“本
43、地Net服務名配置” 27 八月 202295服務進程 服務進程是Oracle自身創(chuàng)建,用于處理連接到實例中的用戶進程所提出的請求。Oracle通過創(chuàng)建服務進程為連接到數(shù)據(jù)庫實例中的用戶進程提供服務,用戶進程總是通過服務進程與ORACLE進行通訊。服務進程主要完成如下任務: 解析并執(zhí)行應用程序所提交的SQL語句。 從數(shù)據(jù)文件中讀數(shù)據(jù)到SGA數(shù)據(jù)庫緩存。 將數(shù)據(jù)返回給用戶進程。 27 八月 202296專用服務器進程 專用服務進程操作模式中,Oracle為每一個連接到實例的用戶進程啟動一個專用的服務進程。一個專用服務進程僅為一個用戶進程提供服務。專用服務進程之間是完全獨立的,它們不需要共享數(shù)據(jù)。
44、在用戶進程連接到實例的過程中,專用服務進程一直存在,不論用戶進程是否活動,直到用戶進程斷開連接時專用服務進程才被終止。 專用服務進程模式下,用戶進程數(shù)量與實例中的服務進程數(shù)量是一樣的。27 八月 202297專用服務進程工作方式 適用于:數(shù)據(jù)庫的類型為數(shù)據(jù)倉庫或DSS;只有少數(shù)客戶機并發(fā)連接數(shù)據(jù)庫;建立持久的、長時間的請求27 八月 202298共享服務器進程Shared Server Process 在共享服務器進程模式下,Oracle在創(chuàng)建實例時啟動指定數(shù)目的服務進程(由初始化參數(shù)決定),在一個調度進程的管理下,這些服務進程可以為任意數(shù)量的用戶進程提供服務。每個共享服務器進程可以為多個用戶
45、進程提供服務。減少每個連接要求的服務進程的數(shù)量。 使用資源省。 適用于:在聯(lián)機事務處理(OLTP)環(huán)境中使用數(shù)據(jù)庫、有大量用戶需要連接到數(shù)據(jù)庫、受系統(tǒng)內存的限制。27 八月 202299共享服務器進程的工作方式 27 八月 2022100小結Oracle網絡服務是管理、配置、監(jiān)控和連接網絡的一組網絡組件,主要由Oracle NET、監(jiān)聽程序、Oracle連接管理器、網絡工具和Oracle高級安全管理組成。Oracle Net是安裝在客戶端和服務器端的軟件層,它負責建立和維護客戶應用與服務器之間的連接,并按照標準協(xié)議在它們之間交換信息。監(jiān)聽程序是位于服務器端的一個后臺進程,它監(jiān)聽客戶端的連接請求
46、,并且負責對服務器端的連接負荷進行調整。在Oracle應用方案中,需要利用網絡工具在服務器端配置監(jiān)聽程序,在客戶端配置不同命名方法,服務名、連接描述符、連接標識符都是在配置客戶端時用來標識連接目標的不同方式。 27 八月 2022101第5章 SQL工具與SQL語言基礎27 八月 2022102SQL語言 主要內容:SQL Plus工具SQL語言27 八月 2022103SQL Plus可以處理SQL語句和PL/SQL塊,使用SQL Plus可以完成:輸入、編輯、存儲、恢復和運行SQL語句和PL/SQL塊。以報表的形式對查詢結果進行格式化、計算、存儲和打印。顯示表等模式對象的列定義。在數(shù)據(jù)庫之
47、間訪問和復制數(shù)據(jù)。 完成數(shù)據(jù)庫管理。SQL Plus工具27 八月 2022104SQL Plus工具啟動和退出 SQL Plus可以通過開始菜單中的程序、Oracle-OracleHome、Application Development、SQL Plus來完成(或運行SQLPLUSW),提示的對話框要求輸入用戶名、口令或主機字符串。 退出:EXIT或者在命令行:C:SQLPLUSW /NOLOG SQLCONNECT 用戶名/口令 網絡服務名;C:SQLPLUS /NOLOG SQLCONNECT 用戶名/口令 網絡服務名; 27 八月 2022105SQL Plus概念命令是指在用戶給SQ
48、L Plus或 Oracle數(shù)據(jù)庫發(fā)的指令。在SQL Plus提示符可以三種命令:訪問和處理數(shù)據(jù)庫信息的SQL命令;訪問和處理數(shù)據(jù)庫信息的PL/SQL塊;SQL Plus命令,用于對查詢結果格式化、設置參數(shù)、編輯與存儲SQL命令和PL/SQL塊。 SQL緩沖區(qū)是指存儲最后輸入的SQL命令或PL/SQL塊的內存區(qū)域。SQL Plus命令沒有緩沖區(qū)。 27 八月 2022106SQL Plus命令在SQL Plus提示符下輸入的各種命令,可以在行尾以分號“;”表示命令結束。如果一個命令占多行,只需在每行行尾按回車,在最后一個空白行輸入“/”或“;”表示命令結束。 SQLSELECT SYSDATE
49、 FROM DUAL;SQLSELECT employee_id,first_name, 2 last_name FROM hr.employees 3 WHERE email is not null -或在此輸入分號“;” 4 / - 或在此輸入分號;27 八月 2022107RUN 或或R運行SQL緩沖區(qū)的命令。edit 文件名以指定的文本編輯程序編輯SQL緩沖區(qū)或指定文件名,缺省時編輯程序為記事本。 SAVE 文件名CRATE|REPLACE|APPENDGET 文件名 (缺省擴展名SQL) 文件名 運行PL/SQL文件CLEAR BUFFER|SCRREN清除SQL緩沖區(qū)或屏幕SQL
50、Plus命令27 八月 2022108SQL Plus命令EXECUTE PL/SQL語句,是存儲過程SPOOL 文件名 out 顯示結果存文件 SPOOL AA 顯示結果存到AA.LST文件(OFF) SPOOL OUT 停止假解脫機,打印DESC 表名|視圖名|過程|函數(shù) 顯示定義 DESC EMPLOYEES;27 八月 2022109HOST 命令 在SQL Plus中執(zhí)行操作系統(tǒng)命令或暫時退出SQL Plus而回到操作系統(tǒng)提示符下。從SQL Plus中返回到WINDOWS命令提示符下。SQLHOST;SQLHOST DIR; PASSWORD 用戶名改變當前數(shù)據(jù)庫用戶或指定用戶的口令
51、。 SQL password更改HR的口令舊口令: *新口令: *重新鍵入新口令:* SQL Plus命令27 八月 2022110SHOW ALL|SGA|ERRORS|USER|SPOOL顯示所有的環(huán)境變量的值其它對象的定義SHOW ALL 顯示所有環(huán)境變量的當前值SHOW USER顯示當前數(shù)據(jù)庫用戶。SHOW SGA 顯示數(shù)據(jù)庫實例中SGA大小SHOW SPOOL 顯示SQLPlus是否假脫機SHOW ERRORS 顯示存儲對象中的錯誤Connect 用戶名/口令網絡服務名 AS SYSDBA|SYSOPER斷開當前的用戶連接,用新用戶連接新的服務DISCONNECT;SQL Plus命
52、令27 八月 2022111SQL語言為程序員、數(shù)據(jù)庫管理員和終端用戶提供了許多訪問數(shù)據(jù)庫的命令。用SQL命令可以完成:查詢數(shù)據(jù)庫中的各類數(shù)據(jù)。插入、更新、冊除表中的行。建立、替換、改變和刪除數(shù)據(jù)庫中的對象控制對數(shù)據(jù)庫及其數(shù)據(jù)庫對象的訪問權限保證數(shù)據(jù)的一致性。關系數(shù)據(jù)庫都支持SQL語句,用SQL語言寫的程序是可移植的。SQL語言27 八月 2022112SQL語言的數(shù)據(jù)類型 一、字符類型字符類型是指單引號括起來的若干字符組成 CHAR(N) 為N的字符串,N=12000字節(jié) VARCHAR2(n) 變長字符串,14000字節(jié) LONG(n) 變長字符串,n=1B2GB。LONG可以在SELEC
53、T中、UPDATE的SET中或INSERT的VALUES中。LONG的限制:表中只一個LONG,不能在WHERE條件中,不能索引,不能在GROUP BY、ORDER BY子句中,函數(shù)中不能返回LONG類型的值。27 八月 2022113SQL語言的數(shù)據(jù)類型 二、 數(shù)字類型(10(-130) 9.99 * 10(125) ) NUMBER(p,s) p-總位數(shù),s-小數(shù)點后 NUMBER(n) 等價于NUMBER(n,0) NUMBER 是指最大值到最小值 如果值超出P,出錯;如果精度超出S,截斷。負精度S,表示取整后面S個整,去掉小數(shù)部分。27 八月 2022114SQL語言的數(shù)據(jù)類型 三、
54、日期數(shù)據(jù)類型日期類型分域:YEAR(-47129999),月日時分秒。日期類型存儲有日期和時間。默認:DD-MON-YYSQL select date 1999-12-10 from dual;DATE1999-10-12月-9927 八月 2022115NLS_DATE_FORMAT來限定日期格式SQL alter session set NLS_DATE_FORMAT = YYYY-MON-DD HH24:MI:SS;會話已更改。SQL select sysdate from dual;SYSDATE-2002-10月-06 08:38:42SQL語言的數(shù)據(jù)類型 27 八月 2022116
55、SQL語言的數(shù)據(jù)類型 Oracle中的LOB用來存儲大的非結構化的數(shù)據(jù),如格式文本、圖像、視頻、音頻、空間數(shù)據(jù)等,這些數(shù)據(jù)類型的最大值可達4GB。1. BLOB類型 無字符集的二進制位流。SQL語句可以對它進行修改,支持事務提交和回滾,不能出現(xiàn)在SELECT命令中。 4GB2. CLOB類型存放單字節(jié)和多字節(jié)字符數(shù)據(jù)。支持定長或變長字符集。提交與回滾。用SQL命令修改。 4GB27 八月 2022117SQL語言的數(shù)據(jù)類型 3. BFILE數(shù)據(jù)類型是訪問存儲在數(shù)據(jù)庫之外的文件,只能查詢或讀,不能寫。BFILE字段存文件的位置。4GB。BFILE的文件名和目錄名用BFILENAME改變。BFIL
56、E不參入事務處理,也不可恢復。4. LOB時注意在ORDER BY或GROUP BY子句中不能用LOB列,不能將LOB存儲在自動管理表空間;LOB不能作為主鍵;不能作索引。27 八月 2022118SQL中的運算符數(shù)字運算符: +、-、*、/ 字符運算符: |比較運算符:=、!= 、 、 、= 邏輯運算符:NOT 、AND 、OR集合運算符:UNION 兩個語句返回的合并,不含重復UNION ALL 同UNION,但包括重復行。INTERSECT 兩個查詢語句中相同的行。MINUS 在第一個查詢中但不在第二個中27 八月 2022119SQL中的條件ANY/SOME(列表或子查詢)將一個值與列
57、表中或查詢結果中的每個值進行比較,如果列表中沒有一個滿足條件時返回FALSE,否則返回TRUE。在ANY或SOME的前必須有比較運算符。ORALL(列表或子查詢):將一個值與列表中或查詢結果中的每個值進行比較,如果列表中所有都滿足條件時返回TRUE,否則返回FALSE。它的前面必須有=、!=、=比較運算符。 27 八月 2022120SQL SELECT first_name,salary FROM employees2* WHERE first_name=SOME(Shelley,Hermann,William)FIRST_NAME SALARY- -William 8510Hermann
58、26110Shelley 28010William 9410SQL SELECT first_name,salary FROM employees 2* WHERE salary=ALL(10000,5000,30000)FIRST_NAME SALARY- -Steven 40010Neena 33010Lex 33010John 30010SQL中的條件27 八月 2022121SQL中的條件exp1 IN 表達式表或查詢結果如果exp1與表達式表或查詢結果中的任何一個值相等時,返回TRUE;否則返回FALSE。等價于=SOME(列表)。 exp1 BETWEEN exp2 AND exp
59、3 如果exp1的值大于或等于exp2并且exp1的值小于或等于exp3時,返回TRUE,否則返回FALSE。 27 八月 2022122SQL select first_name,salary From employees 2* where salary in (27010,26110,30100)FIRST_NAME SALARY- -Den 27010Gerald 27010Peter 26110Janette 26110Harrison 26110Ellen 27010Hermann 26110SQL select first_name,salary From employees 2*
60、 where salary between 10000 and 20000SQL中的條件27 八月 2022123EXISTS (子查詢)如果子查詢至少返回一行,其結果為TRUE,否則結果為FALSE。expC_1 LIKE expC_2如果字符表達式expC_1與expC_2相匹配,即是子串,則返回TRUE,否則返回FALSEExpC_2是匹配模板表達式,可以包括或-。匹配零個或任何多個字符?!?”只匹配一個字符。通常用它們進行模糊查詢。 SQL中的條件27 八月 2022124SQL中的條件SQL select first_name,salary From employees 2* whe
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 教師2022年度工作計劃7篇
- 2024年環(huán)保大數(shù)據(jù)分析與應用服務合同
- 歷史遺址觀后感600字
- 2022教師求職申請書模板5篇
- 《呼嘯山莊》讀后感15篇
- 有關計算機實習報告模板匯編八篇
- 開學典禮講話稿7篇
- 探測制導課程設計
- 2021年種植牙行業(yè)深度分析報告
- 高斯貝爾數(shù)碼科技有限公司
- 【物理】浙江省寧波市九校2022-2023學年高二上學期1月期末考試試題(解析版)
- 建筑用木料及加工木材組件相關項目實施方案
- 廣東省深圳市寶安區(qū)2023-2024學年六年級上學期期中數(shù)學試卷
- 圖紙會審設計交底記錄表格
- 叉車月度檢查記錄表
- 犯罪學學習通超星課后章節(jié)答案期末考試題庫2023年
- 法律職業(yè)倫理考試題庫匯總含答案
- 海底撈-新員工培訓
- Cinema 4D從入門到精通PPT完整版全套教學課件
- T-SHSPTA 002-2023 藥品上市許可持有人委托銷售管理規(guī)范
- 我國雙語教育發(fā)展現(xiàn)狀以及建議
評論
0/150
提交評論