sqlplus 使用者名稱/密碼@為串連oracle所添加的本網服務的名字。
C:\Users\haiyang>sqlplus scott/tiger@myoracle9i
SQL*Plus: Release 11.2.0.1.0 Production on 星期日 2月 20 22:12:15 2011
Copyright (c) 1982, 2010, Oracle. All rights reserved.
串連到:
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production
SQL>
desc tablename 來顯示表的結構。
SQL> desc emp;
名稱 是否為空白? 類型
----------------------------------------- -------- ----------------------------
EMPNO NOT NULL NUMBER(4)
ENAME VARCHAR2(10)
JOB VARCHAR2(9)
MGR NUMBER(4)
HIREDATE DATE
SAL NUMBER(7,2)
COMM NUMBER(7,2)
DEPTNO NUMBER(2)
SET LINE[SIZE] {80| n},其中n為自然數,80為預設值。該命令是將顯示屏的顯示輸出置為n個字元那麼寬,80個字元為此命令的預設顯示寬度。
set pagesize 120用來設定每頁輸入的行數。
col hiredate for a15用來指定用15個字元的長度來顯示列hiredate.
L(LIST)命令。該命令用來顯示SQL緩衝區中的內容。
SQL> l
1 select *
2* from emp
SQL>
n text命令來修改出錯的部分,其中n為在SQL緩衝區中的SQL語句
的行號,text為替代出錯部分的SQL語句。
SQL> l
1 select *
2* from emp
SQL> 2 from dept
SQL> l
1 select *
2* from dept
SQL>
命令‘/’(RUN)來重新運行在SQL緩衝區中的SQL語句。
SQL> /
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
n命令設定當前行,a(append)命令在當前行新增內容。
SQL> l
1 select ename
2 from emp
3* order by sal desc
SQL> 1
1* select ename
SQL> a ,deptno,sal
1* select ename,deptno,sal
SQL> l
1 select ename,deptno,sal
2 from emp
3* order by sal desc
SQL> /
ENAME DEPTNO SAL
---------- ---------- ----------
KING 10 5000
SCOTT 20 3000
FORD 20 3000
JONES 20 2975
BLAKE 30 2850
CLARK 10 2450
ALLEN 30 1600
TURNER 30 1500
MILLER 10 1300
WARD 30 1250
MARTIN 30 1250
ADAMS 20 1100
JAMES 30 950
SMITH 20 800
已選擇14行。
使用0 text在第一行之前插入一行資料。也可以使用 當前最大的行數+1 text來增加一行。
SQL> l
1 select ename,deptno,sal
2 from emp
3* order by sal desc
SQL> 0 create table emp_temp as
SQL> l
1 create table emp_temp as
2 select ename,deptno,sal
3 from emp
4* order by sal desc
SQL> /
表已建立。
SQL>
使用del n刪除第n行。如果沒有指定n就是刪除掉當前行。也可以使用del m n命令刪除從m行到n行的所有內容。
SQL> l
1 create table emp_temp as
2 select ename,deptno,sal
3 from emp
4* order by sal desc
SQL> del 1
SQL> l
1 select ename,deptno,sal
2 from emp
3* order by sal desc
SQL> del
SQL> l
1 select ename,deptno,sal
2* from emp
SQL>
SQL> l
1 create table emp_temp as
2 select ename,deptno,sal
3 from emp
4* order by sal
SQL> del 2 4
SQL> l
1* create table emp_temp as
SQL>
使用C[HANGE]/原文/新的本文命令來修改SQL緩衝區中的語句。該命令是在當前行中用“新的本文”替代“原文”。
注意是c /oldtext/newtext,/oldtext和/newtext中間沒有空格。如果在下例中使用c /dept /emp,會出現”SP2-0023: 未找到字串“的錯誤。
SQL> select ename, deptno, sal
2 from dept
3 where sal > 1000
4 order by sal desc;
where sal > 1000
*
第 3 行出現錯誤:
ORA-00904: "SAL": 無效的標識符
SQL> l
1 select ename, deptno, sal
2 from dept
3 where sal > 1000
4* order by sal desc
SQL> 2
2* from dept
SQL> c /dept/emp
2* from emp
SQL> l
1 select ename, deptno, sal
2 from emp
3 where sal > 1000
4* order by sal desc
SQL> /
ENAME DEPTNO SAL
---------- ---------- ----------
KING 10 5000
SCOTT 20 3000
FORD 20 3000
JONES 20 2975
BLAKE 30 2850
CLARK 10 2450
ALLEN 30 1600
TURNER 30 1500
MILLER 10 1300
WARD 30 1250
MARTIN 30 1250
ADAMS 20 1100
已選擇12行。
SQL>
SAVE命令把SQL緩衝區的內容存入指定的檔案,這個檔案叫指令檔。save命令會建立指定的檔案,但是要求路徑已經存在,否則無法建立儲存檔案。
SQL*PLUS的命令不被存入SQL緩衝區,SQL緩衝區中只儲存上一個sql。SQL緩衝區只能儲存一個SQL語句。
產生了指令檔之後,可以使用SQL*PLUS的GET命令將這個指令檔裝入SQL緩衝區。
SQL> l
1 select ename, deptno, sal
2 from emp
3 where sal > 1000
4* order by sal desc
SQL> save d:\sql_test\sample
SP2-0110: 無法建立儲存檔案 "d:\sql_test\sample.sql"
SQL> save d:\oracle_sql_study\sample
已建立 file d:\oracle_sql_study\sample.sql
SQL> select distinct deptno from emp;
DEPTNO
----------
10
20
30
SQL> l
1* select distinct deptno from emp
SQL> get d:\oracle_sql_study\sample.sql
1 select ename, deptno, sal
2 from emp
3 where sal > 1000
4* order by sal desc
SQL> /
ENAME DEPTNO SAL
---------- ---------- ----------
KING 10 5000
SCOTT 20 3000
FORD 20 3000
JONES 20 2975
BLAKE 30 2850
CLARK 10 2450
ALLEN 30 1600
TURNER 30 1500
MILLER 10 1300
WARD 30 1250
MARTIN 30 1250
ADAMS 20 1100
已選擇12行。
SQL>
可以使用SQL*PLUS的ed[it]命令來直接編輯d:\oracle_sql_study\sample.sql。
可以使用SQL*PLUS的@ 或START命令來直接運行指令檔D:\SQL\SAMPLE.sql。
@ 或START命令是把指定指令檔的內容裝入SQL緩衝區中並運行。
SQL> @d:\oracle_sql_study\sample.sql
ENAME DEPTNO SAL
---------- ---------- ----------
ALLEN 30 1600
WARD 30 1250
JONES 20 2975
MARTIN 30 1250
BLAKE 30 2850
CLARK 10 2450
SCOTT 20 3000
KING 10 5000
TURNER 30 1500
ADAMS 20 1100
FORD 20 3000
MILLER 10 1300
已選擇12行。
SQL>
SPOOL D:\SQL\OUTPUT中SPOOL之後為檔案名稱,該命令的意思是在該命令之後屏
所顯示的一切都要存到D:\SQL目錄下的OUTPUT檔案中。只有當輸入SPOOL OFF之
才能看到OUTPUT檔案中的內容。如果您輸入SPOOL OUT表示其內容將送到印表機。
spool命令會建立指定的檔案,但是要求路徑已經存在,否則無法建立spool檔案。
SQL> spool d:\sql_test\output
SP2-0606: 無法建立 SPOOL 檔案 "d:\sql_test\output.LST"
SQL> spool d:\oracle_sql_study\output
SQL> l
1 select ename, deptno, sal
2 from emp
3* where sal > 1000
SQL> /
ENAME DEPTNO SAL
---------- ---------- ----------
ALLEN 30 1600
WARD 30 1250
JONES 20 2975
MARTIN 30 1250
BLAKE 30 2850
CLARK 10 2450
SCOTT 20 3000
KING 10 5000
TURNER 30 1500
ADAMS 20 1100
FORD 20 3000
MILLER 10 1300
已選擇12行。
SQL> spool off
SQL>