關(guān)于Oracle數(shù)據(jù)庫
????????Oracle數(shù)據(jù)庫將相關(guān)信息分組到稱為模式的邏輯結(jié)構(gòu)中。邏輯結(jié)構(gòu)稱為模式對象。通過提供用戶名和密碼連接到數(shù)據(jù)庫時,可以指定架構(gòu)并指示您是其所有者。在Oracle數(shù)據(jù)庫中,用戶連接到的架構(gòu)的用戶名和名稱是相同的。
? ? 關(guān)于架構(gòu)對象
????Oracle數(shù)據(jù)庫中的每個對象只屬于一個架構(gòu),并且該架構(gòu)具有唯一的名稱。
? ? 架構(gòu)可以包含的一些對象包括:
? ? · Tables(表)---表是Oracle數(shù)據(jù)庫中數(shù)據(jù)存儲的基本單元。表保存所有用戶可訪問的數(shù)據(jù)。每個表都包含表示單個數(shù)據(jù)記錄的行。行由表示記錄字段的列組成。
? ? · Indexes(索引)---?索引是可選對象,可以提高從表中檢索數(shù)據(jù)的性能。索引是在表的一列或多列上創(chuàng)建的,并在數(shù)據(jù)庫中自動維護。
? ? · Views(視圖)---?您可以創(chuàng)建一個視圖,該視圖將來自多個不同表的信息合并到一個演示文稿中。視圖可以依賴于來自表和其他視圖的信息。
? ? ·?Sequences(序列)---?當表的所有記錄必須是不同的時侯,可以使用序列為數(shù)字列生成一個唯一整數(shù)的序列列表,每個數(shù)字列表示一條記錄的ID。
? ? ·?Synonyms(同義詞)---?同義詞是模式對象的別名。為了安全和方便,可以使用同義詞;例如,隱藏對象的所有權(quán)或簡化SQL語句。
? ? ·?Stored subprograms(存儲子程序)---?存儲子程序(也稱為模式級子程序)是存儲在數(shù)據(jù)庫中的過程和函數(shù)??梢詮脑L問數(shù)據(jù)庫的客戶端應用程序調(diào)用它們。
? ??觸發(fā)器是存儲的子程序,當特定表或視圖中發(fā)生指定事件時,數(shù)據(jù)庫會自動運行這些子程序。觸發(fā)器可以限制對特定數(shù)據(jù)的訪問并執(zhí)行日志記錄。
? ? · Packages(包)---?包是一組相關(guān)的子程序,以及它們使用的顯式游標和變量,作為一個單元存儲在數(shù)據(jù)庫中,以便繼續(xù)使用。與存儲的子程序一樣,可以從訪問數(shù)據(jù)庫的客戶端應用程序調(diào)用包子程序。
? ??通常,應用程序使用的對象屬于同一架構(gòu)。
關(guān)于Oracle數(shù)據(jù)庫訪問
????只能通過客戶端程序(如SQL*Plus或SQL Developer)訪問Oracle數(shù)據(jù)庫。客戶機程序與Oracle數(shù)據(jù)庫的接口是結(jié)構(gòu)化查詢語言(SQL)。Oracle為SQL提供了一個擴展名為Procedural Language/SQL(PL/SQL)。
????關(guān)于SQL*Plus
? ??????SQL*Plus(發(fā)音為sequel Plus)是一個交互式的批量查詢工具,在每次安裝Oracle數(shù)據(jù)庫時都會安裝它。它有一個命令行用戶界面,在連接到數(shù)據(jù)庫時充當客戶端。
? ??????SQL*Plus有自己的命令和環(huán)境。在SQL*Plus環(huán)境中,可以輸入并運行SQL*Plus命令、SQL語句、PL/SQL語句和操作系統(tǒng)命令來執(zhí)行以下任務:
? ? ? ? --- 格式化、計算、存儲和打印查詢結(jié)果
? ? ? ? --- 檢查表和對象定義
? ? ? ? --- 開發(fā)和運行批處理腳本
? ? ? ? --- 執(zhí)行數(shù)據(jù)庫管理
? ??您可以使用SQL*Plus以交互方式生成報告,以批處理方式生成報告,并將結(jié)果輸出到文本文件、屏幕或HTML文件,以便在Internet上瀏覽。可以使用HTML輸出工具動態(tài)生成報告。
? ??關(guān)于SQL Develoer
? ??????SQL Developer(發(fā)音為sequel Developer)是SQL*Plus的圖形版本,用Java編寫,可在默認的Oracle數(shù)據(jù)庫安裝中免費下載。
? ??????SQL Developer用戶界面包括一個連接框架、工具(帶菜單)和一個工作表。在工作表中,您可以輸入和運行SQL語句、PL/SQL語句和SQL*Plus命令。您可以執(zhí)行一些任務,例如,在工作表中或使用“連接”框架和工具創(chuàng)建表。
? ? 關(guān)于Structured Query Language (SQL)
? ??????結(jié)構(gòu)化查詢語言(Structured Query Language,SQL)是一種基于集合的高級計算機語言,所有程序和用戶都可以使用它訪問Oracle數(shù)據(jù)庫中的數(shù)據(jù)。
????????SQL是一種聲明性的或非過程性的語言;也就是說,它描述了該做什么,而不是如何做。指定所需的結(jié)果集(例如,當前員工的姓名),但不指定如何獲取結(jié)果集。
? ? 關(guān)于Procedural Language/SQL (PL/SQL)
? ??????Procedural Language/SQL (PL/SQL)(發(fā)音為P L sequel)是對SQL的本地Oracle數(shù)據(jù)庫擴展。它通過添加過程元素(如條件控件和循環(huán))來彌合聲明性和命令性程序控件之間的差距。
? ??????在PL/SQL中,可以聲明常量和變量、過程和函數(shù)、這些類型的類型和變量以及觸發(fā)器。您可以處理異常(運行時錯誤)。您可以創(chuàng)建存儲在數(shù)據(jù)庫中供使用任何Oracle數(shù)據(jù)庫編程接口的應用程序重用的PL/SQL單元過程、函數(shù)、包、類型和觸發(fā)器。
? ??????PL/SQL源程序的基本單元是塊,它將相關(guān)的聲明和語句分組。塊具有可選的聲明性部分、必需的可執(zhí)行部分和可選的異常處理部分。
具體可查看官方文檔:https://docs.oracle.com/cd/E11882_01/appdev.112/e10766/tdddg_intro.htm#TDDDG12000