數(shù)據(jù)庫-Oracle

什么是數(shù)據(jù)庫

DB數(shù)據(jù)庫(Database):用于存儲(chǔ)和管理的數(shù)據(jù)倉庫;

DBMS數(shù)據(jù)庫管理系統(tǒng)(Database Management System):用于科學(xué)的組織和存儲(chǔ)數(shù)據(jù),高效便捷的管理和維護(hù)數(shù)據(jù);

DBAS 數(shù)據(jù)庫應(yīng)用系統(tǒng)(Database Application System)面向最終用戶的應(yīng)用程序;

DBA 數(shù)據(jù)庫管理員(Database Administrator): DBMS的使用者;

DBS數(shù)據(jù)庫系統(tǒng):DB+DBMS+DBAS+DBA+最終用戶構(gòu)成DBS



數(shù)據(jù)的類型分類

關(guān)系型數(shù)據(jù)庫

Oracle、Mysql、PostgreSQL、DB2、Microsoft SQL Server、Microsoft Access

特點(diǎn)與優(yōu)、缺:

? ?特: 關(guān)系型數(shù)據(jù)庫最典型的數(shù)據(jù)結(jié)構(gòu)是表,由二維表及其之間的聯(lián)系所組成的一個(gè)數(shù)據(jù)組織,支持事務(wù)一致特性(多人共享,資源同步)

? ? 優(yōu):表結(jié)構(gòu)易于維護(hù),使用方便(SQL語言)且支持復(fù)雜操作

? ? 缺:讀寫性能差,存儲(chǔ)方式不靈活,固定的表結(jié)構(gòu)

非關(guān)系型數(shù)據(jù)庫、常見

Redis、Mongodb、Big Table

? ? 特點(diǎn)與優(yōu)、缺:

? ? 特:非關(guān)系型數(shù)據(jù)庫嚴(yán)格說不是一種數(shù)據(jù)庫,而是一種數(shù)據(jù)結(jié)構(gòu)化存儲(chǔ)方法的集合,可以是文檔或鍵值對等,不支持事務(wù)一致性(系統(tǒng)程序,資源異步)

? ? 優(yōu):存儲(chǔ)格式靈活,高擴(kuò)展性,讀寫性能高(無需SQL層解析)

? ? 缺:不支持SQL,無事務(wù)處理能力,不支持復(fù)雜查詢



Oracle入門

Oracle數(shù)據(jù)的版本變更及其特點(diǎn)

Oracle 8i、Oracle 9i、Oracle 10g、Oracle 11g、Oracle 12c

I:i代表Internet,8i版本開啟對Internet的支持,所以,在版本號之后,添加了標(biāo)識i

G:g代表Grid網(wǎng)絡(luò),10g加入了網(wǎng)格計(jì)算的功能,因此版本號之后的標(biāo)識使用了字母g

C:c代表云(cloud)計(jì)算設(shè)計(jì),12c版本表示對云計(jì)算的支持

?在所有的關(guān)系型數(shù)據(jù)庫中,存儲(chǔ)數(shù)據(jù)的集合就是磁盤中的文件。Oracle數(shù)據(jù)庫其實(shí)就是一組文件的集合。Oracle數(shù)據(jù)庫分別由三部分組成

1.數(shù)據(jù)文件(.DBF):數(shù)據(jù)文件是一個(gè)二進(jìn)制文件,用來保存數(shù)據(jù)(程序與數(shù)據(jù)庫)Oralce創(chuàng)建表空間的同時(shí)會(huì)自動(dòng)創(chuàng)建數(shù)據(jù)文件

2.控制文件(.CTL):控制文件也是二進(jìn)制文件,記錄數(shù)據(jù)庫的參數(shù)(名稱、數(shù)據(jù)文件存放位置等)一個(gè)控制文件只能屬于一個(gè)數(shù)據(jù)庫

3. 日志文件(.LOG):日志文件在 Oracle 數(shù)據(jù)庫中分為重做日志(Redo Log File)文件和歸檔日志文件兩種。重 做日志文件是 Oracle 數(shù)據(jù)庫正常運(yùn)行不可缺少的文件。重做日志文件主要記錄了數(shù)據(jù)庫操 作過程。用于備份和還原數(shù)據(jù)庫,以達(dá)到數(shù)據(jù)庫的最新狀態(tài)。



Oracle結(jié)構(gòu)及常用操作

Oracle目錄結(jié)構(gòu)和系統(tǒng)用戶:

Oracle 系統(tǒng)用戶

sys 用戶

sys:sys 是 Oracle 中的超級賬戶,擁有的權(quán)限最大??梢酝瓿蓴?shù)據(jù)庫的所有管理任務(wù)。

system 用戶

system:沒有 sys 權(quán)限大,通常用來創(chuàng)建一些用戶查看管理信息的表或視圖。不建議使

用 system 用戶來創(chuàng)建一些與管理無關(guān)的表或者視圖。

二者在登錄時(shí)的區(qū)別

sys 和 system 在登錄 Oracle 時(shí),sys 只能以系統(tǒng)管理員(sysdba)或系統(tǒng)操作員(sysoper)

的權(quán)限登錄,而 system 可以直接登錄(normal)。

scott 用戶

scott:是 oracle 提供的示例用戶,提供了一些學(xué)習(xí) oracle 操作的數(shù)據(jù)表。如:emp、dept、

salgrade、bonus 表

Oracle常見的目錄:

????1.ORACLE_BASE:oracle的根目錄/類似java/src

????2.ORACLE_HOME:oracle安裝目錄/類似Java-home

????3.admin目錄:主要存儲(chǔ)oracle后臺(tái)進(jìn)程產(chǎn)生的相關(guān)文件及數(shù)據(jù)庫管理文件

?????4.oradata目錄:該目錄可用于存儲(chǔ)與恢復(fù)有關(guān)的文件,如控制文件、聯(lián)機(jī)重做日志副本、歸檔日志、閃回日志以及Oracle數(shù)據(jù)庫恢復(fù)管理器(RMAN)備份等

Oracle 的啟動(dòng)與關(guān)閉

Oracle 啟動(dòng)

Oracle 是通過系統(tǒng)的服務(wù)來啟動(dòng)的。

OracleServiceORCL(必須啟動(dòng))

OracleServiceORCL:數(shù)據(jù)庫服務(wù)(數(shù)據(jù)庫實(shí)例),是 Oracle 核心服務(wù)該服務(wù)是數(shù)據(jù)庫啟動(dòng)的基礎(chǔ),只有該服務(wù)啟動(dòng),Oracle 數(shù)據(jù)庫才能正常啟動(dòng)。

OracleOraDb11g_home1TNSListener(必須啟動(dòng))

OracleOraDb11g_home1TNSListener:監(jiān)聽器服務(wù),服務(wù)只有在數(shù)據(jù)庫需要遠(yuǎn)程訪問的時(shí)候或者使用 PL/SQL Developer 等第三方工具時(shí)才需要。

Oracle ORCL VSS Writer Service(非必須啟動(dòng))

Oracle ORCL VSS Writer Service:Oracle 卷映射拷貝寫入服務(wù),VSS(Volume Shadow CopyService)能夠讓存儲(chǔ)基礎(chǔ)設(shè)備(比如磁盤,陣列等)創(chuàng)建高保真的時(shí)間點(diǎn)映像,即映射拷貝(shadow copy)。它可以在多卷或者單個(gè)卷上創(chuàng)建映射拷貝,同時(shí)不會(huì)影響到系統(tǒng)的系統(tǒng)能。

OracleDBConsoleorcl(非必須啟動(dòng))

OracleDBConsoleorcl:Oracle 數(shù)據(jù)庫控制臺(tái)服務(wù),orcl 是 Oracle 的實(shí)例標(biāo)識,默認(rèn)的實(shí)例為 orcl。在運(yùn)行 Enterprise Manager(企業(yè)管理器 OEM)的時(shí)候,需要啟動(dòng)這個(gè)服務(wù)。

OracleJobSchedulerORCL(非必須啟動(dòng))

OracleJobSchedulerORCL:Oracle 作業(yè)調(diào)度(定時(shí)器)服務(wù),ORCL 是 Oracle 實(shí)例標(biāo)識。

OracleMTSRecoveryService(非必須啟動(dòng))

OracleMTSRecoveryService:服務(wù)端控制。該服務(wù)允許數(shù)據(jù)庫充當(dāng)一個(gè)微軟事務(wù)服務(wù)器MTS、COM/COM+對象和分布式環(huán)境下的事務(wù)的資源管理器。

Oracle 關(guān)閉

關(guān)閉 Oracle 只需要將服務(wù)停止即可。

Oracle 的常用客戶端:

1.自帶的SQL Plus(小黑框)

使用SQL Plus連接Oracle:

????Win+R,打開運(yùn)行,輸入sqlplus進(jìn)入小黑框,

????輸入system回車,然后輸入密碼回車,OK


2.PLSQL Developer(可視化窗口)


常用的命令:

????進(jìn)入SQL:輸入用戶名(自己創(chuàng)建的用戶或系統(tǒng)默認(rèn))回車輸入密碼(自己設(shè)置或默認(rèn))

????創(chuàng)建用戶:create user bjsxt(用戶名) identified bybjsxt(密碼);

? ? 刪除用戶:drop user (要?jiǎng)h除的用戶名) cascade;

????給用戶授權(quán):

????grant connect(角色名稱/權(quán)限),resource(角色名稱/權(quán)限) to bjsxt(用戶名稱);

????撤銷用戶權(quán)限:

????revoke resource(角色或權(quán)限) from bjsxt(用戶名稱);

????開啟數(shù)據(jù)庫:startup

????關(guān)閉數(shù)據(jù)庫:shutdown immediate;

????查看用戶列表:

????1.首先進(jìn)入SQL

????2.查看所有用戶:select username from dba_users;或者select * from all_users;


數(shù)據(jù)庫中的表關(guān)系

表關(guān)系的概念:

? ? 設(shè)計(jì)關(guān)系數(shù)據(jù)庫的一個(gè)重要部分是將數(shù)據(jù)元素劃分為相關(guān)的表,我們可以根據(jù)數(shù)據(jù)本身的關(guān)聯(lián)性,將不同表之間的數(shù)據(jù)聚合在一起.

? ? 但,無論在表與表之間建立了什么樣的關(guān)系,決定數(shù)據(jù)指點(diǎn)是否有關(guān)系的不是表,而是數(shù)據(jù)本身

表與表之間一般存在三種關(guān)系:

1.一對多關(guān)系,即一個(gè)表中的一條數(shù)據(jù)可以對應(yīng)另一個(gè)表中的多條數(shù)據(jù)

? ? ? ? 注意:一對多是為了處理數(shù)據(jù)的冗余,外鍵永遠(yuǎn)在多方,再引用關(guān)聯(lián)到一方的主鍵。

2.一對一關(guān)系:特殊的一對多關(guān)系,外鍵可以在任意一方,只需要把外鍵加上唯一約束

?3.多對多關(guān)系:可以看成兩個(gè)一對多關(guān)系的組合,所以就需要一個(gè)中間表,來建立兩個(gè)列作為這兩個(gè)多方的聯(lián)合主鍵,然后每個(gè)列再作為外鍵參照各多方的主鍵

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容