一.Oracle數據庫的使用


Oracle 數據庫的使用

一、 數據庫相關概念

   1 什么是數據庫

  所謂的數據庫其實就是數據的集合。用戶可以對集合中的數據進行新增、查詢、更新、刪除等操作。數據庫是以一定方式儲存在一起、能與多個用戶共享、具有盡可能小的冗余度、與應用程序彼此獨立的數據集合。

 2 數據庫類型

  2.1關系型
    Oracle
    Mysql
    PostgreSQL
    DB2
    Microsoft SQL Server
    Microsoft Access
  2.2非關系型
    Redis
    Mongodb
    Big Table

   3 關系型數據庫與非關系型數據之間的區別

  3.1關系型數據庫
  3.1.1特點
    關系型數據庫最典型的數據結構是表,由二維表及其之間的聯系所組成的一個數據組織。支持事務一致特性。
  3.1.2優點
    易於維護:都是使用表結構,格式一致;
    使用方便:SQL 語言通用;
    復雜操作:支持 SQL,可用於一個表以及多個表之間非常復雜的查詢;
  3.1.3缺點
    性能差:讀寫性能比較差,尤其是海量數據的高效率讀寫,傳統關系型數據庫來說,硬
    盤 I/O 是一個很大的瓶頸;
    存儲方式不靈活:固定的表結構,靈活度稍欠;
  3.2非關系型數據庫
  3.2.1特點
    非關系型數據庫嚴格上不是一種數據庫,應該是一種數據結構化存儲方法的集合,可以是文檔或者鍵值對等。不支持事務一致特性。
  3.2.2優點
    格式靈活:存儲數據的格式可以是 key,value 形式、文檔形式、圖片形式等等;
    高擴展性:基於鍵值對,數據沒有耦合性,容易擴展;
    速度快:無需經過 sql 層的解析,讀寫性能很高;
  3.2.3缺點
    不支持 SQL:不提供 sql 支持,學習和使用成本較高;
    不支持事務:無事務處理能力;
    不支持復雜查詢:數據結構相對復雜,復雜查詢方面稍欠;

二、 Oracle 入門

   1 什么是 Oracle 數據庫

  所有的關系型數據庫存儲數據的集合就是磁盤中的文件。Oracle 數據庫其實就是一組文件的集合。Oracle 數據庫分別由:數據文件、控制文件、日志文件所構成。
  1.1數據文件(.DBF)
    數據文件是一個二進制文件,是用於保存用戶應用程序數據和 Oracle 系統內部數據的文件,這些文件在操作系統中就是普通的操作系統文件。Oracle 在創建表空間的同時會創建數據文件。
  1.2控制文件(.CTL)
控制文件是一個二進制文件,它主要記錄數據庫的名稱、數據庫的數據文件存放位置等信息。一個控制文件只能屬於一個數據庫。如果控制文件丟失,這數據庫就無法操作。
  1.3日志文件(.LOG)
日志文件在 Oracle 數據庫中分為重做日志(Redo Log File)文件和歸檔日志文件兩種。重做日志文件是 Oracle 數據庫正常運行不可缺少的文件。重做日志文件主要記錄了數據庫操作過程。用於備份和還原數據庫,以達到數據庫的最新狀態。

 2 什么是 Oracle 實例

  實例就是數據庫啟動后分配的內存和建立的后台進程. 數據庫關閉后,物理上的文件還存在,但實例(分配的內存和建立的進程)就沒有了

 3 Oracle 實例與數據庫的關系

  實例就是一組操作系統進程(或者是一個多線程的進程)以及一些內存。這些進程可以操作數據庫;而數據庫只是一個文件集合(包括數據文件、臨時文件、重做日志文件和控制文件)。
  在任何時刻,一個實例只能有一組相關的文件(與一個數據庫關聯)。大多數情況下,反過來也成立:一個數據庫上只有一個實例對其進行操作。

   4 Oracle 版本說明

  Oracle 8i
  Oracle 9i
  Oracle 10g
  Oracle 11g
  Oracle 12c
  I:i 代表 Internet。8i 版本開啟對 Internet 的支持。所以,在版本號之后,添加了標識 i。
  G:g 代表 Grid 網格。10g 加入了網格計算的功能,因此版本號之后的標識使用了字母g。
  C:c 代表雲(cloud)計算設計。12c 版本表示對雲計算的支持。

