程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> 關於Oracle數據庫 >> oracle 安裝與SQLPLUS簡單用法

oracle 安裝與SQLPLUS簡單用法

編輯:關於Oracle數據庫
一 安裝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行。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved