一、數據庫的概念
1.什么是數據庫?
所謂的數據庫其實就是數據的集合。用戶可以對集合中的數據進行新增、查詢、更新、 刪除等操作。數據庫是以一定方式儲存在一起、能與多個用戶共享、具有盡可能小的冗余度、 與應用程序彼此獨立的數據集合。
2.數據庫的類型:
(1)關系型:Oracle;Mysql;PostgreSQL;DB2;Microsoft SQLServer;MicrosoftAccess。
(2)非關系型:Redis;Mongodb;BigTable。
(3)二者區別:
1)關系型特點:
關系型數據庫最典型的數據結構是表,由二維表及其之間的聯系所組成的一個數據組 織。支持事務一致特性。
優點:易于維護;使用方便;復雜操作。
缺點:性能差;存儲方式不靈活。
2)非關系特點:
非關系型數據庫嚴格上不是一種數據庫,應該是一種數據結構化存儲方法的集合,可以 是文檔或者鍵值對等。不支持事務一致特性。
優點:格式靈活;高擴展性;速度快。
缺點:不支持SQL;不支持事務;不支持復雜查詢。
3.Oracle入門
(1)Oracle數據庫:
所有的關系型數據庫存儲數據的集合就是磁盤中的文件。Oracle 數據庫其實就是一組文 件的集合。Oracle 數據庫分別由:數據文件、控制文件、日志文件所構成。
(2)數據文件(.DBF)
數據文件是一個二進制文件,是用于保存用戶應用程序數據和 Oracle 系統內部數據的 文件,這些文件在操作系統中就是普通的操作系統文件。Oracle 在創建表空間的同時會創建 數據文件。
(3)控制文件(.CTL)
控制文件是一個二進制文件,它主要記錄數據庫的名稱、數據庫的數據文件存放位置等 信息。一個控制文件只能屬于一個數據庫。如果控制文件丟失,這數據庫就無法操作。
(4)日志文件(.LOG)
日志文件在 Oracle 數據庫中分為重做日志(RedoLogFile)文件和歸檔日志文件兩種。重 做日志文件是 Oracle 數據庫正常運行不可缺少的文件。重做日志文件主要記錄了數據庫操 作過程。用于備份和還原數據庫,以達到數據庫的最新狀態。
(5)Oracle版本
Oracle 8i;Oracle 9i;Oracle10g;Oracle 11g;12c;
1)I代表Internet,8i版本開啟對Internet的支持。
2)G代表Grid網格。10g加入了網絡計算機的功能。
3)C代表cloud計算設計,12c版本表示對云計算的支持。
二、Oracle安裝和卸載
1.安裝
(1)按照默認點擊下一步
(2)下面的頁面選擇標準版;管理口令自定義不能忘。
2.卸載
(1)停止使用Oracle的服務;
(2)點擊運行 Oracle 自帶的卸載程序 UniversalInstaller 工具卸載;
(3)刪除相關文件;
(4)清理注冊表與Oracle相關的信息;
三、Oracle的使用
1.Oracle目錄結構和系統用戶
(1)Oracle目錄結構
1)admin目錄:
? ? 記錄 Oracle 實例的配置,運行日志等文件。每個實例一個目錄。?
SID:System IDentifier 的縮寫,是 Oracle 實例的唯一標記。在 Oracle 中一個實例只能 操作一個數據庫。如果安裝多個庫那么就會有多個實例,我們可以通過實例 SID 來區分。 由于Oracle中一個實例只能操作一個數據庫的原因oracle中也會使用SID來作為庫的名稱。
2)cfgtoollogs目錄:
下面子目錄分別存放當運行 dbca,emca,netca 等圖形化配置程序時的 log。
3)oradata 目錄:
CONTROL01.CTL :Oracle 數據庫的控制文件;
EXAMPLE01.DBF :Oracle 數據庫表空間文件。
REDO01.LOG:Oracle 數據庫的重做日志文件。
SYSAUX01.DBF:11g 新增加的表空間。主要存儲除數據字典以外的其他數據對象。由系統內部自動維護。
SYSTEM01.DBF:用于存放 Oracle 系統內部表和數據字典的數據。比如,表名、列名、用戶名等。
TEMP01.DBF:臨時表空間文件。
UNDOTBS01.DBF:撤銷表空間文件。用來保存回滾數據。
USERS01.DBF:用戶表空間;
2.Oracle系統用戶:
1)sys用戶:sys 是 Oracle 中的超級賬戶,擁有的權限最大。可以完成數據庫的所有管理任務。
2)System用戶:沒有 sys 權限大,通常用來創建一些用戶查看管理信息的表或視圖。不建議使 用 system 用戶來創建一些與管理無關的表或者視圖。
3)Scott用戶:是 oracle 提供的示例用戶,提供了一些學習 oracle 操作的數據表。如: emp、dept、 salgrade、bonus 表
3.Oracle的啟動:
(1)OracleServiceORCL(必須啟動)
OracleServiceORCL:數據庫服務(數據庫實例),是 Oracle 核心服務該服務是數據庫啟動
的基礎,只有該服務啟動,Oracle 數據庫才能正常啟動。
(2)OracleOraDb11g_home1TNSListener(必須啟動)
OracleOraDb11g_home1TNSListener:監聽器服務,服務只有在數據庫需要遠程訪問的時候 或者使用 PL/SQL Developer 等第三方工具時才需要。
3.Oracle的客戶端工具:
(1)Oracle 自帶客戶端工具 SQLPlus
(2) Oracle 第三方工具 PL/SQL Developer
1)安裝?PL/SQL Developer點擊下一步;直到完成。
四、Oracle創建表
1.Oracle的表空間:
(1)永久表空間:
表空間是數據庫的邏輯劃分,一個表空間只能屬于一個數據庫。所有的數據庫對象都存 放在指定的表空間中。但主要存放的是表,所以稱作表空間。
(2)臨時表空間:
Oracle 臨時表空間主要用來做查詢和存放一些緩沖區數據。臨時表空間消耗的主要原因 是需要對查詢的中間結果進行排序。重啟數據庫可以釋放臨時表空間。
(3)創建永久表空間的命令:
create tablespace 永久表空間名稱 datafile '永久表空間物理文件位置' size 15M autoextendonnext10Mpermanentonline;
2.創建用戶:
(1)通過PL/SQL Developer 工具創建用戶
(2)分配用戶權限:
1)對象權限(Objectprivileges)
對象權限是指在指定的表,視圖,序列上制定執行動作的權限或權利。
2)角色權限(Roleprivileges)
角色是可以授予用戶的相關權限的組,該方法使權限的授予,撤回更加容易管理。
3)系統權限(Systemprivileges)
為用戶分配創建表、創建用戶、創建視圖、創建存儲過程等權限。
4)分配鏈接權限
為當前用戶分配一個 connect 鏈接角色。
3.Oracle的數據類型:
(1)字符類型:
char類型:定長字符串,會用空格填充來達到其最大長度。
Varchar2類型:變長字符串,與 CHAR 類型不同,它不會使用空格填充至最大長度。
Nvarchar2類型:個包含 UNICODE 格式數據的變長字符串。
(2)數字類型:
Number類型:NUMBER(P,S)是最常見的數字類型;
Integer類型:INTEGER 是 NUMBER 的子類型,用來存儲整數。
(3)浮點型:
Binary_folat類型:BINARY_FLOAT 是 32 位、 單精度浮點數字數據類型,要 5 個字節。
Binary_double類型:BINARY_DOUBLE 是為 64 位,雙精度浮點數字數據類型,需要 9 個字節。
(4)日期類型:
Date類型:DATE 是最常用的數據類型,日期數據類型存儲日期和時間信息。
Timestamp類型:這是一個 7 字節或 12 字節的定寬日期/時間數據類型。
(5)lob類型:
Clob類型:二進制數據,存儲單字節和多字節字符數據。最大長度 4G。
Blob類型:它存儲非結構化的二進制數據大對象,它可以被認為是沒有字符集語義的比特流,一般是圖像、聲音、視頻等文件。最大長度 4G。
(6)long類型:存儲變長字符串(超長字符串),最多達 2G 的字符數據。
(7)longRaw類型; 能存儲 2GB 的原始二進制數據,可存放多媒體圖象聲音等。
4.Oracle表名名規則:
1)必須以字母開頭;
2)長度不能超過 30 個字符;
3)避免使用 Oracle 的關鍵字;
4)只能使用 A-Z、a-z、0-9、_#$;
5.數據庫中約束類型:
1)主鍵約束:唯一性,非空性;
2)唯一約束:唯一性,可以空,但只能有一個。
3)檢查約束:對該列數據的范圍、格式的限制(如:年齡、性別等)。
4)非空約束:該列不允許包含空值。
5)外鍵約束:需要建立兩表間的關系并引用主表的列。
6.數據庫中的表關系:
(1)一對多
一對多關系是建立在兩張表之間的關系。一個表中的一條數據可以對應另一個表中的多 條數據。記住:外鍵永遠在多方。外鍵允許重復,允許含有空值。
(2)一對一
一對一關系是建立在一對多的基礎之上,外鍵可以在任何一方,需要讓外鍵一方具備唯 一約束。
(3)多對多
需要建立一個中間表,中間表里建立兩個列,然后需要用這兩個列作為這個表的聯合主 鍵,然后每個列在作為外鍵參照各自的表的主鍵。