一 安裝oracle資料庫成功之後,會顯示相關的資料庫資訊:
全域資料庫名:oracle
系統標識符(SID):oracle
伺服器參數檔案名稱:c:\oracle\product\10.2.0\db_1/dbs/spfileoracle.ora
Database Control URL為http://210.45.216.146:1158/em
資料庫賬戶:SYS,SYSTEM,DBSNMP,SYSMAN
密碼:oracle
iSQL*Plus URL 為:
http://210.45.216.146:5561/isqlplus
iSQL*Plus DBA URL 為:
http://210.45.216.146:5561/isqlplus/dba
查看C:\oracle\product\10.2.0\db_1\install\portlist.ini檔案獲得相應的OEM為:
http://210.45.216.146:1158/em/
二 SQLPLUS工具
SQLPLUS的主要功能為:輸入,運行和調試SQL語句和PL/SQL塊;執行管理資料庫命令;處理資料,產生報表,格式化查詢結果
1.啟動SQLPLUS:
scott/tiger@oracle
2.擷取SQLPLUS命令的協助:
SQL> help index; //獲得oracle所有命令
SQL> help list; //顯示出list命令的協助資訊
3.退出SQLPLUS(在退出SQLPLUS之前,應該使用commit命令提交事務):
SQL> quit或者SQL> exit;
4.在SQLPLUS中輸入三種類型的命令:
1) SQL命令:用於操作資料庫中的資訊
2) PL/SQL塊:用於操作資料庫中的資訊
3) SQLPLUS命令:用於編輯,儲存,運行SQL命令,PL/SQL塊,格式化查詢結果,自訂SQLPLUS環境等.
1),2)可以訪問資料庫,執行時將命令暫時存放到SQL緩衝區中.
3)不可以訪問資料庫,SQLPLUS命令也不能被存放到SQL緩衝區中.
5.緩衝區命令:
SQL>SELECT ; //把SELECT;儲存到緩衝區中
SQL>EDIT; //編輯緩衝區中的內容
SQL>RUN 或者SQL>/ //執行緩衝區中的內容
SQL>CLEAR SCREEN //清除SQLPLUS的螢幕及螢幕緩衝區
6.運行命令
在SQLPLUS中可以使用三種方式運行SQL語句和PL/SQL塊:1)命令列方式 2)SQL緩衝區方式 3)指令檔方式
1)命令列方式:
1.1)以命令列方式運行SQL命令,只需要在輸入完SQL語句之後,輸入分號(;),或者在新的一行輸入前斜線(/),按斷行符號鍵即可
SQL> SELECT ename,sal FROM emp
2 WHERE deptno = 20;
1.2)以命令列方式運行PL/SQL塊,只需要在輸入完PL/SQL塊之後,在新的一行輸入前斜線(/),按斷行符號鍵即可
SQL> SET SERVEROUTPUT ON
SQL> BEGIN
2 DBMS_OUTPUT.PUT_LINE('Hello Oracle!');
3 END;
4 /
1.3)EXECUTE(或者EXEC)命令,可以執行單條PL/SQL語句,不需要從緩衝區或指令檔中執行.
SQL> SET SERVEROUTPUT ON
SQL> EXEC DBMS_OUTPUT.PUT_LINE('Hello ');
Hello
2)SQL緩衝區方式:
2.1)RUN命令:顯示並運行當前儲存在SQL緩衝區中的SQL語句或PL/SQL塊,顯示運行結果,
並使SQL緩衝區中的最後一行成為當前行
SQL> SELECT ename, sal FROM emp
2 WHERE deptno = 20
3 ;
ENAME SAL
---------- ----------
SMITH 800
JONES 2975
SCOTT 3000
ADAMS 1100
FORD 3000
SQL> RUN
1 SELECT ename, sal FROM emp
2 WHERE deptno = 20
3*
ENAME SAL
---------- ----------
SMITH 800
JONES 2975
SCOTT 3000
ADAMS 1100
FORD 3000
2.2)/命令:運行當前儲存在SQL緩衝區中的SQL命令或PL/SQL塊,顯示運行結果,
而不顯示SQL緩衝區中的SQL命令或PL/SQL塊,也不會將SQL緩衝區中的最後一行成為當前行
SQL> SET SERVEROUTPUT ON
SQL> BEGIN
2 DBMS_OUTPUT.PUT_LINE('HELLO,ORACLE!');
3 END;
4 /
HELLO,ORACLE!
PL/SQL 過程已成功完成。
SQL> /
HELLO,ORACLE!
PL/SQL 過程已成功完成。
2.3)功能表命令
選擇"檔案"->"運行",它與RUN命令相同
3)指令檔方式
3.1)START命令
格式: START filename[.ext] [arg1 arg2 arg3...]
指令檔:D:\test.sql內容如下:
SELECT ename, sal FROM emp
WHERE deptno = &1
AND sal > &2;
使用START命令:
SQL> START D:\test.sql 20 2500
原值 2: WHERE deptno = &1
新值 2: WHERE deptno = 20
原值 3: AND sal > &2
新值 3: AND sal > 2500
ENAME SAL
---------- ----------
JONES 2975
SCOTT 3000
FORD 3000
3.2)@命令
@命令和START命令類似,區別在於:@命令既可以在SQLPLUS會話內部運行,也可以在命令列運行,
而START命令只能在SQLPLUS會話內運行.
7.替換變數命令
1)使用替換變數:其格式是在變數名稱之前加一個&,以便在運行SQL命令時提示使用者輸入替換資料,
然後按輸入資料運行SQL命令,如:
SQL> SELECT &a FROM emp
2 WHERE deptno = 20
3 AND job = '&b';
輸入 a 的值: ename
原值 1: SELECT &a FROM emp
新值 1: SELECT ename FROM emp
輸入 b 的值: CLERK
原值 3: AND job = '&b'
新值 3: AND job = 'CLERK'
ENAME
----------
SMITH
ADAMS
2)定義替換變數:事先用DEFINE命令定義替換變數,如:
SQL> DEFINE a = CLERK
SQL> SELECT ename FROM emp
2 WHERE deptno = 20
3 AND job = '&a';
原值 3: AND job = '&a'
新值 3: AND job = 'CLERK'
ENAME
----------
SMITH
ADAMS
3)查看替換變數
SQL> DEFINE a
DEFINE A = "CLERK" (CHAR)
4)清除替換變數
SQL> UNDEFINE a
8.與使用者通訊
可以使用PROMPT命令,PAUSE命令,ACCEPT命令與使用者進行通訊
1)PROMPT命令用於輸出提示資訊,以便使使用者瞭解指令檔的功能和運行情況
2)PAUSE命令用於暫停指令檔的運行
3)ACCEPT命令可以讓使用者指定替換變數的類型(如CHAR,NUMBER,DATE),用PROMPT選項指定提示資訊,
用HIDE選項隱藏輸入,以便於使用者輸入替換變數
舉例如下:
指令檔:D:\test.sql內容如下:
ACCEPT pwd PROMPT '請輸入密碼' HIDE
PROMPT
PROMPT 顯示XX部門XX工種的員工姓名
PROMPT ==========================
PROMPT 按<Enter>鍵繼續
PAUSE
ACCEPT a NUMBER PROMPT '請輸入部門:'
ACCEPT b CHAR PROMPT '請輸入工種:'
SELECT ename FROM emp
WHERE deptno = &a
AND job = '&b';
該指令檔運行結果為:
SQL> START D:\test.sql
請輸入密碼*********
顯示XX部門XX工種的員工姓名
==========================
按<Enter>鍵繼續
請輸入部門:20
請輸入工種:CLERK
原值 2: WHERE deptno = &a
新值 2: WHERE deptno = 20
原值 3: AND job = '&b'
新值 3: AND job = 'CLERK'
ENAME
----------
SMITH
ADAMS
9.綁定變數
1)定義綁定變數
可以使用VARIABLE命令來定義綁定變數.當在SQL語句或PL/SQL塊中使用綁定變數時,
必須在綁定變數前加冒號(:).當直接給綁定變數賦值時,需要使用EXECUTE命令,例如:
SQL> VARIABLE no NUMBER
SQL> EXECUTE :no := 7788
PL/SQL 過程已成功完成。
SQL> SELECT ename FROM emp WHERE empno = :no;
ENAME
----------
SCOTT
2)輸出綁定變數
使用PRINT命令輸出綁定變數,例如:
SQL> PRINT no
NO
----------
7788
10.自訂SQLPLUS環境
SQL> SHOW ALL //查看所有環境變數
SQL> SHOW linesize pagesize
SQL> SET linesize 100 pagesize 24 //linesize代表行寬度,預設為80,pagesize表示每頁顯示的行數,預設為24
SQL> SHOW arraysize //arraysize用於設定從資料庫中一次提取的行數,預設為15
SQL> SET arraysize 25
SQL> SHOW autocommit //autocommit用於設定是否自動認可,預設為OFF
SQL> SET autocommit on
SQL> SET colsep | //colsep 用於設定在選定列之間的分隔字元,預設為空白格
SQL> SELECT ename, sal FROM emp WHERE empno = 7788;
ENAME | SAL
----------|----------
SCOTT | 3000
SQL>SET heading off //heading表示是否顯示欄位標題,預設為ON
SQL> SELECT ename, sal FROM emp WHERE empno = 7788;
SCOTT | 3000
SQL> SET serveroutput on //SEVEROUTPUT用於控制是否顯示預存程序的輸出,預設為OFF
SQL> EXEC dbms_output.put_line('hello oracle');
hello oracle
PL/SQL 過程已成功完成。
SQL> SET sqlprompt inputSQL> //sqlprompt用來設定SQLPLUS的命令提示字元
inputSQL>
SQL>SET time on //time是否在SQLPLUS命令提示字元前顯示系統時間,預設設定為OFF
19:02:35 SQL>
SQL>SET underline = //underline用於設定底線,預設值為"_"
SQL>SELECT count(*) FROM emp;
COUNT(*)
==========
14
SQL>STORE SET D:\setfile.sql //儲存當前的SQLPLUS環境
已建立 file D:\setfile.sql
11.格式化查詢結果
1)格式化列
SQL> COLUMN ename HEADING 僱員 JUSTIFY CENTER FORMAT A4
SQL> COLUMN sal HEADING 月薪 JUSTIFY CENTER FORMAT L99999.99
SQL> SELECT ename, sal FROM emp WHERE deptno = 20 AND sal > 2500;
僱員| 月薪
====|===================
JONE| ¥2975.00
SCOT| ¥3000.00
T |
FORD| ¥3000.00
SQL>COLUMN sal CLEAR //恢複列的格式
2)限制重複行
在限制重複行的同時,還可以在各個分組之間插入n個空行,其文法為:
BREAK ON break_column SKIP n
跑到新的一頁,其文法為:
BREAK ON break_column SKIP PAGE
在每行之後插入n個空行,其文法為:
BREAK ON ROW SKIP n
在報表之後插入n個空行,其文法為:
BREAK ON REPORT SKIP n
SQL> BREAK ON deptno SKIP 1
SQL> SELECT deptno, ename, sal FROM emp WHERE sal < 2500
2 ORDER BY deptno;
DEPTNO ENAME SAL
---------- ---------- ----------
10 CLARK 2450
MILLER 1300
20 ADAMS 1100
SMITH 800
30 WARD 1250
MARTIN 1250
JAMES 950
TURNER 1500
ALLEN 1600
已選擇9行。