三、 Oracle 的安裝與卸載

 1 Oracle 安裝步驟

  

  

   

  

  

  

  

  

 

 2 Oracle 卸載步驟

  2.1停止使用 Oracle 的服務  

  停用 oracle 服務,進入計算機管理,在服務中,找到 oracle 開頭的所有服務,右擊選擇停止。
  2.2運行卸載 Oracle 數據庫程序
  在開始菜單中找到 Oracle 安裝產品,點擊運行 Oracle 自帶的卸載程序 Universal Installer工具卸載。
  2.3刪除使用 Oracle 的服務
  開始菜單中,找到 Universal Installer,運行 Oracle Universal Installer,單擊卸載產品,在產品清單窗口中,單擊全部展開,除了 OraDb11g_home1 外,勾選其他項目,單擊刪除,根據軟件提示單擊下一步最終完成卸載。
  2.4刪除注冊表中 Oracle 相關項

  在 命 令 窗 口 , 輸 入 regedit , 打 開 注 冊 表 , 依 次 展 開HKEY_LOCAL_MACHINE\SOFTWARE,找到 oracle,刪除之。
  依次展開 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 中,刪除所有oracle 開頭的項。
  依 次 展 開HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application,刪除所有 oracle 開頭的項。
  擴展刪除(以下不是必須的注冊表刪除項),如果安裝不成功可以自己也把這些刪除了
  在 HKEY_CLASSES_ROOT,刪除以 Ora、Oracle、Orcl 或 EnumOra 為前綴的鍵刪除
  HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder\Start Menu\Programs 中所有以 oracle 開頭的鍵。
  刪 除 HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI 中 除 MicrosoftODBC for Oracle 注冊表鍵以外的所有含有 Oracle 的鍵。

  2.5刪除 Oracle 環境變量
  右鍵點擊我的電腦-->屬性-->高級-->環境變量,刪除環境變量 ORACLE_HOME、TNS_ADMIN 等環境變量,刪除 PATH 中等環境變量有關 Oracle 的設定的路徑信息。
  
  2.6刪除“開始”菜單中 Oracle 目錄
  打開資源管理器,在地址欄中輸入“%userprofile%\「開始」菜單\程序”回車,刪除安
  裝的 Oracle 目錄。然后再到地址欄中輸入“%allusersprofile%\「開始」菜單\程序”回車,
  刪除安裝的 Oracle 目錄。
  2.7重新啟動計算機
  重啟電腦。
  2.8刪除 Program Files\Oracle 目錄
  如果在 Program Files\Oracle 目錄存在,則刪除 Program Files\Oracle 目錄。
  2.9刪除 Oracle 安裝目錄
  刪除 Oracle 的安裝目錄 app 等目錄。

四、 Oracle 目錄結構與系統用戶

   1 Oracle 目錄結構

  

 

1.1admin 目錄
記錄 Oracle 實例的配置,運行日志等文件。每個實例一個目錄。
SID:System IDentifier 的縮寫,是 Oracle 實例的唯一標記。在 Oracle 中一個實例只能
操作一個數據庫。如果安裝多個庫那么就會有多個實例,我們可以通過實例 SID 來區分。
由於 Oracle 中一個實例只能操作一個數據庫的原因 oracle 中也會使用 SID 來作為庫的名稱。
1.2cfgtoollogs 目錄
下面子目錄分別存放當運行 dbca,emca,netca 等圖形化配置程序時的 log。
1.3checkpoints 目錄
存放檢查點文件
1.4diag 目錄
Oracle11g 新添加的一個重組目錄。其中的子目錄,基本上 Oracle 每個組件都有了自己
單獨的目錄,在 Oracle10g 中我們一直詬病的 log 文件散放在四處的問題終於得到解決,無
論是 asm 還是 crs 還是 rdbms,所有組件需要被用來診斷的 log 文件都存放在了這個新的目
錄下。
1.5flash_recovery_area(閃回區)目錄
閃回區:分配一個特定的目錄位置來存放一些特定的恢復文件,用於集中和簡化管理數
據庫恢復工作。閃回區可存儲完全的數據文件備份、增量備份、數據文件副本、當前的控制
文件、備份的控制文件、spfile 文件、快照控制文件、聯機日志文件、歸檔日志、塊跟蹤文
件、閃回日志。
1.6oradata 目錄
存放數據文件。
1.6.1orcl 數據庫文件

  

 


1.6.2數據庫中的文件介紹
1.6.2.1 CONTROL01.CTL
Oracle 數據庫的控制文件。
1.6.2.2 EXAMPLE01.DBF
Oracle 數據庫表空間文件。
1.6.2.3 REDO01.LOG
Oracle 數據庫的重做日志文件。
1.6.2.4 SYSAUX01.DBF
11g 新增加的表空間。主要存儲除數據字典以外的其他數據對象。由系統內部自動維護。
1.6.2.5 SYSTEM01.DBF
用於存放 Oracle 系統內部表和數據字典的數據。比如,表名、列名、用戶名等。
1.6.2.6 TEMP01.DBF
臨時表空間文件。
1.6.2.7 UNDOTBS01.DBF
撤銷表空間文件。用來保存回滾數據。
1.6.2.8 USERS01.DBF
用戶表空間。
1.7product 目錄
Oracle RDBMS 的軟件存放目錄。RDBMS 即關系數據庫管理系統(Relational Database
Management System)。


   2 Oracle 系統用戶

2.1sys 用戶
sys:sys 是 Oracle 中的超級賬戶,擁有的權限最大。可以完成數據庫的所有管理任務。
2.2system 用戶
system:沒有 sys 權限大,通常用來創建一些用戶查看管理信息的表或視圖。不建議使
用 system 用戶來創建一些與管理無關的表或者視圖。
2.3二者在登錄時的區別
sys 和 system 在登錄 Oracle 時,sys 只能以系統管理員(sysdba)或系統操作員(sysoper)
的權限登錄,而 system 可以直接登錄(normal)。
2.4scott 用戶
scott:是 oracle 提供的示例用戶,提供了一些學習 oracle 操作的數據表。如:emp、dept、
salgrade、bonus 表


五、 Oracle 的啟動與關閉

   1 Oracle 啟動

Oracle 是通過系統的服務來啟動的。
1.1OracleServiceORCL(必須啟動)
OracleServiceORCL:數據庫服務(數據庫實例),是 Oracle 核心服務該服務是數據庫啟動
的基礎,只有該服務啟動,Oracle 數據庫才能正常啟動。
1.2OracleOraDb11g_home1TNSListener(必須啟動)
OracleOraDb11g_home1TNSListener:監聽器服務,服務只有在數據庫需要遠程訪問的時候
或者使用 PL/SQL Developer 等第三方工具時才需要。
1.3Oracle ORCL VSS Writer Service(非必須啟動)
Oracle ORCL VSS Writer Service:Oracle 卷映射拷貝寫入服務,VSS(Volume Shadow Copy
Service)能夠讓存儲基礎設備(比如磁盤,陣列等)創建高保真的時間點映像,即映射拷貝
(shadow copy)。它可以在多卷或者單個卷上創建映射拷貝,同時不會影響到系統的系統能。
1.4OracleDBConsoleorcl(非必須啟動)
OracleDBConsoleorcl:Oracle 數據庫控制台服務,orcl 是 Oracle 的實例標識,默認的實
例為 orcl。在運行 Enterprise Manager(企業管理器 OEM)的時候,需要啟動這個服務。
1.5OracleJobSchedulerORCL(非必須啟動)
OracleJobSchedulerORCL:Oracle 作業調度(定時器)服務,ORCL 是 Oracle 實例標識。
1.6OracleMTSRecoveryService(非必須啟動)
OracleMTSRecoveryService:服務端控制。該服務允許數據庫充當一個微軟事務服務器

MTS、COM/COM+對象和分布式環境下的事務的資源管理器。

   2 Oracle 關閉

關閉 Oracle 只需要將服務停止即可。

六、 Oracle 客戶端工具介紹

   1 Oracle 自帶客戶端工具 SQL Plus

  

  

  sys 用戶登錄命令: sys as sysdba|sysoper
  system 用戶登錄命令:system

   2 Oracle 第三方工具 PL/SQL Developer

  2.1安裝 PL/SQL Developer

  

  

  

  

  

  

  2.2Command Window

  

  2.3Sql Window

  

七、 Oracle 的使用

   1 Oracle 的表空間

  1.1Oracle 的表空間分類
  1.1.1永久表空間
  表空間是數據庫的邏輯划分,一個表空間只能屬於一個數據庫。所有的數據庫對象都存
放在指定的表空間中。但主要存放的是表,所以稱作表空間。
  1.1.2臨時表空間
Oracle 臨時表空間主要用來做查詢和存放一些緩沖區數據。臨時表空間消耗的主要原因
是需要對查詢的中間結果進行排序。重啟數據庫可以釋放臨時表空間。
  1.2創建永久表空間命令
