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 - ProductionWith the Partitioning, OLAP and Oracle Data Mining optionsJServer 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 empSQL>
n text命令来修改出错的部分,其中n为在SQL缓冲区中的SQL语句的行号,text为替代出错部分的SQL语句。SQL> l 1 select * 2* from empSQL> 2 from deptSQL> l 1 select * 2* from deptSQL>
命令‘/’(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 descSQL> 1 1* select enameSQL> a ,deptno,sal 1* select ename,deptno,salSQL> l 1 select ename,deptno,sal 2 from emp 3* order by sal descSQL> /
ENAME DEPTNO SAL---------- ---------- ----------KING 10 5000SCOTT 20 3000FORD 20 3000JONES 20 2975BLAKE 30 2850CLARK 10 2450ALLEN 30 1600TURNER 30 1500MILLER 10 1300WARD 30 1250MARTIN 30 1250ADAMS 20 1100JAMES 30 950SMITH 20 800
已选择14行。
使用0 text在第一行之前插入一行数据。也可以使用 当前最大的行数+1 text来增加一行。SQL> l 1 select ename,deptno,sal 2 from emp 3* order by sal descSQL> 0 create table emp_temp asSQL> l 1 create table emp_temp as 2 select ename,deptno,sal 3 from emp 4* order by sal descSQL> /
表已创建。
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 descSQL> del 1SQL> l 1 select ename,deptno,sal 2 from emp 3* order by sal descSQL> delSQL> l 1 select ename,deptno,sal 2* from empSQL>
SQL> l 1 create table emp_temp as 2 select ename,deptno,sal 3 from emp 4* order by salSQL> del 2 4SQL> l 1* create table emp_temp asSQL>
使用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 descSQL> 2 2* from deptSQL> c /dept/emp 2* from empSQL> l 1 select ename, deptno, sal 2 from emp 3 where sal > 1000 4* order by sal descSQL> /
ENAME DEPTNO SAL---------- ---------- ----------KING 10 5000SCOTT 20 3000FORD 20 3000JONES 20 2975BLAKE 30 2850CLARK 10 2450ALLEN 30 1600TURNER 30 1500MILLER 10 1300WARD 30 1250MARTIN 30 1250ADAMS 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 descSQL> save d:/sql_test/sampleSP2-0110: 无法创建保存文件 "d:/sql_test/sample.sql"SQL> save d:/oracle_sql_study/sample已创建 file d:/oracle_sql_study/sample.sqlSQL> select distinct deptno from emp;
DEPTNO---------- 10 20 30
SQL> l 1* select distinct deptno from empSQL> get d:/oracle_sql_study/sample.sql 1 select ename, deptno, sal 2 from emp 3 where sal > 1000 4* order by sal descSQL> /
ENAME DEPTNO SAL---------- ---------- ----------KING 10 5000SCOTT 20 3000FORD 20 3000JONES 20 2975BLAKE 30 2850CLARK 10 2450ALLEN 30 1600TURNER 30 1500MILLER 10 1300WARD 30 1250MARTIN 30 1250ADAMS 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 1600WARD 30 1250JONES 20 2975MARTIN 30 1250BLAKE 30 2850CLARK 10 2450SCOTT 20 3000KING 10 5000TURNER 30 1500ADAMS 20 1100FORD 20 3000MILLER 10 1300
已选择12行。
SQL>
SPOOL D:/SQL/OUTPUT中SPOOL之后为文件名,该命令的意思是在该命令之后屏所显示的一切都要存到D:/SQL目录下的OUTPUT文件中。只有当输入SPOOL OFF之才能看到OUTPUT文件中的内容。如果您输入SPOOL OUT表示其内容将送到打印机。
spool命令会创建指定的文件,但是要求路径已经存在,否则无法创建spool文件。
SQL> spool d:/sql_test/outputSP2-0606: 无法创建 SPOOL 文件 "d:/sql_test/output.LST"SQL> spool d:/oracle_sql_study/outputSQL> l 1 select ename, deptno, sal 2 from emp 3* where sal > 1000SQL> /
ENAME DEPTNO SAL---------- ---------- ----------ALLEN 30 1600WARD 30 1250JONES 20 2975MARTIN 30 1250BLAKE 30 2850CLARK 10 2450SCOTT 20 3000KING 10 5000TURNER 30 1500ADAMS 20 1100FORD 20 3000MILLER 10 1300
已选择12行。
SQL> spool offSQL>
