1. 程式人生 > >Oracle 的 Sql*Plus 常用命令介紹

Oracle 的 Sql*Plus 常用命令介紹

 

估計用 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

    (該路徑可能隨機器的安裝路徑不同而不同)

image

2. 登陸 Oracle 命令

    使用 connect 使用者名稱/密碼 ,或者是直接執行 connect (connect 命令是可以縮寫為 conn 的),

    如果是直接使用 connect 命令的話,則會在後續的執行中提示輸入使用者名稱和密碼,

    直接執行 connect 命令呢,有一大好處,就是您輸入的密碼會自動隱藏,不讓使用者看見,

    比如下面的例子中口令行就被隱藏了

image

3. “ /“命令

    這裡需要提及一個東西,就是當執行 Sql*Plus 時, Oracle 會在在緩衝區中保留最後的執行命令,

    而針對這個緩衝區中的儲存的命令,可以使用符號 “/”來快速訪問,

    即可以使用 “/”命令來再次執行您最後執行的命令

image   

4. Sql*Plus 行編輯之 List 命令

    這裡呢,也還是需要提一下,就是 Sql*Plus 呢提供了一個行編輯的功能,   

    這個功能呢主要是針對快速修改 Sql 緩衝區中的 Sql 語句,並且再次用來執行。

    需要注意的是,由於緩衝區中只儲存了您執行的最後一條 Sql 語句,

    而行編輯就是針對這一條語句來說的,因為這一條 Sql 語句可能有 n 行,

    List 命令呢,總共有三種形式,及 List --列出緩衝區中所有的行,

    List n --列出緩衝區中的第 n 行,List * --列出當前行,

    然後呢,您需要注意的是哪一行才是當前行,當前行呢,在使用 List 列出後,

    會在其前面有一個 * 標誌,當前行會隨著您的選擇而變化。

    下面的例子中 Sql 語句總共有三行,您可以注意 * 的變化

image

5. Sql*Plus 行編輯之 Del 命令

    這個 Del 命令呢,就是用來刪除緩衝區中儲存的 Sql 語句的指定的行的。

    形式呢,也可想而知,有三種,

    即 Del --刪除所有行,Del n --刪除指定行,Del * --刪除當前行

image

6. Sql*Plus 行編輯之 Input 命令

    前面呢,介紹了行編輯的檢視和刪除,那麼這裡就要介紹如何往緩衝區中的行裡頭新增新的行,

    這裡就是使用 Input 命令來實現的,詳細的請看下面的演示過程

image

7. Sql*Plus 行編輯之 Change 命令

    這個 Change 命令的作用就是將 Sql 緩衝區中的某行進行修改

image

8. 清空 Sql 緩衝區命令

    Clear Buffer,作用的話自然是將 Sql 緩衝區中的所有行進行刪除,即清除緩衝區

image

9. 定義 Sql 編輯器命令

    define_editor

    各位呢,估計也是體會到了在 Sql*Plus 這個黑框框中輸入 Sql 語句時的麻煩,

    但是呢,下面介紹的是您自己可以自定義一個編輯器來編輯 Sql 語句,

    下面的例子是先定義您的編輯器,我定義的是記事本程式(您也可以定義成其他的編輯器),

    然後我在緩衝區中留下一條 Sql 語句(就是執行一條 Sql 語句而已),

    再呼叫 ed(edit 的縮寫),這樣就可以調出一個記事本的視窗,並且,

    會自動將 Sql 緩衝區中的內容寫入到這個記事本編輯器中,

    您呢,可以通過在記事本中編輯您的 Sql 語句,這些內容會自動儲存到緩衝區中,

    然後再在 Sql*Plus 中執行 “/”來呼叫 Sql 緩衝區中的內容(即在記事本中定義的內容),

    其妙用呢,還請看下面的演示

image

然後我再在上面的記事本中將 Sql 語句修改為 select max(empno) from emp;

然後儲存記事本中的內容,重新呼叫 “/”,

image

image

10. Save 命令

    Save 命令呢,是將 Sql 緩衝區中的內容來儲存到指定路徑的檔案中(預設是 . sql 的字尾名)。

    如果這個檔案已經存在的話,將會寫入失敗,當然,如果您想覆蓋掉這個檔案的話,

    您可以在後面加 Replace 命令,比如 save d:\test replace

image

image

image

11. 使用註釋命令

    在 Sql*Plus 中,您可以使用三種方法實現註釋,

    一是使用 Remark 命令來實現單行註釋,且是用於命令檔案中(即 . sql 中)

    二是使用 /*…….*/ 來實現多行註釋,

    三是使用 -- 來實現單行註釋

image

image

image

image

12. Run 命令

    首先是 run(縮寫是 r) 命令,這條命令的作用是列出當前緩衝區中的 Sql 語句,

    同時執行這條語句,其可以和“/”來對比,“/”這個命令呢,只是執行緩衝區中的語句,

    而並不會顯示出緩衝區中的 Sql 語句

image

13. @ 命令

    這個命令呢,是用來執行指定路徑的檔案中定義的 Sql (當然也包括PL/SQL)語句的。

    這個命令既可以在會話層使用,也可以在命令層使用,何為會話層呢,

    就是當用戶登入了 Oracle 時,就會自動建立一個會話,在這個層面上就是會話層,

    而何為命令層呢,自然就是沒有使用者登入的情況下,而只是使用 SqlPlus 命令連線到了 Oracle ,

image

14. Start 命令

    這個命令呢,和 “@”命令功能很類似,但是呢,這個命令卻並沒有 “@”命令那麼強大,

    其只能執行在會話層,而不能工作在命令層。

image

15. Get 命令

    Get 命令呢就是將指定路徑下的 .sql 檔案中的內容讀取出來,但是並不執行這些內容。

image

在 Sql*Plus 中呢,其實還有很多的命令,諸如格式化列啊,

設定每一頁顯示的記錄條數啊,設定每一行的寬度啊,

設定指定名稱列的寬度啊,

這些呢,我就只稍微寫點範例了,因為這些都太常見,幾乎每次都要使用,

估計大家也都很熟悉了,所以便不作介紹了

col ename for a50

set pagesize 100

set linesize 200