create tablespace 永 久 表 空 間 名 稱 datafile ' 永 久 表 空 間 物 理 文 件 位 置 ' size 15M
autoextend on next 10M permanent online;

   2 創建用戶

2.1通過 PL/SQL Developer 工具創建用戶

   3 分配用戶權限

  

 

3.1對象權限(Object privileges)
對象權限是指在指定的表,視圖,序列上制定執行動作的權限或權利。
3.2角色權限(Role privileges)
角色是可以授予用戶的相關權限的組,該方法使權限的授予,撤回更加容易管理。
3.3系統權限(System privileges)
為用戶分配創建表、創建用戶、創建視圖、創建存儲過程等權限。

   4 分配鏈接權限

  

 

為當前用戶分配一個 connect 鏈接角色

   5 分配系統權限

  

  

  

  

 

八、 Oracle 的鏈接配置

   1 文件位置

  Oracle 目錄\product\11.2.0\dbhome_1\NETWORK\ADMIN

   2 sqlnet.ora

名稱解析。通過這個文件來決定怎么樣找一個連接中出現的連接字符串。
如:sqlplus bjsxt/oracle@orcl
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

   3 tnsnames.ora

用在 oracle client 端,用戶配置連接數據庫的別名參數,就像系統中的 hosts 文件一樣。

3.1ORCL

客戶端連接服務器端使用的服務別名。注意一定要頂行書寫,否則會無法識別服務別名。
3.2PROTOCOL
客戶端與服務器端通訊的協議,一般為 TCP,該內容一般不用改。
3.3HOST
ORACLE 服務器端 IP 地址或者 hostname。確保服務器端的監聽啟動正常。
3.4PORT
數據庫偵聽正在偵聽的端口,此處 port 的值一定要與數據庫偵聽正在偵聽的端口一樣。

   4 listener.ora

用在 oracle server 端,可配置 Oracle 的監聽端口
4.1LISTENER
監聽名稱,可以配置多個監聽,多個監聽的端口號要區分開來。
4.2PROTOCOL
監聽協議,一般都使用 TCP 。
4.3HOST
本機 IP 地址或者 localhostname。
4.4PORT
監聽的端口號。

九、 Net Configuration Assistant 工具

  

 

   1 配置監聽程序

  

  

  

  

  

  

  

  

 

   2 Oracle 本地網絡服務配置

2.1配置本地網絡服務要求:
  1,防火牆需要關閉
  2,相互是可 ping 通的
2.2配置方式

  

  

  

  

  

  

  

  

  

  

 

十、 Oracle 基本操作

 1 Oracle 中的數據類型

