SQL * PLUS 概述與常用命令
簡介
SQL * PLUS 是使用者與oracle進行互動的客戶端工具。在SQL*PLUS 中,使用者可以執行輸入的SQL語句、PL/SQL 語句,以及各種sql *plus命令,還可以格式化SQL,PL/SQL語句的輸出結果等。
SQL*PLUS的命令型別:
- SQL : 是指DDL 、DML和DCL命令等
- PL/SQL : 通過命令編譯的各種過程、函式、觸發器和包等。
- SQL*PLUS 內部命令 :主要用於設定查詢時結果的格式化,儲存、編輯、檢視和執行SQL或PL/SQL 程式,一節設計一些環境變數等。
(1)啟動與退出:
啟動: ① 開始選單法:開始–>所有程式–>oracle-oraDb11g_home1 -->應用程式開發–>sqlplus輸入使用者名稱,密碼即可 ②命令啟動法:開始–>搜尋程式和檔案–>sqlplus -->找到sqlplus 輸入使用者名稱,密碼即可 退出:
(2)命令 *重點
describe命令 可縮寫為desc:
作用: 返回資料庫中所儲存物件的描述,如對於表、檢視來說desc命令可以列出其各個列的名稱以及各個列的屬性;此外還可以輸出過程、函式 程式包的規範。
desc scott.emp; -- 查詢表結構
desc dbms_output; --檢視系統dbms_output程式包的結構
prompt命令 : 作用: 用來向螢幕傳送訊息,在我們需要編寫程式與使用者進行互動時,此命令可以給使用者一定的提示。
SQL> prompt "請輸入您的姓名"; "請輸入您的姓名"
define命令和accept命令 : 作用:在sql語句中,需要定義變數時可以使用define和accept命令,變數定以後便可在程式中多次使用,使用undefine命令可以清除所定義的變數。 ①define 用於建立一個數據型別為char的使用者自定義變數
命令 | 說明 |
---|---|
define | 顯示所有使用者已定義的變數 |
define variable | 顯示指定變數的名稱,值和資料型別 |
define variable=value | 為使用者建立一個char型別的變數 ,並賦值 |
①define undefine
SQL> define DEFINE _DATE = "28-9月 -18" (CHAR) DEFINE _CONNECT_IDENTIFIER = "orcl" (CHAR) DEFINE _USER = "SCOTT" (CHAR) DEFINE _PRIVILEGE = "" (CHAR) DEFINE _SQLPLUS_RELEASE = "1102000100" (CHAR) DEFINE _EDITOR = "Notepad" (CHAR) DEFINE _O_VERSION = "Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options" (CHAR) DEFINE _O_RELEASE = "1102000100" (CHAR) SQL> define test =1122 SQL> define test DEFINE TEST = "1122" (CHAR) SQL> undefine test
②accept 可以定義一個變數,可可以制定一個使用者提示,用於提示使用者輸入指定的資料
accept varibale [datatype] [format format] [prompt text] [hide]
- vairbale 指定變數名,如果不存在則新建
- datatype 制定變臉的資料型別 char munber date 預設為char
- format 指定變數的格式
- prompt text 使用者輸入資料之前的提示性文字
- hide 用於隱藏使用者為變數輸入的值
SQL> accept temptno number prompt "請輸入僱員編號:" hide
請輸入僱員編號:
SQL> select empno ,ename from scott.emp where empno=&tempno;
替換變數: 作用:在oracle資料庫中,可以使用替換變數來臨時儲存有關資料,在執行sql語句時,如果某個變數前面有&符號,執行該sql語句時,系統會提示使用者為該變數提供一個具體的值,如:&、 && ①&替換變數 常用在 while、 order by 子句、列表達式、表名、整個select語句中來替換一些變數。
SQL> select ename ,sal ,job,hiredate from scott.emp where sal >&salnew;
輸入 salnew 的值: 4900
原值 1: select ename ,sal ,job,hiredate from scott.emp where sal >&salnew
新值 1: select ename ,sal ,job,hiredate from scott.emp where sal >4900
ENAME SAL JOB HIREDATE
-------------------- ---------- ------------------ --------------
KING 5000 PRESIDENT 17-11月-81
注意:如果替換變數是字元型資料,在輸入值時,必須使用單引號將字元型別資料引起來,對字元型別或日期型別資料,在使用中如果用引號引用起來,當輸入替換變數時就可以省略引號了。
SQL> select ename ,sal ,job,hiredate from scott.emp where ename =&salnew;
輸入 salnew 的值: 'BLAKE'
原值 1: select ename ,sal ,job,hiredate from scott.emp where ename =&salnew
新值 1: select ename ,sal ,job,hiredate from scott.emp where ename ='BLAKE'
ENAME SAL JOB HIREDATE
-------------------- ---------- ------------------ --------------
BLAKE 2850 MANAGER 01-5月 -81
②&&臨時替換變數 在select語句中,如果需要重新使用一個變數並且不希望重新提示輸入該值,那麼可以使用&&替換便令,為了避免為同一個變數提供兩個不同的值,且使得系統為同一個變數值提示一次資訊。
select empno, ename, &&columnname
from emp where sal>=3000 order by &&columnname;
show命令 show 命令用來顯示當前sqlplus環境中的系統變數、錯誤資訊、初始化引數、當前使用者資訊等。
命令 | 說明 |
---|---|
show all | 檢視所有系統變數的值 |
show errors | 檢視錯誤資訊 |
show parameters | 顯示初始化引數的值 |
show release | 檢視資料庫版本 |
show SGA | 檢視SGA的大小(要有許可權) |
show sqlcode | 顯示資料庫操作之後的狀態程式碼 |
show user | 顯示當前連線的使用者 |
save命令 在SQL*PLUS中可以執行一條或若干條sql命令,它們被存放在緩衝區中,且緩衝區中只能存放最近剛執行的sql或pl/sql ,(後進的覆蓋之前的),如果要儲存以往執行過的語句,要使用save。
save filename [create] [append] [replace]
filename : 存放語句的文件名 [create] [append] [replace] :create表示文件不存在,新建;append表示文件已經存在 ,追加;replace表示文件已經存在 , 覆蓋。
get命令 上面說過save命令用來儲存,那麼get命令就是用來讀取的,將儲存後的檔案讀取到緩衝區中進行顯示,get命令的語法格式:
get filename
edit命令 使用edit命令可以將緩衝區的內容複製到一個檔案中 ,預設檔案afiedt.buf ,當然也可以制定一個已經命了名存在的檔案。
edit filename
@命令 用於執行存放在指令碼檔案中的命令:與start命令作用相同。
@ filename
spool命令 將輸出結果以及語句都儲存在文字檔案中。
開始:
spool filename [create] or [append] or [replace] out
[create] or [append] or [replace] 三選一 out 啟動該功能。
結束:
spool foff