簡介
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 輸入用戶名,密碼即可
退出:
在界面的SQL> 後輸入exit或者quit均可以退出。
(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
(3)sqlplus 環境的設置
我們可以打開SQL*PLUS界面通過屬性的設置來改變其背景顏色、窗口大小、字體顏色、大小等等佈局設置。
①linesize用於設置每一行數據可顯示的數據量大小 ,默認80 。
show linesize
set linesize 160
②pagesize用於設置每一頁的數據量大小 ,默認14。
③column 設置列的屬性
column [columname | columnalias] [option]
[columname | columnalias] :分別爲要設置格式的列名,列的別名
[option] :相關選項見下表
選項 | 描述 |
---|---|
Clear | 清除列的格式 |
Format | 顯示格式的設置 :An列寬 L貨幣符號 .小數點位置等等 |
Heading text | 設置列標題 |
Justify[align] | 列標題對齊方式 center left right |
Null text | 指定爲空值顯示的內容 |
④pause 用於查詢結果行數多(避免查詢結果太多在屏幕上快速顯示),設置分屏顯示,使用滾動鍵查看。
set pause on | off
⑤ttitle btitie 設置頁眉和頁腳
SQL> set pause on
SQL> set pause off
SQL> ttitle center "scott用戶所擁有的表"
SQL> btitle center "---------scott用戶所擁有的表-----"
SQL> select * from tab;
scott用戶所擁有的表
TNAME TABTYPE CLUSTERID
------------------------------------------------------------ -------------- ----------
ADDRESS TABLE
BONUS TABLE
DEPT TABLE
EMP TABLE
FSB TABLE
SALGRADE TABLE
STU TABLE
STUDENT TABLE
STUDENT1 TABLE
STUDENT2 TABLE
---------scott用戶所擁有的表-----