1、 " Oracle 資料庫管理工具概述 " 2、 " SQL Plus 實用命令參考 " 2.1、 "連接/斷開命令" 2.2、 "執行 SQL 語句" 2.3、 "執行 PL/SQL 語句" 2.4、 "文件操作命令" 2.5、 "修改用戶密碼" 2.6、 "執行存儲過程" 2.7、 "其它命 ...
1、Oracle 資料庫管理工具概述
顧名思義,資料庫管理工具就是用來管理資料庫的,一般分為命令行工具和圖形化工具兩類。平常大家說的資料庫管理工具一般是指圖形化工具。常見的每種資料庫都有很多管理工具,還有支持多種資料庫管理的工具,可謂是五花八門。一般資料庫廠商都會提供針對自家資料庫的管理工具,譬如微軟的 SQL Server Management Studio(SSMS),甲骨文的 SQL Developer、SQL*Plus(由於*不易寫,下文將統一省略為 SQL Plus)、Enterprise Manager(EM) 等。
如果你用 SQL Server,那麼 SSMS 將是你唯一明智的選擇,因為 SSMS 是一個包羅萬象的集成環境,幾乎你需要的所有功能都能從中找到,而且它界面較為美觀、操作也比較方便和流暢,第三方工具實在難以望其項背。但如果你用 Oracle,你會發現 SQL Plus 和 EM 根本用不順手,可能 DBA 更喜歡這兩個工具,而 SQL Developer 明顯比較卡頓。所以程式員一般都不用 Oracle 官方的工具,反倒是用 PL/SQL Developer、Toad for Oracle 等三方工具的比較多。
我發現身邊的同事基本上都是用 PL/SQL Developer,只有極少數在用 Toad for Oracle 或 SQL Developer;而且有經驗的程式員一般都用過 SQL Plus,但普遍都是通過 cmd 來調用,說實話 SQL Plus 里有些命令的確很好用。下麵將簡述幾個常見工具以供大家參考:
Oracle SQL Plus:是與 Oracle 進行交互的客戶端工具,可以運行 SQL Plus 命令和 SQL 語句。手冊:SQL*Plus® User's Guide and Reference
Oracle SQL Developer:是一個免費的集成開發環境,為了方便 Oracle 資料庫的開發和管理。主頁:http://www.oracle.com/technetwork/cn/developer-tools/sql-developer/overview/index.html
PL/SQL Developer:是一個商業集成開發環境,專門用於開發 Oracle 資料庫的存儲程式單元,在易用性等方面做的比較好,也是目前市場上最流行的 PL/SQL 程式開發工具。主頁:https://www.allroundautomations.com/plsqldev.html
Toad for Oracle:是一個功能強大、結構緊湊的專業化 PL/SQL 開發環境。社區:Toad for Oracle Community
Navicat for Oracle:號稱以簡化的工作環境,提高 Oracle 開發人員和管理員的效率及生產力。主頁:https://www.navicat.com.cn/products/navicat-for-oracle
2、SQL Plus 實用命令參考
SQL Plus 支持的命令非常多,絕大部分我也沒用過,但有些好用的命令偶爾也會用用。本節將按功能介紹一些我個人覺得還比較實用的命令。在具體介紹之前,我先做兩點說明,第一,SQL Plus 總是會通過一個右尖括弧“>”來提示輸入下一行;第二,很多命令都有簡寫形式,本文會同時給出兩種形式,為減少累贅敘述和增強排版美觀,書寫格式統一定為:完全命令/簡寫命令
。
2.1、連接/斷開命令
連接命令:打開 cmd 輸入sqlplus
並按下回車(即打開 SQL Plus),結果如圖:
根據提示輸入用戶名並按下Enter
,會進一步提示輸入口令,然後輸入密碼並按下Enter
,即可連上 Oracle,結果如圖:
這裡有個需要註意的小細節就是密碼不會回顯,所以你得確保一次性輸對,過程中不能按其它鍵,儘管按什麼都看不見。
如果你內心是拒絕看不到輸入的,那麼還可以更簡單一些,只要在提示輸入用戶名的時候一次性把用戶名和密碼都輸入,然後回車也能連上 Oracle。具體寫法有 4 種,語法示例:
username/password
username/password@tnsname
username/password@//host:port/sid
/ as sysdba
其中,第 1 種寫法通過本地連接,不需要資料庫伺服器啟動監聽,只要資料庫伺服器處於可用狀態即可。第 2 種寫法通過網路連接,需要資料庫伺服器啟動監聽。第 3 種寫法與第 2 種寫法功能類似,而且不用配置監聽名。第 4 種寫法通過操作系統認證,不需要資料庫伺服器啟動監聽,也不需要資料庫伺服器處於可用狀態。
其實還有更簡單的方式,一步就能連上 Oracle——打開 cmd 之後一次性輸入sqlplus
和上文 4 種用戶名密碼寫法中的任何一種即可。示例如圖(寫法 1):
斷開命令:連上資料庫之後,如果想要回到 cmd,可以用exit
或quit
,這兩個命令的功能相同,都是終止 SQL Plus 並返回到操作系統。示例如圖:
假如要向資料庫提交修改並斷開連接,但不想退出 SQL Plus,可以用disconnect/disc
,示例如圖:
斷開連接後如果想再連上資料庫就得用connect/conn
了,該命令之後可以跟上文 4 種用戶名密碼寫法中的前 3 種。示例如圖(寫法 1):
2.2、執行 SQL 語句
可以在 SQL Plus 中執行任何 SQL 語句。有個/
命令專門用於執行 SQL 語句或 PL/SQL 語句塊,寫完整個語句後回車,然後在下一行輸入一個/
再回車,即可執行上面的語句。示例如圖:
我本人不太喜歡/
命令,因為它的用法讓我感覺到不適,尤其是得按多次回車,比較繁瑣。後來我發現只要在 SQL 語句末尾加上;
並回車也能執行,除有些多行 PL/SQL 語句塊必須用/
才能執行以外,其它情況都可以用;
替代/
。所以我平常是能用;
就用;
,實在不行再用/
。示例如圖:
可以通過在行的尾部輸入一個連字元-
並回車把較長的 SQL 語句分成多行輸入,為了排版也可以在連字元的前面輸入空格,甚至可以省略連字元。示例如圖:
2.3、執行 PL/SQL 語句
也可以在 SQL Plus 中執行 PL/SQL 命令或塊。譬如你可以通過show
命令來查看當前登錄用戶的用戶名,示例如圖:
show
用於顯示 SQL Plus 系統變數或 SQL Plus 環境的值。與之相對的set
用於設置系統變數的值以改變當前會話的 SQL Plus 環境。如果查詢結果集的列數或行數較多的話,SQL Plus 的顯示結果可能會很亂,這時候就可以通過set
來改變linesize
或pagesize
的值,從而使得顯示結果更為美觀。示例如圖:
另外,show
命令還有幾個與linesize
用法完全相同的參數,如release/rel
用於顯示版本,sga
用於顯示 SGA,all
用於顯示所有系統參數的當前值,具體寫法可參考上例。set
命令有一對類似開關的參數分別是time on
和time off
,前者用於在視窗每一行前顯示當前系統時間部分,而後者則用於關閉時間顯示,也就是預設的效果,有興趣的讀者可自行試試set time on
的效果。
有個非常好用的命令describe/desc
,官方釋義為:列出指定的表、視圖或同義詞的列定義,或者列出指定函數或過程的規範。示例如圖:
2.4、文件操作命令
有時候好不容易寫了一條比較長的語句,而且往後可能還會用到,這就需要保存下來備用了,或者你想執行某個腳本文件中的腳本,又或者你只是想看看某個腳本文件,甚至你還想直接打開腳本文件編輯它……很顯然,如果沒有相關命令的支持,在 cmd 視窗里是很不方便完成這類文件操作的,好在 SQL Plus 已經提供了相關命令。命令說明如下:
save
:把緩衝區中的內容保存到一個操作系統文件中(我試過尾碼用 sql 或 txt 都行)。start\@
:執行指定腳本中的 SQL Plus 語句。可調用本地文件系統或 Web 伺服器中的腳本。@@
:執行腳本。這個命令與@
命令類似。所不同的是在執行嵌套的腳本時,它會在與調用它的腳本相同的路徑中查找要執行的腳本。簡單的說就是它可以在一個腳本中調用另一個腳本。get
:把操作系統文件中的內容讀取到緩衝區中。edit
:調用操作系統的一個文本編輯器來編輯指定文件或緩衝區中的內容。spool\spo
:把查詢結果保存到操作系統文件中,也可以發送到印表機。
前 5 個命令用法是一樣的,只需要在命令後面跟腳本文件全路徑回車即可。也可以只寫文件名,即預設腳本文件在當前用戶目錄中(格式:“C:\Users\用戶名\腳本文件名”,我只在 Windows 7 中測試過)。這 5 個命令相對來說比較簡單,結果也顯而易見,就不再提供示例了。
spo
命令相對複雜,我感覺它就相當於一個文件操作開關,它可以把打開後到關閉前所有查詢語句及查詢結果都保存到指定的文件中。示例如圖:
結果如圖:
2.5、修改用戶密碼
password\passw
:修改指定用戶的密碼,省略參數預設修改當前用戶的密碼。註意密碼不在輸入設備上回顯。示例如圖:
2.6、執行存儲過程
execute\exec
:執行 PL/SQL 語句。尤其是執行帶存儲過程的語句,比普通的 PL/SQL 語法要簡潔很多,尤其是執行不帶參數的存儲過程,直接在exec
後跟存儲過程名字並回車即可。variable\var
:聲明可在 PL/SQL 中引用的綁定變數。print
:顯示綁定變數的當前值。
普通 PL/SQL 語法調用帶輸出參數的存儲過程,示例如圖:
利用exec
調用帶輸出參數的存儲過程,示例如圖:
2.7、其它命令
help
:訪問 SQL Plus 幫助系統。這應該是非常有用的一個命令,可以在這個命令之後跟其它命令來查看其它命令的幫助說明。host
:在不退出 SQL Plus 的情況下執行操作系統命令。譬如正在用 SQL Plus 的時候,急需看一下本機能不能訪問百度,示例如圖:
startup
:啟動 Oracle 實例,並可裝載和打開資料庫。shutdown
:關閉正在運行的 Oracle 實例。
3、總結
本文主要對常見 Oracle 資料庫管理工具做了個概括,並著重對 SQL Plus 中的實用命令做了個總結。可能大多數開發人員都覺得 SQL Plus 使用不方便,但我個人覺得某些特殊時候用一下 SQL Plus 反而能更方便快捷的解決問題。譬如你突然忘記了某個急需登錄的用戶的密碼,比起先打開其它資料庫管理工具,然後以管理員身份登錄,進而找到對應用戶,最後再來更改密碼而言,顯然是通過 SQL Plus 操作更為簡單快速,示例如圖:
本文鏈接:http://www.cnblogs.com/hanzongze/p/Oracle-SQLPlus.html
版權聲明:本文為博客園博主 韓宗澤 原創,作者保留署名權!歡迎通過轉載、演繹或其它傳播方式來使用本文,但必須在明顯位置給出作者署名和本文鏈接!本人初寫博客,水平有限,若有不當之處,敬請批評指正,謝謝!