




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第1章數據庫基本概念1第一章數據庫基本概念.pptx2第二章Oracle概述.pptx3第三章ORACLE體系結構.pptx4第四章表的設計、創建及維護.ppt5第五章數據完整性與約束.pptx6第六章數據操作.pptx7第七章基本SQL查詢.pptx8第八章多表連接及子查詢.pptx9第九章操作符及sql函數.ppt10第十章數據庫對象.ppt11第十一章PLSQL簡介.pptx12第十二章控制語句.pptx13第十三章游標管理.ppt14第十四章存儲過程和函數.ppt15第十五章觸發器.ppt16第十六章系統安全管理.ppt17第十七章數據備份與恢復.ppt18第十八章Oracle實戰案例.ppt本章目標了解數據模型的概念。理解關系數據模型的三個要素。掌握數據庫設計的主要步驟。掌握ER圖的表示方法。理解聯系的映射約束。2數據庫相關概念數據(Data)是數據庫的基本對象,是描述事物的符號記數據庫(Database)就是存放數據的倉庫。關系型數據庫(RelationalDatabase,簡稱RDB)就是指基于關系模型的數據庫數據庫管理系統(DatabaseManagementSystem,簡稱DBMS)是科學組織和儲存數據,對數據庫進行統一的管理和控制,以保證數據庫的安全性和完整性。關系型數據庫管理系統(RelationalDatabaseManagementSystem,簡稱RDBMS),它通過數據、關系和對數據的約束三者組成的數據模型來存放和管理數據。3關系數據模型的三個要素數據結構數據操作方式完整性約束(integrityconstraint)4數據結構關系數據模型用于存儲數據的邏輯結構是關系(relation)。關系是一個數學概念,是由元組(tuple)構成的集合,而元組具有若干屬性(attribute)。直觀上,可以把關系看作由行(row)和列(column)構成的表(table),行對應關系中的元組,列對應關系中的屬性。5sidsname1第1學期2第2學期3第3學期4第4學期數據結構關系與表的區別關系是元組的集合。關系的屬性沒有從左到右的順序,而表上的列一般有固定的順序。關系的屬性不能為多值,而表中的列可以是多值的。6數據操作方式關系模型的數據操作方式稱為關系代數(relationalalgebra),主要由一系列針對關系的運算構成。包括5種基本運算。選擇:返回由一個關系中滿足指定條件的元組構成的另一個關系。即選出表中滿足指定條件的行。映射:返回由一個關系中某些指定列中的值構成的另一個關系。即選擇表中指定的列。積:兩個關系的積返回一個關系,這個關系中的每一個元組由分別屬于參與運算的兩個關系中的元組合并而成。即兩個表的行兩兩橫向拼接。并:返回由兩個關系中的元組構成的關系,這些元組或者屬于一個關系,或者同時屬于兩個關系。即兩個表的并集。差:兩個關系的差返回一個關系,這個關系中的元組屬于第一個關系卻不屬于第二個關系。7完整性約束(integrityconstraint)在關系模型中,一個元組的某些屬性相比其他屬性比較特殊,這些屬性一般稱為鍵(Key),包括三種形式。候選鍵:關系中能唯一地標識一個元組的最少的屬性構成的集合。候選鍵可以有多個。主鍵:選擇為唯一地標識關系中元組的候選鍵稱為主鍵,一個關系中的主鍵只能有一個。外鍵:一個關系中,屬性值要匹配于另一個關系(或自身)中的候選鍵的一個或多個屬性的集合稱為外鍵8完整性約束(integrityconstraint)在完整性約束在一定程度上保證數據庫中的數據都是正確的。兩種重要的約束實體完整性:主鍵屬性不能允許空值。空值也稱為null值,指其值不確定或不存在。引用完整性:外鍵的值或者為空,或者匹配于其引用的鍵值。9實體關系模型數據庫設計是數據庫應用開發的重要組成部分,構造ER圖是需求分析完成后,進行數據庫設計的開始,ER模型理論是構造ER圖的根據。數據庫設計的主要步驟:概念設計:概念設計的主要任務是根據需求分析的結果抽象出實際應用中的實體及聯系,然后畫出ER圖。邏輯設計:邏輯設計的主要任務是把概念設計得到的ER圖轉化為表的結構,用到的知識主要是ER圖中的聯系轉化為表的基本規則及范式理論。物理設計:物理設計的主要任務是在具體的DBMS上把邏輯設計得到的表實現,包括物理存儲規劃和創建合適的索引等任務。10實體關系模型ER模型的主要概念ER表示EntityRelationship。ER圖又稱為實體-聯系圖,也稱為實體-聯系模型,是一種可以應用于關系型數據庫(但不限于關系型)概念設計的建模方法。實體是現實世界中可區別于其他對象的一個“事件”或一個“物體”,現實世界是由一系列的實體以及這些實體間的聯系構成的,聯系一般用一個動詞表示。ER模型是一種自頂向下的數據庫設計方法,從識別實體和實體間的關系開始,然后再標識實體及聯系的屬性及約束。11實體關系模型ER圖使用實體-聯系圖(entity-relationshipdiagram)來建立數據模型。可以把實體-聯系圖簡稱為ER圖。ER圖中包含了實體(即數據對象)、關系和屬性等3種基本成分。矩形框代表實體用連接相關實體的菱形框表示關系用橢圓形或圓角矩形表示實體(或關系)的屬性,并用直線把實體(或關系)與其屬性連接起來。12實體關系模型聯系的映射約束映射約束的種類有以下三種:一對一一對多多對多—對一聯系13實體關系模型聯系的映射約束—對多聯系多對多聯系14數據庫規范化數據庫規范化(Normalization)的目的是減少或控制數據冗余(即不必要的數據副本)和避免數據異常。規范化規則分為以下常規形式:第一范式(1NF)第二范式(2NF)第三范式(3NF)15數據庫規范化第一范式(1NF)規則一:它應該只有單個(原子)值的屬性/列。表的每一列都應該是單值的,這意味著它們不應包含多個值。規則二:存儲在列中的值應該屬于同一個值域。在每列中,存儲的值必須是相同類型或類型兼容。(對應列的屬性和類型應該是相同的)規則三:屬性/列的唯一名稱。此規則要求表中的每個列都應具有唯一的名稱。這是為了避免在檢索數據或對存儲的數據執行任何其他操作時的混淆。規則四:數據的存儲順序無關緊要。此規則表明在表中存儲數據的順序無關緊要16數據庫規范化第二范式(2NF)應該滿足第一范式。應該沒有部分依賴。表中的屬性僅依賴于主鍵的一部分而不是整個組合主鍵,這就是部分依賴關系要刪除部分依賴關系,可以重新劃分表,刪除導致部分依賴的屬性,并將其放到適合的其他表中。17數據庫規范化第三范式(3NF)它應該是滿足第二范式。它不應該具有傳遞依賴性。當非主鍵屬性依賴于其他非主鍵屬性,而不是依賴于主鍵,這是傳遞依賴。要刪除傳遞依賴關系,可以重新劃分表,刪除導致傳遞依賴的屬性,并將其放到適合的其他表中。18本章總結介紹了數據庫的相關概念;關系數據庫的數據模型;實體關系模型。數據庫規范化的三范式,以及如何規范化數據使其滿足三范式的要求。19謝謝!20Oracle概述本章目標了解Oracle12c數據庫的新功能。掌握Oracle的安裝和卸載方法。掌握客戶端的使用方法。掌握使用SQLDeveloper創建和刪除數據庫的方法。22Oracle數據庫簡介Oracle數據庫(OracleDatabase)又名OracleRDBMS(RelationalDatabaseManagementSystem)或簡稱Oracle是美國甲骨文公司的一款關系數據庫管理系統。Oracle數據庫系統是目前世界上最流行的關系數據庫管理系統之一。23Oracle數據庫簡介Oracle數據庫系統特點完整的數據管理功能:數據的大量性數據的保存的持久性數據的共享性數據的可靠性完備關系的產品:信息準則---關系型DBMS的所有信息都應在邏輯上用一種方法,即表中的值顯式地表示;保證訪問的準則視圖更新準則---只要形成視圖的表中的數據變化了,相應的視圖中的數據同時變化數據物理性和邏輯性獨立準則24Oracle數據庫簡介Oracle數據庫系統特點分布式處理功能:Oracle數據庫自第5版起就提供了分布式處理能力,到第7版就有比較完善的分布式數據庫功能了,一個Oracle分布式數據庫由Oraclerdbms、sql*Net、SQL*CONNECT和其他非Oracle的關系型產品構成。可移植性Oracle數據庫有很好的跨平臺性能,可以在Windows、Linux等多個操作系統平臺上使用。25Oracle數據庫簡介Oracle12c的新功能增強PL/SQL的性能采用類似在匿名塊中定義過程的方式,可以通過WITH語句在SQL中定義一個函數,提高SQL調用的性能。改善Defaults:包括序列作為默認值;自增列;當明確插入NULL時指定默認值;增加了多種數據類型長度:VARCHAR2、NVARCHAR2和RAW類型的長度達到32K。添加對TOPN的語句處理:在SELECT語句中使用“FETCHnextNrows”或者“OFFSET”,可以指定前N條或前百分之多少的記錄。26Oracle數據庫簡介Oracle12c的新功能行模式匹配:在行間進行匹配判斷并進行計算,實現類似分析函數的功能。在SQL中新的模式匹配語句是“MATCH_RECOGNIZE”。分區優化:多個分區同時操作、異步全局索引維護、部分本地和全局索引。數據優化:新增了ILM(數據生命周期管理)功能,添加了“數據庫熱圖”(Databaseheatmap)。OraclePluggableDatabase:OraclePDB體系結構由一個容器數據庫(CDB)和多個可組裝式數據庫(PDB)構成,PDB包含獨立的系統表空間和SYSAUX表空間等。27
Oracle安裝和卸載下載Oracle12cR1forMicrosoftWindows(x64)從Oracle官網下載Oracle12CR1數據庫軟件:winx64_12102_database_1of2.zipwinx64_12102_database_2of2.zip解壓winx64_12102_database_1of2.zip到指定文件夾下如:database;解壓winx64_12102_database_2of2.zip到database\stage\Components下。28Oracle安裝和卸載Oracle安裝過程運行setup.exe配置安全更新選擇安裝選項創建和配置數據庫僅安裝數據庫軟件升級現有數據庫選擇安裝的系統類型:桌面或服務器指定Oracle主目錄用戶典型安裝與配置檢查安裝環境安裝29Oracle安裝和卸載選擇“口令管理”,配置管理員口令以下用戶普通管理員:SYSTEM超級管理員:SYS口令也是需要符合Oracle口令規范(要求:大、小寫字母+數字的組合,長度不小于8)。30Oracle安裝和卸載Oracle安裝完成后,會在windows系統中注冊服務。主要有以下2個服務:OracleOraDB12Home1TNSListener:表示監聽服務,如果客戶端要想連接到數據庫,此服務必須啟動。OracleServiceORCL:表示數據庫的主服務,命名規則:OracleService數據庫名稱。此服務必須啟動,否則Oracle根本無法使用。31Oracle安裝和卸載卸載運行Oracle的卸載工具。Oracle提供了卸載工具deinstall.bat來卸載一個獨立的Oracle數據庫安裝,它位于在Oracle_HOME\deinstall文件夾中。根據提示提供有關服務器的信息,卸載工具會停止Oracle軟件運行,并刪除操作系統上針對Oracle主目錄的Oracle軟件和配置文件。刪除Oracle相關注冊信息。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\,刪除該路徑下的所有以Oracle開始的服務名稱,這個鍵是標識Oracle在windows下注冊的各種服務。HKEY_LOCAL_MACHINE\SOFTWARE\Oracle,刪除該Oracle目錄,該目錄下注冊著Oracle數據庫的軟件安裝信息。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application,刪除注冊表的以Oracle開頭的所有項目。32Oracle的客戶端Oracle的客戶端工具有:SQL*plus、OracleSQLDeveloperWeb版的企業管理器EMDatabaseExpress(地址:https://localhost:5500/em)。33Oracle的客戶端SQL*plusOracle的命令行方式的客戶端可以執行的三種命令:SQL語句PL/SQL語句SQL*plus語句34Oracle的客戶端SQL*plus實例1:啟動SQL*plus,并以system用戶的身份連接Oracle數據庫在“開始”菜單中的“Oracle-OraDB12Home1”文件夾下,單擊“SQLPlus”。在“請輸入用戶名:”的提示下,輸入:system/managerassysdba。實例2:創建用戶語法:CREATEUSERC##用戶名IDENTIFIEDBY用戶口令示例:CreateuserC##testorcuserindentifybyroot35Oracle的客戶端OracleSQLDeveloper工具OracleSQLDeveloper是一個免費的集成開發環境,簡化了傳統部署和云部署中Oracle數據庫的開發和管理。主要功能:創建連接瀏覽對象創建對象修改對象查詢和更新數據導出數據和DDL以及導入數據模式復制和比較過程命令編輯PL/SQL運行和調試PL/SQL運行和創建報表36Oracle的客戶端OracleSQLDeveloper工具37Oracle的客戶端OracleSQLDeveloper工具在主界面的左側的連接管理窗口中,可以實現如下功能:創建和測試連接:針對多個數據庫、針對多種模式存儲經常使用的連接導入和導出連接存儲口令或在連接時提示38Oracle的客戶端OracleSQLDeveloper工具瀏覽對象基于樹的對象瀏覽器,將對象按類型分組。對于每個對象類型,可以應用篩選器來限制顯示。包括:表、視圖、索引、程序包、過程、函數、觸發器、類型、序列、同義詞等等。特定于每個對象類型的選項卡式詳細信息顯示在窗口的右邊。39Oracle的客戶端OracleSQLDeveloper工具創建對象為每個支持的對象類型創建對話框,并支持外部表、索引編排表、臨時表和分區表等。40Oracle的客戶端OracleSQLDeveloper工具修改對象大多數對象都具有一般編輯對話框,并且可以通過右鍵單擊調用上下文菜單來進行特定修改。41Oracle的客戶端OracleSQLDeveloper工具查詢和更新數據使用查詢創建器可以通過拖放操作快速創建SQL查詢、選擇表以及通過單擊鼠標選擇列。42創建和刪除數據庫Oracle數據庫提供了DatabaseConfigurationAssistant(以下簡稱DBCA)實用工具來創建新的數據庫,配置或刪除已存在的數據庫,該工具采用圖形界面,以向導的方式提示用戶一步一步來完成數據庫的創建、配置和刪除等操作。43創建和刪除數據庫創建數據庫有兩種方式:使用DatabaseConfigurationAssistant(DBCA)圖形化工具。使用CREATEDATABASE語句。建議使用DBCA工具方式。44創建和刪除數據庫創建數據庫運行DBCA:單擊“開始”-“Oracle-OraDB12Home1”-“DatabaseConfigurationAssistant”或者在命令提示符下輸入:DBCA選擇“創建數據庫”選項,輸入參數:45參數
說明全局數據庫名指定全局數據庫名。存儲類型將存儲類型選為“文件系統”或“Oracle自動存儲管理(OracleASM)”。數據庫文件位置指定數據庫文件的位置
快速恢復區指定快速恢復區。管理口令指定數據庫的管理(例如SYS和SYSTEM賬戶)口令。輸入的口令應當符合Oracle建議的標準,即口令的長度至少應為8個字符,并且口令必須至少包含一個大寫字符,一個小寫字符和一個數字。Oracle口令用戶“OracleHomeUser”密碼(僅限MicrosoftWindows操作系統)。如果在安裝過程中指定了一個非管理員,低權限的Windows用戶賬戶(作為OracleHomeUser)來運行數據庫服務,則會提示輸入該用戶賬戶的密碼。創建為容器數據庫如果要創建容器數據庫,請選擇此選項。啟用此選項將數據庫創建為多租戶容器數據庫(CDB),可以支持零個,一個或多個用戶創建的可插拔數據庫(PDB)。插接式數據庫名指定插接式數據庫名。啟用數據庫合并此模式用于創建合并數據庫,可以將插接式數據庫與其相關聯。僅當安裝的Oracle主目錄已啟用數據庫合并選項時,才能使用此選項。可以在典型和高級模式下創建合并數據庫。
創建和刪除數據庫創建數據庫創建數據庫完成后,單擊“口令管理…”,可以鎖定或解鎖數據庫賬戶,更改賬戶的默認口令。單擊“關閉”,完成數據庫的創建。46創建和刪除數據庫刪除數據庫注意:刪除數據庫將把數據庫的數據及其所有對象一并刪除,并且無法恢復,請謹慎操作。運行DatabaseConfigurationAssistant(DBCA),選擇“刪除數據庫”選項47創建和刪除數據庫刪除數據庫在刪除數據庫列表,選擇要刪除的數據庫。如果用戶ID未經過操作系統驗證,那么請輸入具有SYSDBA權限的數據庫用戶名和口令。48創建和刪除數據庫刪除數據庫在要刪除的數據庫概要頁面,單擊“完成”后,顯示確認信息窗口。單擊“是”,開始刪除數據庫操作。單擊“否”,取消刪除數據庫操作。49本章總結Oracle數據庫的歷史及Oracle12c的新特性Oracle數據庫的安裝工具以及安裝和卸載的過程;介紹了Oracle數據庫的客戶端工具SQL*plus和SQLDeveloper的使用方法;使用DBCA實用工具來創建和刪除數據庫。50謝謝!51第3章Oracle體系結構知識點回顧認識一下ORACLEORACLE的安裝sqlplus工具的使用PL/SQLDEVELOPER工具簡單使用53本章目標理解與oracle相關的RDBMS體系結構理解oracle實例結構理解oracle數據庫的結構掌握結構化查詢語言(sql)的概念及分類掌握創建新用戶的方法,并授予權限和角色54Oracle數據庫簡介Oracle是關系型數據庫管理系統(RDBMS)在管理信息系統、企業數據處理、因特網及電子商務等領域使用非常廣泛在數據安全性與數據完整性控制方面性能優越跨操作系統、跨硬件平臺的數據互操作能力55Oracle數據庫簡介基于客戶機/服務器(C/S)技術客戶機-用戶和數據庫之間的接口服務器-存儲和管理數據請求響應網絡服務器數據庫服務器對數據庫表進行最佳管理,處理多個客戶端對同一數據的并發訪問。全面地保持數據完整性,并控制數據庫訪問權限等安全性需求56Oracle體系結構數據庫的體系結構是指數據庫的組成、工作過程與原理,以及數據在數據庫中的組織與管理機制Oracle服務器提供開放、全面和綜合的信息管理,它由Oracle數據庫和Oracle實例組成Oracle服務器Oracle數據庫Oracle
實例Oracle數據庫是一個數據的集合,該集合被視為一個邏輯單元管理數據庫的后臺進程和內存結構的集合稱為Oracle實例
57Oracle主要組件實例內存結構后臺進程
PMONSMONDBWRLGWRCKPT其他
數據庫數據文件數據文件數據文件控制文件控制文件日志文件日志文件參數文件歸檔日志文件口令文件SGA用戶進程服務器進程PGA共享池數據緩沖區日志緩沖區58Oracle實例Oracle實例是后臺進程和內存結構的集合Oracle實例系統全局區后臺進程分配啟動59Oracle數據庫Oracle數據庫由操作系統文件組成,這些文件為數據庫信息提供實際物理存儲區Oracle數據庫包括邏輯結構和物理結構物理結構邏輯結構Oracle數據庫物理結構包含數據庫中的一組操作系統文件。邏輯結構指數據庫創建之后形成的邏輯概念之間的關系60Oracle中數據庫和實例的關系對于第一次接觸“實例”和“數據庫”的人來說,容易把二者混淆。實例是“內存”和“后臺進程”的集合。數據庫是數據的物理存儲。特別注意,一個實例可以用于一個數據庫,多個實例也可以同時用于一個數據庫。舉個例子,如果把數據庫比作一架飛機,實例就是飛機的發動機。那么,一臺發動機可以驅動飛機,兩臺發動機也可以同時驅動一架飛機。61Oracle物理組件物理組件就是Oracle數據庫所使用的操作系統物理文件。物理文件可分為三類:物理組件數據文件控制文件日志文件日志文件記錄對數據庫的所有修改信息,用于故障恢復。控制文件是記錄數據庫物理結構的二進制文件。數據文件用于存儲數據庫數據,如表、索引數據等。62Oracle邏輯組件數據庫的邏輯結構是從邏輯的角度分析數據庫的組成。Oracle的邏輯組件包括:數據庫表空間段區數據塊
模式63Oracle邏輯組件
表空間表空間是數據庫中最大的邏輯單位,一個Oracle數據庫至少包含一個表空間,就是名為SYSTEM的系統表空間。每個表空間是由一個或多個數據文件組成的,一個數據文件只能與一個表空間相關聯。表空間的大小等于構成該表空間的所有數據文件大小之和。Oracle
數據庫中的典型表空間是:SYSTEM
表空間、DATA
表空間、USER
表空間、TOOLS
表空間、TEMP表空間64Oracle邏輯組件
表空間數據庫的控制空間分配(例如表和索引)為數據庫用戶設置空間配額備份或恢復數據數據庫、表空間和數據文件的關系65Oracle邏輯組件段段是構成表空間的邏輯存儲結構,段由一組區組成。按照段所存儲數據的特征,將段分為四種類型,即數據段、索引段、回退段和臨時段。區區為段分配空間,它由連續的數據塊組成。當段中的所有空間已完全使用時,系統自動為該段分配一個新區。區不能跨數據文件存在,只能存在于一個數據文件中。數據塊數據塊是Oracle服務器所能分配、讀取或寫入的最小存儲單元。Oracle服務器以數據塊為單位管理數據文件的存儲空間。模式模式是對用戶所創建的數據庫對象的總稱。模式對象包括表、視圖、索引、同義詞、序列、過程和程序包等。66數據塊數據區間------------------------------------------------------------------------數據段------------------------------------------------------------------------邏輯對象------------------------------------------------------------------------表空間------------------------------------------------------------------------數據庫------------------------------------------------------------------------Oracle邏輯組件Oracle數據庫表空間表空間表空間表索引視圖……數據段數據段索引段臨時段回滾段數據區間數據區間數據塊數據塊Oracle數據庫的邏輯結構……Oracle數據庫由若干個表空間組成,表空間由表組成,表由段組成,段由區間組成,區間則由數據塊組成。67Oracle邏輯組件
方案方案是一組數據庫對象的集合。在創建用戶的時候,會同時生成一個與用戶同名的方案,此方案歸同名用戶所有。方案對象直接處理數據庫數據的邏輯結構,例如表(table)、視圖(view)、索引(index)和簇(Clusters)等。表空間和方案的關系:同一方案中的對象可以存儲在不同的表空間中。表空間可以存儲不同方案中的對象。68Oracle邏輯組件
模式和模式對象一個模式(schema)為模式對象(scehmaobject)的一個集合,每一個數據庫用戶對應一個模式。模式對象為直接引用數據庫數據的邏輯結構,模式對象包含如表、視圖、索引、聚集、序列、同義詞、數據庫鏈、過程和包等結構。模式對象是邏輯數據存儲結構,每一種模式對象在磁盤上都有一個相應文件存儲其信息。一個模式對象邏輯地存儲在數據庫的一個表空間中,每一個對象的數據物理地包含在表空間的一個或多個數據文件中。69會話會話是用戶與Oracle服務器的單個連接當用戶與服務器建立連接時創建會話當用戶與服務器斷開連接時關閉會話70啟動Oracle實例創建用戶進程創建服務器進程提交SQL查詢
使用SQL*PIUS連接至數據庫Oracle
默認用戶只有用合法的用戶帳號才能訪問Oracle數據庫Oracle有幾個默認的數據庫用戶
Oracle
默認用戶SYSSYSTEMSCOTTSCOTT用戶是Oracle數據庫的一個示范帳戶,在數據庫安裝時創建SYSTEM
是默認的系統管理員,該用戶擁有Oracle管理工具使用的內部表和視圖。通常通過SYSTEM用戶管理數據庫用戶、權限和存儲等數據庫中所有數據字典表和視圖都存儲在SYS模式中。SYS用戶主要用來維護系統信息和管理實例。71Oracle的結構化查詢語言(SQL)及工具SQL(StructuredQueryLanguage)結構化查詢語言,是一種數據庫查詢和程序設計語言,用于存取數據以及查詢、更新和管理關系數據庫系統。PL/SQL語言SQL語言的擴展PL/SQL語言SQL*Plus:輸入、編輯、存儲、檢索和運行SQL命令以及PL/SQL塊的工具第三方工具:pl-sqldeveloper72工具演示演示sqlplus工具的使用演示plsqldeveloper工具的使用73SQL語言的類別
數據定義語言(DDL)CREATE命令ALTER命令DROP命令TRUNCATE命令數據操縱語言(DML)INSERTSELECTUPDATEDELETE數據控制語言(DCL)GRANTREVOKE事務處理和數據控制命令(TCL)COMMITROLLBACK74創建新用戶要連接到Oracle數據庫,就需要創建一個用戶賬戶每個用戶都有一個默認表空間和一個臨時表空間CREATEUSER命令用于創建新用戶CREATEUSER命令的語法是:
CREATEUSERusernameIDENTIFIEDBYpassword[DEFAULTTABLESPACEtablespace][TEMPORARYTABLESPACEtablespace];
CREATEUSERdavidIDENTIFIEDBYdavidpassDEFAULTTABLESPACE
USERSTEMPORARYTABLESPACETEMP75創建一個名稱為david的用戶,其密碼為davidpass授予權限3-1權限指的是執行特定命令或訪問數據庫對象的權利權限有兩種類型,系統權限和對象權限系統權限允許用戶執行某些數據庫操作,如創建表就是一個系統權限對象權限允許用戶對數據庫對象(如表、視圖、序列等)執行特定操作角色是一組相關權限的組合,可以將權限授予角色,再把角色授予用戶,以簡化權限管理76授予權限3-2GRANT命令可用于為用戶分配權限或角色
77
connect角色允許用戶連接至數據庫,并創建數據庫對象Grantconnecttodavid;GrantRESOURCEtodavid;Grantcreatesequencetodavid;
resource角色允許用戶使用數據庫中的存儲空間
此系統權限允許用戶在當前模式中創建序列,此權限包含在connect角色中授予權限3-3授予用戶david操作test表對象的權限78Grantselectontesttodavid;允許用戶查詢test表中的記錄Grantupdateontesttodavid;允許用戶更新test表中的記錄Grantallontesttodavid;允許用戶插入、刪除、更新和查詢test表中的記錄更改和刪除用戶aalteruseR命令可用于更改口令
DROPUSER命令用于刪除用戶79alteruseRDAVIDIDENTIFIEDBYdavidpassword;修改DAVID用戶的密碼DROPuseRDAVIDCASCADE;刪除DAVID用戶模式總結ORACLE服務器包含:ORACLE數據庫和ORACLE實例數據庫有下面兩類組件:物理組件和邏輯組件。物理組件是操作系統文件,有下面三種類型:數據庫
文件或數據文件、控制文件、恢復日志文件邏輯組件決定數據庫中物理空間的使用,它包括:表空
間、段、數據區、塊以及模式對象。結構化查詢語言(sql)的概念及分類創建新用戶,并授予權限和角色80謝謝!81第4章表的設計、創建及維護知識點回顧Oracle服務器包括:oracle數據庫和oracle實例Oracle實例結構Oracle數據庫的物理組件和邏輯組件結構化查詢語言(sql)及分類創建新用戶,并授予權限和角色83本講目標了解Oracle數據類型掌握表的設計及創建掌握數據定義語言的使用84SQL簡介2-1SQL是StructuredQueryLanguage(結構化查詢語言)的首字母縮寫詞SQL是數據庫語言,Oracle使用該語言存儲和檢索信息表是主要的數據庫對象,用于存儲數據通過SQL可以實現與Oracle服務器的通信SELECTenameFROMEmp;發送SQL查詢Oracle服務器enameBLAKESMITHALLENDAVIDMARTIN發送命令輸出到用戶端用戶85SQL簡介2-2SQL支持下列類別的命令:數據定義語言(DDLDataDefinitionLanguage)數據操縱語言(DMLDataManipulationLanguage)事務控制語言(TCLTransactionControlLanguage)數據控制語言(DCLDataControlLanguage)數據定義語言CREATEALTERDROP數據操縱語言INSERTSELECTDELETEUPDATE事務控制語言COMMITSAVEPOINTROLLBACK數據控制語言GRANTREVOKE86Oracle數據類型5-1創建表時,必須為各個列指定數據類型以下是Oracle數據類型的類別:數據類型字符數值日期時間RAW/LONGRAWLOB87Oracle數據類型5-2字符數據類型CHARVARCHAR2LONG當需要固定長度的字符串時,使用CHAR數據類型。CHAR數據類型存儲字母數字值。CHAR數據類型的列長度可以是1到2000個字節。VARCHAR2數據類型支持可變長度字符串VARCHAR2數據類型存儲字母數字值VARCHAR2數據類型的大小在1至4000個字節范圍內LONG數據類型存儲可變長度字符數據LONG數據類型最多能存儲2GB88Oracle數據類型5-3數值數據類型可以存儲整數、浮點數和實數最高精度為
38位數值數據類型的聲明語法:NUMBER[(p[,s])]P表示精度,S表示小數點的位數日期時間數據類型存儲日期和時間值,包括年、月、日,小時、分鐘、秒主要的日期時間類型有:DATE-存儲日期和時間部分,精確到整個的秒TIMESTAMP-存儲日期、時間和時區信息,秒值精確到小數點后6位89Oracle數據類型5-4RAW數據類型用于存儲二進制數據RAW數據類型最多能存儲2000字節LONGRAW數據類型用于存儲可變長度的二進制數據LONGRAW數據類型最多能存儲2GBLOBLOB稱為“大對象”數據類型,可以存儲多達4GB的非結構化信息,例如聲音剪輯和視頻文件等LOB數據類型允許對數據進行高效、隨機、分段的訪問BLOBCLOBBFILECLOB即CharacterLOB(字符LOB),它能夠存儲大量字符數據BLOB即BinaryLOB(二進制LOB),可以存儲較大的二進制對象,如圖形、視頻剪輯和聲音文件BFILE即BinaryFile(二進制文件),它用于將二進制數據存儲在數據庫外部的操作系統文件中90Oracle數據類型5-5Oracle中偽列就像一個表列,但是它并沒有存儲在表中偽列可以從表中查詢,但不能插入、更新和刪除它們的值常用的偽列有ROWID和ROWNUMROWID是表中行的存儲地址,該地址可以唯一地標識數據表中的一行,可以使用ROWID偽列快速地定位表中的一行ROWNUM是查詢返回的結果集中行的序號,可以使用它來限制查詢返回的行數91數據定義語言數據定義語言用于改變數據庫結構,包括創建、更改和刪除數據庫對象用于操縱表結構的數據定義語言命令有:CREATETABLEALTERTABLETRUNCATETABLEDROPTABLE92表的創建和維護用來創建和修改數據庫表的命令被稱為“數據定義語言”(DataDefinitionLanguage,DDL)命令。這些命令實際上是專門用來創建或修改數據庫對象的SQL命令。93表設計3-1首先表的名稱并確定結構;確定哪些列將包含在這個表中,確定任何字符或數字列所需要的寬度在Oracle中命名表和列時的規則:表和列的名稱最多可以達到30個字符長,而且必須以一個字母開始,這個限制只適合于表或列的名稱,而不適合用于一列中的數據量。表和列名稱中允許數字,下劃線(_)和數字符號(#),但是不能在表和列名稱中包含任何空格。用戶擁有的每一個表應該具有一個唯一的表名稱,而且每一個表中的列名稱也應該是唯一的不能使用Oracle“保留字”,例如:SELECT,DISTINCT,CHAR和NUMBER等。94表設計3-2確定了表的內容,可以創建列了,必須完成為每一列選擇一個名稱確定每一列將存儲的類型。確定(在某些情況下)列的最大寬度95表設計3-3在選擇列名稱之前,先看一下數據類型以及他們的默認值Oracle數據類型數據類型說明VARCHAR2(n)長度可變的字符數據,其中n表示這個列的最大長度,最大大小是4000個字符。這種數據類型沒有默認大小,必須指定一個最小值。例子:VARCHAR2(9),最多可以包含9個字母、數字或符號CHAR(n)長度固定的字符,其中n表示列的長度,默認大小是1,最大大小是2000個字符。例子:CHAR(9)可以包含9個字母,數字或符號,但是輸入的字符少于9個,則會向右邊添加空格,使數據達到9個字符的長度。NUMBER(p,s)數字列,其中p表示精度(或小數右邊和左邊的總位數),最大值是38位NUMBER(7,2)DATE日期類型,默認的格式“DD-MM-YY”,可以使用TO_CHAR格式顯示日期其他元素LONG最多存儲2G的長度可變的字符數據CLOB用于最多4GB的單字節字符數據RAW(n)最多存儲2000字節的原始二進制數據。LONGRAW最多2GB的未結構化數據BLOB最多可存儲4GB的未結構化數據BFILE存儲了操作系統存儲的一個二進制文件的文件定位器TIMESTAMPDATE的數據擴展,不需要TO_CHAR函數就可引用時,分,秒INTERVAL用來確定特定的時間間隔或時間量96創建表關鍵字“CREATETABLE”指示Oralce創建一個表。可以包括可選的schema(架構),表示誰將“擁有”要創建的這個表,例如:如果創建這個表的用戶也就是這個將要擁有這個表的人,那么可以忽略架構,將默認采用當前的用戶名。另一方面,如果使用用戶名為DRAKE為某個人創建了ACCTMANAGER表,那么架構和表名稱將屬于DRAKE的架構,而不是屬于你的架構。數據庫對象的所有者有權在對象上執行這些操作。要想為其他人的架構創建一個表(也就是其他人擁有的表),你必須具有對那個用戶的架構使用CREATETABLE命令的權限。CREATETABLE[schema]tablename(columnnamedatatype[DEFAULTvalue],columnnamedatatype[DEFAULTvalue],…);97定義列一個表最多可以包含1000列。CREATETABLEacctmanager(amidVARCHAR2(4),amnameVARCHAR2(20),amedateDATEDEFAULTSYSDATE,regionCHAR(2));創建表的時候允許向列分配一個默認值。默認值是用戶沒有在列中輸入內容情況,Oracle自動存儲的值。表名雖然是以小寫字母輸入,但ORACLE會在處理命令時自動轉為大寫。將表名與列名取小寫字母為了與Oracle關鍵字區別。由于創建表的用戶就是這個表的擁有者,所以省略架構名。amedate分配了一個默認值SYSDATE,表明如果用戶輸入新的銷售經理信息,而沒有包括這個人的聘用時間時,則oracle服務器會插入當前日期。注意:如果定義amedate為空,則會生成一個錯誤。執行了命令之后,只是創建了表結構,并沒有數據。能夠執行CREATETABLE命令必須有這個權限,如果沒有要求管理員授予。98查看表結構:DESCRIBEDESCRIBEtablename用來顯示表的結構注意:DESCRIBE是sql*plus的命令而不是SQL命令。命令的簡寫DESC結果中列出了定義的列和數據類型,還顯示了這一列是否為空,也就是是否允許NULL值,注意:amid如果定義為了主鍵,則會顯示NOTNULL,在講約束的時候會講到。99通過子查詢創建表創建一個包含現有表的數據的表,可以使用CREATETABLE命令并包括一個包含子查詢的AS子句。CREATETABLEtablename[(columnname,…)]AS(subquery);CREATETABLEsecustomerordersAS(SELECTcustomer#,state,ISBN,Category,quantity,cost,retailFROMcustomersNATURALJOINordersNATURALJOINOrderitemsNATURALJOINbooksWHEREstateIN('FL','GA','AL'));100修改現有表對表結構進行更改:添加一列,刪除一列,更改列的大小通過ALTERTABLE命令來來實現ORACLE的特性:可以修改表而不必關閉數據庫,即使用戶正在訪問這個表,仍然可以修改這個表而不必中斷服務。
ALTERTABLEtablenameADD|MODIFY|DROPCOLUMN|coloumnname[definition];101ALTERTABLE…ADD命令示例:acctmanager表中添加電話分機號碼ALTERTABLEtablenameADD(columnnamedatatype,[DEFAULT]…);ALTERTABLEacctmanagerADD(extNUMBER(4));102ALTERTBALE…MODIFY命令對列進行的更改包括:更改一列的大小(增加或減小)更改數據類型更改或添加一列的默認值ALTERTABLEtablenameMODIFY(columnnamedatatype,[DEFAULT]…);103ALTERTBALE…MODIFY命令修改這個表的時候要注意三個規則:1.一列必須與它已經包含的數據字段一樣寬。(例如:假設已經將一個列定義為15個字符寬的VARCHAR2數據類型,但是,這個特定列中的最大項目只包含12個字符,因此你只能將這一列的大小減小到12個字符寬。)示例:customers表lastname列最大項字符是8,減小到6要報錯ALTERTABLEcustomersMODIFY(lastnameVARCHAR(6));104ALTERTBALE…MODIFY命令2.如果一個NUMBER列已經包含了數據,那么你不能降低這一列的精確度或小數位數。ALTERTABLEbooksMODIFY(costNUMBER(4,2));105ALTERTBALE…MODIFY命令3.更改一列的默認值不會更改表中已經存在的數據值。ALTERTABLEacctmanagerMODIFY(extDEFAULT1200);同時更改多列ALTERTABLEacctmanagerMODIFY(extDEFAULT1200,amnamevarchar2(25));106ALTERTABLE…DROPCOLUMN命令使用該命令可以從一個表中刪除現有列注意:因為該子句將刪除列及其內容,所以使用要格外小心ALTERTABLEtablenameDROPCOLUMNcloumnname;107ALTERTABLE…DROPCOLUMN命令使用DROPCOLUMN子句時,記住以下幾點:與帶有ADD或MODIFY的子句的ALTERTABLE命令不同,DROPCOLUMN子句只能引用一個列。如果從表中刪除一列,那么刪除將是永久的,如果不小心從表中錯誤地刪除了列,那么你不能“取消”這種損壞,唯一的選擇是將這一列重新添加到表中,然后手工重新輸入以前包含的所有數據。你不能刪除表中剩余的最后一列,如果一個表只包含一列并且你嘗試刪除這一列,那么這個命令將會失敗,將返回一個出錯消息。108ALTERTABLE…DROPCOLUMN命令繼續刪除ALTERTABLEacctmanagerDROPCOLUMNext;ALTERTABLEacctmanagerDROPCOLUMNREGION;ALTERTABLEacctmanagerDROPCOLUMNAMEDATE;ALTERTABLEacctmanagerDROPCOLUMNAMNAME;ALTERTABLEacctmanagerDROPCOLUMNAMID;109ALTERTABLE…SETUNUSED/DROPUNUSEDCOLUMNS命令當Oracle服務器從一個非常大的表中刪除一列時,這將降低用戶的查詢或其他SQL命令的處理速度,為了避免這種問題,可以在ALTERTABLE命令中包括SETUNUSED子句,將這一標記記為以后再刪除.如果將一列標記為刪除,那么這一列就是標記為不可用的,它不會顯示在表結構中。因為這一列是不可用的,所以它也不會出現在任何查詢的結果中,也不能在這一列上執行除了ALTERTABLE…DROPUNUSED命令之外的其他任何操作。換句話說,將一列設置為“unused”(不使用)之后.這一列及其所有的內容都將無法使用,以后也不能恢復它。這是推遲從存儲設備中物理清除數據——通常推遲到服務器正在處理的查詢很少時,例如在營業時間之后。ALTERTABLE命令使用DROPUNUSED子句來完成已經標記為“不使用”的任何列的刪除過程。110ALTERTABLE…SETUNUSED/DROPUNUSEDCOLUMNS命令ALTERTABLEtablenameSETUNUSED(columnname);或者ALTERTABLEtablenameSETUNUSEDCOLUMNcolumnname;ALTERTABLEtablenameDROPUNUSEDCOLUMNS;刪除已經設置為“不使用”的任何列,而且可以使用這些列中包含的數據以前所占用的任何存儲空間111ALTERTABLE…SETUNUSED/DROPUNUSEDCOLUMNS命令示例:ALTERTABLEacctmanagerSETUNUSED(region);ALTERTABLEacctmanagerDROPUNUSEDCOLUMNS;112重命名表RENAMEoldtablenameTOnewtablename;Oracle允許使用RENAME…TO命令更改你所擁有的任何表的名稱在一個組織工作中,不要更改其他用戶訪問的表的名稱,除非你事先通知了他們新的表的名稱RENAMEacctmanagerTOacctman;113截斷表在截斷一個表時,表中包含的所有行都將被刪除,但表本身將會保留,換句話說,列依然存在,只是其中沒有存儲值。實際上與刪除一個表中的所有行是相同的,但是,如果只是刪除一個表中的所有行,那么這些行多占用的存儲空間仍然是分配給這個表的。要想刪除存儲在一個表中的行并釋放這些行所占有的存儲空間,可以使用TRUNCATETABLE命令。TRUNCATETABLEtablename;114刪除表DROPTABLEtablename;刪除時一定要非常小心,刪除一個表之后,表及它所包含的所有數據都將丟失,這個表所創建的任何索引也將刪除,索引后面講解。DROPTABLEacctman;115總結建表時常用的數據類型表的設計及創建掌握數據定義語言的使用create..alter…drop…116謝謝!117第5章數據完整性與約束本章目標掌握約束的主要作用。掌握常用約束的使用方式。掌握操作約束的方法。119數據完整性概念數據完整性可以幫助確保存儲在數據庫中數據的準確性、有效性和正確性。數據完整性控制可被視為判斷數據有效與否的規則。120實現數據完整性的方法Oracle數據庫有五種類型的約束主鍵約束(primarykey):將非NULL約束與單個聲明中的唯一約束結合在一起。它禁止多行在同一列或列的組合中具有相同的值,并禁止值為null。外鍵約束(foreignkey):要求一個表中的值與另一個表中的值相匹配。唯一約束(unique):禁止多行在同一列或列的組合中具有相同的值,但允許某些值為null。檢查約束(check):要求數據庫中的值符合指定條件。非空約束(NOTNULL):禁止將數據庫中的值為空(null)。121實現數據完整性的方法定義約束兩種方式:作為單個列或屬性的定義的一部分。這稱為列級約束。作為表定義的一部分。這稱為表級約束說明:只有非空約束(NOTNULL)必須在列級聲明。其他約束聲明在列級或表級都可以。122實現數據完整性的方法創建約束的子句CREATETABLEALTERTABLECREATEVIEWALTERVIEW在Oracle數據庫中,可以在視圖(View)上創建視圖約束。但通常通過基表上的約束對視圖實施約束。123實現數據完整性的方法創建約束的子句CREATETABLEALTERTABLECREATEVIEWALTERVIEW在Oracle數據庫中,可以在視圖(View)上創建視圖約束。但通常通過基表上的約束對視圖實施約束。只能在視圖上指定唯一、主鍵和外鍵約束,并且僅在禁用NOVALIDATE模式下使用。124實現數據完整性的方法創建列級約束的語法125實現數據完整性的方法創建表級約束的語法126oracle中常用約束的用法主鍵約束在主鍵約束中,受約束的一個列或多個列組合中的值唯一標識行。每個表都有一個主鍵,確保不存在重復行。一個表或視圖有且只有一個主鍵作用:在指定列或一組列中,沒有兩行具有重復值。主鍵列不允許空值。127oracle中常用約束的用法主鍵約束實例:創建locations_demo表,并在location_id列上定義并啟用主鍵約束128CREATETABLElocations_demo(location_idNUMBER(4)CONSTRAINTloc_id_pkPRIMARYKEY,street_addressVARCHAR2(40),postal_codeVARCHAR2(12),cityVARCHAR2(30),state_provinceVARCHAR2(25),country_idCHAR(2));oracle中常用約束的用法主鍵約束也可以創建表級主鍵約束:129CREATETABLElocations_demo(location_idNUMBER(4),street_addressVARCHAR2(40),postal_codeVARCHAR2(12),cityVARCHAR2(30),state_provinceVARCHAR2(25),country_idCHAR(2),CONSTRAINTloc_id_pkPRIMARYKEY(location_id));oracle中常用約束的用法主鍵約束實例:在樣例表sales創建列prod_id和cust_id復合的主鍵130ALTERTABLEsalesADDCONSTRAINTsales_pkPRIMARYKEY(prod_id,cust_id)DISABLE;CONSTRAINT子句還可以按以下方式使用:不定義約束名稱,由Oracle為約束生成一個名稱。在定義約束時,使用disable子句,表示不啟用它。oracle中常用約束的用法外鍵約束當兩個表包含一個或多個公共列時,Oracle數據庫可以通過外鍵約束(也稱為參照完整性約束)強制兩個表之間的關系.外鍵約束要求對于定義約束的列中的每個值,必須與引用表中指定的列的值匹配。131oracle中常用約束的用法外鍵約束外鍵約束相關的概念:外鍵:外鍵約束定義中的引用了其他表的的列或列集,一般是其他表的主鍵列。引用鍵:外鍵引用的其他表的唯一鍵或主鍵。從表或子表:包含外鍵的表。此表的值依賴于引用表的唯一或主鍵中存在的值。引用表或父表:由子表的外鍵引用的表。此表的引用鍵確定子表中是否允許特定的插入或更新。132oracle中常用約束的用法外鍵約束自引用外鍵約束引用同一表中列的外鍵。空值和外鍵在關系模型中,外鍵的值與引用的主鍵值匹配,或者為null。133oracle中常用約束的用法外鍵約束引用鍵修改。修改或刪除引用鍵時,外鍵約束可以指定要在子表的從屬行上執行的下列操作:無操作:在正常情況下,如果結果違反引用完整性,則用戶無法修改引用的鍵值。 級聯刪除:當刪除包含引用的鍵值的行時,刪除級聯(使用DELETECASCADE子句),導致具有從屬外鍵值的子表中的所有行也被刪除。刪除時設置為null:當刪除包含引用的鍵值的行時,刪除設置為null(使用DELETESETNULL子句),從而導致子表中引用外鍵值的所有行的值設置為null。134oracle中常用約束的用法外鍵約束實例:創建dept_20表,并在department_id列上定義引用departments表主鍵department_id列的外鍵約束,并啟用.135CREATETABLEdept_20(employee_idNUMBER(4),last_nameVARCHAR2(10),job_idVARCHAR2(9),manager_idNUMBER(4),hire_dateDATE,salaryNUMBER(7,2),commission_pctNUMBER(7,2),department_idCONSTRAINTfk_deptnoREFERENCESdepartments(department_id));oracle中常用約束的用法外鍵約束實例:創建dept_20表,定義并啟用兩個外鍵約束,并使用ONDELETE子句:136CREATETABLEdept_20(employee_idNUMBER(4)PRIMARYKEY,last_nameVARCHAR2(10),job_idVARCHAR2(9),manager_idNUMBER(4)CONSTRAINTfk_mgrREFERENCESemployeesONDELETESETNULL,hire_dateDATE,salaryNUMBER(7,2),commission_pctNUMBER(7,2),department_idNUMBER(2)CONSTRAINTfk_deptnoREFERENCESdepartments(department_id)ONDELETECASCADE);oracle中常用約束的用法外鍵約束實例:在已創建的表dept_20中添加employee_id和hire_date列的組合外鍵約束并啟用:137ALTERTABLEdept_20ADDCONSTRAINTfk_empid_hiredateFOREIGNKEY(employee_id,hire_date)REFERENCESjob_history(employee_id,start_date)oracle中常用約束的用法唯一性約束唯一性約束將限定一列的值或多列的組合值必須唯一。在列級定義唯一性約束時,只需要UNIQUE關鍵字。當在表級定義唯一性約束時,還必須指定一個或多個列。組合唯一性約束必須在表級定義。138oracle中常用約束的用法唯一性約束實例:創建promotions_var1表,為promo_id列添加唯一性約束139CREATETABLEpromotions_var1(promo_idNUMBER(6)CONSTRAINTpromo_id_uUNIQUE,promo_nameVARCHAR2(20),promo_categoryVARCHAR2(15),promo_costNUMBER(10,2),promo_begin_dateDATE,promo_end_dateDATE);oracle中常用約束的用法唯一性約束實例:創建promotions_var2表,為promo_id列添加名為promo_id_u的唯一性約束140CREATETABLEpromotions_var2(promo_idNUMBER(6),promo_nameVARCHAR2(20),promo_categoryVARCHAR2(15),promo_costNUMBER(10,2),promo_begin_dateDATE,promo_end_dateDATE,CONSTRAINTpromo_id_uUNIQUE(promo_id)oracle中常用約束的用法唯一性約束實例:為已存在的warehouses表的warehouse_id,warehouse_name列,添加名wh_unq為的唯一性約束141ALTERTABLEwarehousesADDCONSTRAINTwh_unqUNIQUE(warehouse_id,warehouse_name)oracle中常用約束的用法檢查性約束檢查性(check)約束即要求每一行的一列或多列的值,必須滿足指定條件。檢查約束的主要好處是具有非常靈活的完整性規則的能力。142oracle中常用約束的用法檢查性約束創建一個divisions表,并在表的每一列中定義check約束。143CREATETABLEdivisions(div_noNUMBERCONSTRAINTcheck_divnoCHECK(div_noBETWEEN10AND99),div_nameVARCHAR2(9)CONSTRAINTcheck_divnameCHECK(div_name=UPPER(div_name)),officeVARCHAR2(10)CONSTRAINTcheck_officeCHECK(officeIN('DALLAS','BOSTON','PARIS','TOKYO'));oracle中常用約束的用法檢查性約束實例:創建dept_20表,定義表級檢查(check)約束。144CREATETABLEdept_20
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023三年級英語下冊 Unit 2 I'm in Class One Grade Three Lesson 7教學設計 人教精通版(三起)
- 薪酬管理教學
- 4 安全標識(教學設計)-2023-2024學年浙美版(2012)美術四年級下冊
- Unit5 The colorful world(教學設計)三年級英語上冊同步備課系列(人教PEP版·2024秋)
- 7 《我在這里長大》第二課時(教學設計)2023-2024學年統編版道德與法治三年級下冊
- 2024-2025學年高中英語下學期第3周 模塊1 課文語言知識點教學設計
- 2024七年級英語下冊 Unit 2 It's Show Time Lesson 12 A Blog about the Silk Road教學設計(新版)冀教版
- Unit 2 第五課時:integration 英文版教學設計2024-2025學年譯林版(2024)七年級英語上冊
- Unit2 Reading plus教學設計2024-2025學年人教版英語七年級下冊
- 2024年一年級品生下冊《奇妙的作品》教學設計 遼師大版
- 醫務人員職業暴露預防及處理課件(完整版)
- 學位英語4000詞(開放大學)
- 【中職專用】備戰中職高考數學沖刺模擬卷六答案
- 天然氣管道清管技術規范與操作實踐考核試卷
- 2024年九年級中考語文課外文言文閱讀題匯集(一)附答案解析
- 金融知識與服務考核試卷
- 小組工作中的角色分工
- GB/T 9799-2024金屬及其他無機覆蓋層鋼鐵上經過處理的鋅電鍍層
- 高三下學期一模英語讀后續寫 科學課的啟示 講義
- (正式版)JTT 1499-2024 公路水運工程臨時用電技術規程
- 燃氣管道工程施工組織設計方案
評論
0/150
提交評論