估計用 Oracle 的幾乎一開始都是使用 Sql*Plus 吧,
畢竟這個工具可以運行在任何的 Oracle 啟動並執行平台上,
這個工具呢,您可以在用戶端實現安裝,也可以在服務端安裝,
在用戶端的安裝呢,主要是通過安裝 Oracle 提供的用戶端軟體安裝,
而在服務端的話,則是通過安裝 Oracle 時自動安裝的,
Sql*Plus 呢,其是一個基於 C/S 的 Sql 開發工具,包括客戶層和服務層,
其可以實現執行 Sql 語句或者是執行含有 Sql 語句的檔案,
同時,其也能夠執行 PL/Sql 語句,所以說是非常的方便啊,
這一篇博文呢,我將會介紹一些關於 Sql*Plus 常用的命令,
注意是常用的命令,而非那些並不是很常用的又比較鑽牛角尖的命令!!!
其中有一些命令也還是很實用的!!!
1. 串連 Oracle 命令
您可以在 DOS 視窗下運行 SqlPlus 命令或者是 SqlPlus/nolog 等等諸如的命令,
但是需要明白的是,這裡呢,您要想直接在 DOS 下運行上面的命令,還必須設定好環境變數,
因為實質上,您啟動並執行這條命令所在路徑是
D:\app\XiaoZhen\product\11.1.0\db_1\BIN 下的 SqlPlus.exe
(該路徑可能隨機器的安裝路徑不同而不同)
2. 登陸 Oracle 命令
使用 connect 使用者名稱/密碼 ,或者是直接運行 connect (connect 命令是可以縮寫為 conn 的),
如果是直接使用 connect 命令的話,則會在後續的運行中提示輸入使用者名稱和密碼,
直接運行 connect 命令呢,有一大好處,就是您輸入的密碼會自動隱藏,不讓使用者看見,
比如下面的例子中口令行就被隱藏了
3. “ /“命令
這裡需要提及一個東西,就是當運行 Sql*Plus 時, Oracle 會在在緩衝區中保留最後的執行命令,
而針對這個緩衝區中的儲存的命令,可以使用符號 “/”來快速存取,
即可以使用 “/”命令來再次運行您最後執行的命令
4. Sql*Plus 行編輯之 List 命令
這裡呢,也還是需要提一下,就是 Sql*Plus 呢提供了一個行編輯的功能,
這個功能呢主要是針對快速修改 Sql 緩衝區中的 Sql 語句,並且再次用來執行。
需要注意的是,由於緩衝區中只儲存了您執行的最後一條 Sql 語句,
而行編輯就是針對這一條語句來說的,因為這一條 Sql 語句可能有 n 行,
List 命令呢,總共有三種形式,及 List --列出緩衝區中所有的行,
List n --列出緩衝區中的第 n 行,List * --列出當前行,
然後呢,您需要注意的是哪一行才是當前行,當前行呢,在使用 List 列出後,
會在其前面有一個 * 標誌,當前行會隨著您的選擇而變化。
下面的例子中 Sql 語句總共有三行,您可以注意 * 的變化
5. Sql*Plus 行編輯之 Del 命令
這個 Del 命令呢,就是用來刪除緩衝區中儲存的 Sql 語句的指定的行的。
形式呢,也可想而知,有三種,
即 Del --刪除所有行,Del n --刪除指定行,Del * --刪除當前行
6. Sql*Plus 行編輯之 Input 命令
前面呢,介紹了行編輯的查看和刪除,那麼這裡就要介紹如何往緩衝區中的行裡頭添加新的行,
這裡就是使用 Input 命令來實現的,詳細的請看下面的示範過程
7. Sql*Plus 行編輯之 Change 命令
這個 Change 命令的作用就是將 Sql 緩衝區中的某行進行修改
8. 清空 Sql 緩衝區命令
Clear Buffer,作用的話自然是將 Sql 緩衝區中的所有行進行刪除,即清除緩衝區
9. 定義 Sql 編輯器命令
define_editor
各位呢,估計也是體會到了在 Sql*Plus 這個黑框框中輸入 Sql 語句時的麻煩,
但是呢,下面介紹的是您自己可以自訂一個編輯器來編輯 Sql 語句,
下面的例子是先定義您的編輯器,我定義的是記事本程式(您也可以定義成其他的編輯器),
然後我在緩衝區中留下一條 Sql 語句(就是執行一條 Sql 語句而已),
再調用 ed(edit 的縮寫),這樣就可以調出一個記事本的視窗,並且,
會自動將 Sql 緩衝區中的內容寫入到這個記事本編輯器中,
您呢,可以通過在記事本中編輯您的 Sql 語句,這些內容會自動儲存到緩衝區中,
然後再在 Sql*Plus 中運行 “/”來調用 Sql 緩衝區中的內容(即在記事本中定義的內容),
其妙用呢,還請看下面的示範
然後我再在上面的記事本中將 Sql 語句修改為 select max(empno) from emp;
然後儲存記事本中的內容,重新調用 “/”,
10. Save 命令
Save 命令呢,是將 Sql 緩衝區中的內容來儲存到指定路徑的檔案中(預設是 . sql 的尾碼名)。
如果這個檔案已經存在的話,將會寫入失敗,當然,如果您想覆蓋掉這個檔案的話,
您可以在後面加 Replace 命令,比如 save d:\test replace
11. 使用注釋命令
在 Sql*Plus 中,您可以使用三種方法實現注釋,
一是使用 Remark 命令來實現單行注釋,且是用於命令檔案中(即 . sql 中)
二是使用 /*…….*/ 來實現多行注釋,
三是使用 -- 來實現單行注釋
12. Run 命令
首先是 run(縮寫是 r) 命令,這條命令的作用是列出當前緩衝區中的 Sql 語句,
同時執行這條語句,其可以和“/”來對比,“/”這個命令呢,只是執行緩衝區中的語句,
而並不會顯示出緩衝區中的 Sql 語句
13. @ 命令
這個命令呢,是用來運行指定路徑的檔案中定義的 Sql (當然也包括PL/SQL)語句的。
這個命令既可以在會話層使用,也可以在命令層使用,何為會話層呢,
就是當使用者登入了 Oracle 時,就會自動建立一個會話,在這個層面上就是會話層,
而何為命令層呢,自然就是沒有使用者登入的情況下,而只是使用 SqlPlus 命令串連到了 Oracle ,
14. Start 命令
這個命令呢,和 “@”命令功能很類似,但是呢,這個命令卻並沒有 “@”命令那麼強大,
其只能運行在會話層,而不能工作在命令層。
15. Get 命令
Get 命令呢就是將指定路徑下的 .sql 檔案中的內容讀取出來,但是並不執行這些內容。
在 Sql*Plus 中呢,其實還有很多的命令,諸如格式化列啊,
設定每一頁顯示的記錄條數啊,設定每一行的寬度啊,
設定指定名稱列的寬度啊,
這些呢,我就只稍微寫點範例了,因為這些都太常見,幾乎每次都要使用,
估計大家也都很熟悉了,所以便不作介紹了
col ename for a50
set pagesize 100
set linesize 200