oracle再回首

 

第一章 Oracle 數據庫的使用
 

1、 數據庫相關概念

 
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 支持,學習和使用成本較高;
不支持事務:無事務處理能力;
不支持複雜查詢:數據結構相對複雜,複雜查詢方面稍欠;
 

2、 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 版本表示對雲計算的支持。
 

3、 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\St
art Menu\Programs 中全部以 oracle 開頭的鍵。
刪 除 HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI 中 除 Microsoft
ODBC 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 等目錄。
 

4、 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 表
 
 

5、 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 只須要將服務中止便可。
 
 

6、 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 
 

 

 

7、 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;
 

create tablespace wq datafile 'D:\oracle11g\oradata\orcl\WQ.DBF ' size 15M autoextend on next 10M permanent online;

sql

 
2 建立用戶
 
2.1經過 PL/SQL Developer 工具建立用戶
 

 

 

 

 

 

 

3 分配用戶權限 
 

 

 

3.1對象權限(Object privileges)
對象權限是指在指定的表,視圖,序列上制定執行動做的權限或權利。
3.2角色權限(Role privileges)
角色是能夠授予用戶的相關權限的組,該方法使權限的授予,撤回更加容易管理。
3.3系統權限(System privileges)
爲用戶分配建立表、建立用戶、建立視圖、建立存儲過程等權限。
4 分配連接權限
爲當前用戶分配一個 connect 連接角色
 

 

 

5 分配系統權限
 

 

 

 

 

 

 

 

 

8、 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
監聽的端口號。
 
 
 
9、 Net Configuration Assistant 工具
 

 

 

1 配置監聽程序

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10、 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-九、_#$
 
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.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 表
 
相關文章
相關標籤/搜索