1.1字符類型
字符串數據類型還可以依據存儲空間分為固定長度類型(CHAR) 和可變長度類型
(VARCHAR2/NVARCHAR2)兩種。
1.1.1CHAR 類型
CHAR 類型,定長字符串,會用空格填充來達到其最大長度。非 NULL 的 CHAR(12)
總是包含 12 字節信息。CHAR 字段最多可以存儲 2,000 字節的信息。如果創建表時,不指
定 CHAR 長度,則默認為 1。
1.1.2VARCHAR2 類型
變長字符串,與 CHAR 類型不同,它不會使用空格填充至最大長度。VARCHAR2 最多
可以存儲 4,000 字節的信息。
1.1.3NVARCHAR2 類型
這是一個包含 UNICODE 格式數據的變長字符串。 NVARCHAR2 最多可以存儲 4,000
字節的信息。
1.2數字類型
1.2.1NUMBER 類型
NUMBER(P,S)是最常見的數字類型。
P 是 Precision 的英文縮寫,即精度縮寫,表示有效數字的位數,最多不能超過 38 個有
效數字。
S 是 Scale 的英文縮寫,表示小數點數字的位數。
1.2.2INTEGER 類型
INTEGER 是 NUMBER 的子類型,它等同於 NUMBER(38,0),用來存儲整數。若插
入、更新的數值有小數,則會被四舍五入。
1.3浮點數
1.3.1BINARY_FLOAT 類型
BINARY_FLOAT 是 32 位、 單精度浮點數字數據類型。可以支持至少 6 位精度,每個
BINARY_FLOAT 的值需要 5 個字節,包括長度字節。
1.3.2BINARY_DOUBLE
BINARY_DOUBLE 是為 64 位,雙精度浮點數字數據類型。每個 BINARY_DOUBLE
的值需要 9 個字節,包括長度字節。
1.4日期類型
1.4.1DATE 類型
DATE 是最常用的數據類型,日期數據類型存儲日期和時間信息。雖然可以用字符或數
字類型表示日期和時間信息,但是日期數據類型具有特殊關聯的屬性。為每個日期值,Oracle
存儲以下信息: 世紀、 年、 月、 日期、 小時、 分鍾和秒。一般占用 7 個字節的存儲空
間。
1.4.2TIMESTAMP 類型
這是一個 7 字節或 12 字節的定寬日期/時間數據類型。它與 DATE 數據類型不同,因為
TIMESTAMP 可以包含小數秒,帶小數秒的 TIMESTAMP 在小數點右邊最多可以保留 9 位。
1.4.3TIMESTAMP WITH TIME ZONE 類型
這是 TIMESTAMP 類型的變種,它包含了時區偏移量的值。
1.4.4TIMESTAMP WITH LOCAL TIME ZONE 類型
將時間數據以數據庫時區進行規范化后進行存儲
1.5LOB 類型
1.5.1CLOB 類型(Character Large Object)
二進制數據,存儲單字節和多字節字符數據。最大長度 4G。
1.5.2BLOB 類型(Binary Large Object)
它存儲非結構化的二進制數據大對象,它可以被認為是沒有字符集語義的比特流,一般
是圖像、聲音、視頻等文件。最大長度 4G。
1.5.3NCLOB 數據類型
存儲 UNICODE 類型的數據 ,最大長度 4G。
1.6LONG & RAW & LONG RAW 類型
1.6.1LONG 類型
它存儲變長字符串(超長字符串),最多達 2G 的字符數據(2GB 是指 2 千兆字節, 而不
是 2 千兆字符)。
1.6.2LONG RAW 類型
能存儲 2GB 的原始二進制數據,可存放多媒體圖象聲音等。
1.6.3RAW 類型
用於存儲二進制或字符類型數據,必須制定長度。這種數據類型存儲的數據不會發生字
符集轉換。可存放多媒體圖象聲音等。

   2 在 Oracle 中創建表

2.1Oracle 表名命名規則
必須以字母開頭
長度不能超過 30 個字符
避免使用 Oracle 的關鍵字
只能使用 A-Z、a-z、0-9、_#$
2.2使用帶有特殊符號的表名
Oracle 在創建表時,表名會自動轉換大寫。Oracle 對表名大小寫不敏感。
如果在定義表名時含有特殊符號,或者用小寫字母來定義表名則需要在表名兩側添加雙
引號。

   3 數據庫中的約束

3.1約束的作用
約束用於規定表中的數據規則,如果存在違反約束的數據行為,行為會被約束終止。
3.2約束類型
3.2.1主鍵約束(Primay Key Constraint)
唯一性,非空性。
3.2.2唯一約束 (Unique Constraint)
唯一性,可以空,但只能有一個。
3.2.3檢查約束 (Check Constraint)
對該列數據的范圍、格式的限制(如:年齡、性別等)。
3.2.4非空約束 (Not Null Constraint)
該列不允許包含空值。
3.2.5外鍵約束 (Foreign Key Constraint)
需要建立兩表間的關系並引用主表的列。

   4 數據庫中表關系

設計關系數據庫的一個重要部分是將數據元素划分為相關的表,我們可以根據數據本身
的關聯性,將不同表之間的數據聚合在一起。注意:無論在表與表之間建立了什么樣的關系,
決定數據之間是否有關系的不是表,而是數據本身。
表與表之間一般存在三種關系,即一對一,一對多,多對多關系。
4.1一對多

  

 


一對多關系是建立在兩張表之間的關系。一個表中的一條數據可以對應另一個表中的多
條數據。記住:外鍵永遠在多方。外鍵允許重復,允許含有空值。
4.1.1T_CLASSROOM 表

  

  

  

 


4.1.2T_STUDENT 表
4.2一對一
一對一關系是建立在一對多的基礎之上,外鍵可以在任何一方,需要讓外鍵一方具備唯
一約束
4.2.1T_USER 表
4.2.2T_ROLE 表
4.3多對多
需要建立一個中間表,中間表里建立兩個列,然后需要用這兩個列作為這個表的聯合主
鍵,然后每個列在作為外鍵參照各自的表的主鍵
4.3.1T_ORDER 表
4.3.2T_ITEM 表
4.3.3T_ORDER_ITEM 表


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM