1. 程式人生 > >oracle 11g中sql plus使用

oracle 11g中sql plus使用

一、啟動sql plus

進入sql*plus方法:
1)從安裝程式目錄進入
2)cmd方式 sqlplus username/[email protected]主機字串
1)2)既可以使用sql語句也支援sql命令
3)sql developer :只能寫sql語句,sql命令不能使

4)EM 不能使用sql語句,也不能使用sql命令


建立主機字串方法:
1)net manager
2)net configration assistant
3)tnsnames.ora 複製原有構造自己的


sql developer工具 不用主機字串

二、常用命令

SQL*Plus命令主要用來設定查詢結果的顯示格式,設定環境選項和提供幫助資訊等。

1.連線與斷開資料庫連線命令

CONNECT 使用者名稱/口令@主機字串

CONNECT可簡寫為CONN

DISCONNECT

任何以sysdba身份連線的使用者,都將被視為sys使用者,可以通過show user命令檢視當前連線到資料庫的使用者

conn m/h as sysdba(無論使用者存不存在,密碼對不對,或都沒有)

2.查看錶(檢視、同義詞)結構命令

DESCRIBE  表名

DESCRIBE可簡寫為DESC

3.會話環境設定命令

SET 環境變數名 值

CONN scott/tiger
SET SPACE 2
SET linesize 200   (行的寬度 預設80)
SET pagesize 120    (一頁的記錄數)
SELECT * FROM emp;

4.SPOOL(假離線)命令

SPO[OL] [ file_name [ CRE[ATE] | REP[LACE] | APP[END]] | OFF | OUT ]

5.編輯命令


6.SAVE命令

SAV[E] [ FILE ] file_name [ CRE[ATE] | REP[LACE] | APP[END] ]
7.使用GET命令讀取檔案內容到緩衝區

GET [ FILE ] file_name [ LIST | NOLIST ]

8.使用START命令讀取並執行檔案內容

STA[RT]  {file_name}
Start也可以用@代替

9.使用EDIT命令編輯緩衝區內容或檔案內容

ED[IT] [ file_name ]

10.執行儲存過程命令

EXECUTE 儲存過程名

11.設定列顯示屬性

COL[UMN] [{column | expr} [option ……]]
column 列名(字元型) format A長度
column 列名(數值型) format 9999

12.SHOW檢視例程引數、系統變數、編譯錯誤等

SHOW PARAMETERS db_name
SHOW user

13.顯示命令幫助資訊

HELP [命令名]


三、變數

a、帶有一個&的替換變數的用法

特點:1)&變數名
     2)可以代替初關鍵字以外的任何名稱
     3)生命週期-作用範圍只限於sql執行中。
     4)可以在檔案中使用臨時變數。


1)、使用帶有一個&號的變數值來提示使用者輸入一個值。
eg、
SQL> SELECT     empno, ename, sal, deptno FROM  emp WHERE empno = &empno;
輸入 empno 的值:  7369
原值    1: SELECT empno, ename, sal, deptno FROM  emp WHERE empno = &empno
新值    1: SELECT empno, ename, sal, deptno FROM  emp WHERE empno = 7369


     EMPNO ENAME             SAL     DEPTNO
———- ———- ———- ———-
      7369 SMITH            8888         20


2)、替換變數中的字串和日期值
使用單引號標誌替換變數中的日期和字串值。
eg、
SQL> SELECT ename, deptno, sal*12 FROM emp WHERE job='&job';
輸入 job 的值:  ANALYST
原值    1: SELECT ename, deptno, sal*12 FROM emp WHERE job='&job'
新值    1: SELECT ename, deptno, sal*12 FROM emp WHERE job='ANALYST'


ENAME          DEPTNO     SAL*12
———- ———- ———-
SCOTT              20     106656
FORD               20      36000


3)、執行時指定列名、表示式、文字
SELECT empno, ename, job, &column_name
FROM emp
WHERE &condition
ORDER BY &order_column;
輸入 column_name 的值:  sal
原值    1: SELECT empno, ename, job, &column_name
新值    1: SELECT empno, ename, job, sal
輸入 condition 的值:  sal>=3000
原值    3: WHERE &condition
新值    3: WHERE sal>=3000
輸入 order_column 的值:  ename
原值    4: ORDER BY &order_column
新值    4: ORDER BY ename


     EMPNO ENAME      JOB              SAL
———- ———- ——— ———-
      7902 FORD       ANALYST         3000
      7839 KING       PRESIDENT       5000
      7788 SCOTT      ANALYST         8888
      7369 SMITH      CLERK           8888


b、帶有兩個&的替換變數用法

特點:A)多個同名變數只輸入一次,同時賦值
      B)不再是臨時變數,生命週期是替代變數。
使用帶有兩個&的變數可以使得該變數可以重複使用,而不必在每次使用時提醒使用者輸入。
SQL> SELECT empno, ename, job, &&column_name FROM emp ORDER BY &column_name;
輸入 column_name 的值:  deptno
原值    1: SELECT empno, ename, job, &&column_name FROM emp ORDER BY &column_name
新值    1: SELECT empno, ename, job, deptno FROM emp ORDER BY deptno


     EMPNO ENAME      JOB           DEPTNO
———- ———- ——— ———-
      7782 CLARK      MANAGER           10
      7839 KING       PRESIDENT         10
      7934 MILLER     CLERK             10



c、define命令用法

特點:A)需要用define 變數名=值。
      B)生命週期-作用範圍從定義開始到sqlplus顯式關閉,或set define off刪除此變數。
      C)定義的變數的資料型別為char
建立CHAR型別的使用者變數,當定義一個包含空格的變數時,要用單引號將該變數括起來。
eg、
SQL> define deptname = sales
SQL> define deptname; –檢視該變數
DEFINE DEPTNAME = "sales" (CHAR)
SQL> SELECT * FROM dept WHERE dname=UPPER('&deptname');
原值    1: SELECT * FROM dept WHERE dname=UPPER('&deptname')
新值    1: SELECT * FROM dept WHERE dname=UPPER('sales')


    DEPTNO DNAME          LOC
———- ————– ————-
        30 SALES          CHICAGO


說明:一個變數將保持在被定義的狀態,直到使用undefine命令將它清除或離開sql*plus。


d、accept命令用法

特點:
      A)accept可以定義數值型,字元型,日期型。
      B)生命週期-作用範圍從定義開始到sqlplus顯式關閉 
      C)ACC[EPT] variable [ data_type ] 
      [ FOR[MAT] format ] 
      [ DEF[AULT] default ] 
      [ PROMPT text | NOPR[OMPT] ]
      [ HIDE ]
接收使用者輸入時,建立可定製的使用者提示。
eg、
–提示你輸入一個數值給dept,dept是個變數,可用define命令檢視該變數
SQL> accept dept prompt 'Provide the department name: '
Provide the department name: Sales
SQL> define dept; --檢視該變數
DEFINE DEPT = "Sales" (CHAR)
SQL> SELECT * FROM dept WHERE dname = UPPER('&dept');
原值    1: SELECT * FROM dept WHERE dname = UPPER('&dept')
新值    1: SELECT * FROM dept WHERE dname = UPPER('Sales')


    DEPTNO DNAME          LOC
———- ————– ————-
        30 SALES          CHICAGO