5-1 啟動 SQL*Plus 5-2 SQL 和 SQL*Plus 指令   
5-3 資料庫管理系統的演進 5-4 利用 SQL*Plus 產生報表   
   
 




1.DESCRIBE (可以簡寫成 DESC)

使用 DESCRIBE 指令查看基本資料表的結構:

查詢表格 EMP 的表格結構。

2.命令列的編輯指令

編輯與修改方式

(1)直接下指令時,可利用 SQL*Plus 指令修改。(後面章節中介紹)

(2)利用純文字編輯工具,例如:在記事本中編輯好並存檔案,並且在    SQL*Plus 中利用“@目錄\檔案名”方式執行之。(這是屬於批次方   法執行)

(3)直接在 SQL*Plus 中直接鍵入指令,若有錯誤或需要修改時,可直接  鍵入“edit”或“ed”即可進入 ORACLE 內定的文字編輯工具 (在   WINDOW98 中為記事本),修改並存檔後再利用“/”或“RUN”重新  執行即可。

  我們可以使用 SQL*Plus 的一些編輯指令編輯 SQL 緩衝區(SQL buffer) 的指令,表中列出了具有編輯功能的 SQL*Plus 指令。


顯示 SQL 緩衝區的指令

  使用 LIST 指令 (簡寫為 L) 用來顯示目前 SQL 緩衝區(SQL Buffer) 的內容。如果 LIST 指令後面不接任何參數,將顯示 SQL 緩衝區中的所有列;如果 LIST 後面帶一個參數 (如 LIST n),則顯示第 n 列的內容;如果 LIST 後面帶有兩個參數(LIST mn),那將顯示多列,即顯示從第 m 列到 n 列之間的內容。

修改 SQL 指令

  使用 CHANGE 指令 (簡寫為 C) 用來從目前列中刪除一部分內容,或者用新的內容取代原先的內容。在使用 CHANGE 指令之前,必須先用 LIST n指令選擇目前列。

增加新列

  使用 INPUT 指令 (簡寫為 I) 可以在 SQL 緩衝區增加一個或多個新列如果只輸入 INPUT,則在目前列之後輸入多個新列;如果輸入 INPUT text,則在目前列之後插入由text字串組成的新列。

例如,輸入 INPUT 指令:


   這時在 INPUT 指令之後出現一個列號,這個列號表示所要插入的列,此時可輸入一個或多個新列。輸入一列內容後按鍵,SQL*Plus 會出 現一個新列號,若不想再輸入時,直接再按即可結束輸入,如下所示:

利用 LIST 來顯示剛剛輸入的列

   此外可用 RUN 指令或“/”重新執行來檢驗最終的查詢結果。

在一列後添加內容

 使用 APPEND 指令 (簡寫為 A) 可以在 SQL 緩衝區中的目前列末尾添加內容。首先用 LIST 命令將需要添加的列設為目前列,然後使用 APPEND text指令在目前列末尾添加內容。例如,欲在第四例末尾添加 DESC 選項,可先利用指令 LIST 4 將第四列設為目前列:

然後輸入下列指令添加 DESC:

刪除SQL緩衝區中的列

  使用 DEL 命令可以刪除 SQL 緩衝區中的目前列,在目前列以下各列的列號循序減 1,如果把第一列設成目前列,連續多次輸入 DEL 後,可以刪除 SQL 緩衝區中的所有列。此外,刪除 SQL 緩衝區中所有列,也可以使用 CLEAR BUFFER 指令,它的作用是將 SQL 緩衝區清空。

3.EDIT指令

  EDIT 指令用於呼叫作業系統中擔任的文書編輯器。編輯 SQL 緩衝區裡的內容或作業系統下的文字檔,並將要編輯的檔名傳送給該編輯器。如果檔案副檔名 (如:.txt) 被省略,則系統自動添加 .SQL 的副檔名。如果檔名和副檔名均省略,則編輯器會將 SQL*Plus 產生的檔名傳給它,並將目前緩衝區的內容放入文書編輯器中。如果目前緩衝區為空,且 EDIT 被呼叫時沒有給予檔名,則 EDIT 指令失效:
  

  可以使用 DEFINE 指令設定系統變數 EDITOR 來改變文書編輯器的類型,一般在 LOGIN.SQL 檔案中完成它的設定,當 SQL*Plus 被呼叫時,讀取這些資訊。例如,在 UNIX 平臺上,定義 vi 作為 SQL*Plus 呼叫的外部編輯器:

  

4.SAVE指令

  如果要把 SQL 指令儲存到磁碟上,使用者可以透過 SAVE 指令將內容寫到一個檔案上:


  檔名的副檔名預設為 .SQL。這時使用者需要儲存的內容已經存入了 EMPINFO.SQL 檔案中,可以對檔案進行編輯、執行。如果想將修改過的內容儲存到原有的命令檔中,則在 SAVE 指令後增加 REPLACE 選項:

5.GET 指令

  GET 指令把磁碟上的指令檔案內容載入目前緩衝區中,並顯示在螢幕上,格式是:

利用 GET 指令載入 EMPINFO.SQL 到目前緩衝區中。


6.執行指令檔

START 指令將指令檔案載入 SQL 緩衝區中,並執行檔案內容:

利用 START 指令載入 EMPINFO.SQL 到目前緩衝區並且執行。

也可以使用“@”指令執行檔案:

利用 @ 指令載入 EMPINFO.SQL 到目前緩衝區並且執行。

7.環境設定指令

  SQL*Plus 的環境參數,一般而言是由系統自動設定,使用者可以根據需要將環境參數設定成自己所需的值,SET 指令和 SHOW 指令主要就是完成這項功能。SET 指令將 SQL*Plus 的環境參數設定為開關狀態或者某個特定的值。使用 SHOW 指令將顯示這些參數的值。

(1) SET 指令

設定參數-SET

SET <選項> <值或開關狀態>

使用 SET 指令可以改變 SQL*Plus 環境參數的值。

    其中:<選項> 是指環境參數的名稱,<值或開關狀態> 指該參數被設定成 ON 還是 OFF,或是某個特定的值。

設定列寬為 120

下面列出幾個常用的環境參數設定:

SET AUTOCOMMIT{OFF | ON | IMMEDIATE}

 
    OFF:關閉自動確認功能。(預設值)
   
ON 或 IMMEDIATE:立即打開自動確認功能。

SET ECHO {OFF | ON}

 ON :SQL*Plus 執行命令檔時,將命令本身顯示在螢幕上 OFF:執行命令檔時,指令本身不顯示在螢幕上。(預設值)

SET FEEDBACK {OFF |ON}

 ON:查詢結束時,給予查詢結果的記錄數值資訊。(預設值)
 OFF:查詢結束時,不給查詢結果的記錄資訊。

SET HEADING {OFF | ON }

 ON:各欄位的標題 (包括文字和底線) 在結果報表上顯示。   (預設值)
 
OFF:各欄位標題不在報表上顯示。

SET LINESIZE {80 | n}

該項設定 SQL*Plus 的列寬,即一列所能顯示的最大字元數。該參數的預設值為 80 個字元,最大值為 999。ORACLE8 以上的版本預設值為 100。

SET PAGESIZE {14 | n }

該參數設定每頁輸出的列數,包括 TTITLE (頂部標題),BTITLE (底部標題)、COLUMN (欄位標題) 和空列。該項預設值每頁 14 列,ORACLE8 以上的版本預設值為 24。

SET PAUSE { OFF | ON | text}

ON:在顯示輸出每一頁後,等待使用者按鍵繼續顯示。

OFF:表示每頁顯示之間不停頓。(預設值)

text:在顯示每一頁後停頓,等待使用者按鍵,並在螢幕下方顯示 text 的提示資訊。

SET BUFFER {buffer}

設定 {buffer} 為目前的命令緩衝區。通常情況下,SQL 緩衝區為目前預設的指令緩衝區。

設定其他指令緩衝區。

由於 SQL 緩衝區只能存放一個 SQL 指令,所以可以用 SET BUFFER 指令設定其他指令緩衝區,來存放多個 SQL*Plus 指令。

  使用者可以使用 SQL*Plus 的列編輯指令如 LIST、DEL、APPEND 和 CHANGE 等指令對該緩衝區中的所有列操作,也可以用 SAVE 指令將該緩衝區中的內容儲存到一個檔案中,並可以用 GET 指令將檔案中的內容放回到緩衝區。但該指令緩衝區不能直接執行 SQL 或 SQL*Plus 指令,必須透過 SAVE 指令將其中的內容儲存到檔案中,再利用 START 命令來完成。不論是來自於指令列還是指令檔,只要執行過一個 SQL 指令,指令緩衝區就被自動地設回為原來的系統 SQL 緩衝區。SET 指令對環境參數的改變,只在本次啟動期間內有效,即一旦退出 SQL*Plus,再進入時,你所設定的參數值會全部恢復成系統的預設值。如果需要經常設定某些參數,可以在該使用者的目前目錄下建立名為 LOGIN.SQL 的檔案,並將參數設定指令寫入其中。也就是使用者可以透過 LOGIN.SQL 檔案來設定自己的 SQL*Plus 環境。

(2) SHOW 指令
顯示環境參數-SHOW

SHOW {ALL | <選項>}

SHOW 指令可以顯示 SQL*Plus 的一個或全部參數值。

顯示所有環境參數。

該指令顯示 SQL*Plus 全部環境參數的值。

顯示目前委付確認(Commit) 狀態的設定情況。

此外,還可以用 SHOW 指令顯示目前 SQL*Plus 狀態下的一些資訊。

顯示目前使用者識別字,即目前使用者名。

顯示目前報表使用的頂部標題內容。