您的位置:首页 > 数据库 > Oracle

oracle练习2-sqlplus和isqlplus基本使用

2013-12-20 15:00 309 查看
一,概述

sqlplus 是管理 oracle 数据库的最强大,最高效的工具! 

该实验的目的是熟悉 oracle 小工具 sqlplus 的使用。 

SQLPLUS 介绍 

SQLPLUS 是 ORACLE 公司开发的很简洁的管理工具。

二,操作步骤

(1)oracle版本查看

SQL> select * from v$version;

BANNER

----------------------------------------------------------------

Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Prod

PL/SQL Release 10.2.0.3.0 - Production

CORE    10.2.0.3.0      Production

TNS for 32-bit Windows: Version 10.2.0.3.0 - Production

NLSRTL Version 10.2.0.3.0 - Production

(2)help index

SQL> help index

Enter Help [topic] for help.

 @             COPY         PAUSE                    SHUTDOWN

 @@            DEFINE       PRINT                    SPOOL

 /             DEL          PROMPT                   SQLPLUS

 ACCEPT        DESCRIBE     QUIT                     START

 APPEND        DISCONNECT   RECOVER                  STARTUP

 ARCHIVE LOG   EDIT         REMARK                   STORE

 ATTRIBUTE     EXECUTE      REPFOOTER                TIMING

 BREAK         EXIT         REPHEADER                TTITLE

 BTITLE        GET          RESERVED WORDS (SQL)     UNDEFINE

 CHANGE        HELP         RESERVED WORDS (PL/SQL)  VARIABLE

 CLEAR         HOST         RUN                      WHENEVER OSERROR

 COLUMN        INPUT        SAVE                     WHENEVER SQLERROR

 COMPUTE       LIST         SET

 CONNECT       PASSWORD     SHOW

显示 SQLPLUS 命令的帮助,而不是 SQL 语法的帮助,它是查询的数据库内的一张表,所以你

要得到帮助需要两个条件,一、数据库是打开的。二、存在 HELP 表 

建立 HELP 表的脚本在 oracle_home\sqlplus\admin\help 目录下。

(3)Sql>show all 

显示当前 SQLPLUS 的环境设置 

(4)Sql>show user 

显示当前所登录的用户信息。

(5)Spool 

Spool 命令是将屏幕的显示输入到文本文件内,以便查看,有点象屏幕转存。

SQL> spool c:/test.txt

SQL> select * from scott.dept;

    DEPTNO DNAME          LOC

---------- -------------- -------------

        10 ACCOUNTING     NEW YORK

        20 RESEARCH       DALLAS

        30 SALES          CHICAGO

        40 OPERATIONS     BOSTON

SQL> spool off;

此时,打开c:/test.txt,可看到输出的信息。

SQL> spool c:/test1.txt append

SQL> select dname from scott.dept;

DNAME

--------------

ACCOUNTING

RESEARCH

SALES

OPERATIONS

SQL> spool off

SQL> 

加 APPEND 命令的含义是续写 c:\1.TXT,如果不加,将会把原来的 c:\1.TXT 覆盖,这是 10G

的新特性,以前的数据库版本不能续写,只能指定新的文件名称。

(6)run

运行 SQLPLUS 缓冲区内的 SQL 语句,可以缩写为 r。 

SQL> run

  1* select table_name from user_tables

TABLE_NAME

------------------------------

DEPT

EMP

BONUS

SALGRADE

SQL> r

  1* select table_name from user_tables

TABLE_NAME

------------------------------

DEPT

EMP

BONUS

SALGRADE

(7)/

与 run 命令相同,运行 SQLPLUS 缓冲区内的 SQL 语句。

SQL> show user;

USER 为 "SCOTT"

SQL> list

  1* select table_name from user_tables

SQL> /

TABLE_NAME

------------------------------

DEPT

EMP

BONUS

SALGRADE

(8)@脚本

运行指定的脚本

SQL> show user;

USER 为 "SCOTT"

SQL> desc dept;

 名称                                      是否为空? 类型

 ----------------------------------------- -------- ----------------------------

 DEPTNO                                    NOT NULL NUMBER(2)

 DNAME                                              VARCHAR2(14)

 LOC                                                VARCHAR2(13)

SQL> @ C:/test.sql

 名称                                      是否为空? 类型

 ----------------------------------------- -------- ----------------------------

 DEPTNO                                    NOT NULL NUMBER(2)

 DNAME                                              VARCHAR2(14)

 LOC                                                VARCHAR2(13)

@@为运行相对路径下的脚本,一般是在大脚本调用小脚本的时候使用。

@与@@的区别是什么?

@等于start命令,用来运行一个sql脚本文件。

@命令调用当前目录下的,或指定全路径,或可以通过SQLPATH环境变量搜寻到的脚本文件。该命令使用是一般要指定要执行的文件的全路径,否则从缺省路径(可用SQLPATH变量指定)下读取指定的文件。

@@用在sql脚本文件中,用来说明用@@执行的sql脚本文件与@@所在的文件在同一目录下,而不用指定要执行sql脚本文件的全路径,也不是从SQLPATH环境变量指定的路径中寻找sql脚本文件,该命令一般用在脚本文件中。

如:在c:目录下有文件test.sql和test1.sql,

start.sql脚本文件的内容为:

@@test1.sql  

test1.sql脚本文件的内容为

desc emp;

则我们在sql*plus中s,这样执行:

SQL> @ C:/test.sql

 名称                                      是否为空? 类型

 ----------------------------------------- -------- ----------------------------

 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)

(9)Save

将当前 SQLPLUS缓冲区内的 SQL 语句保存到指定的文件中

先list,看下缓冲区内的sql语句。

SQL> list

  1* select table_name from user_tables

现在save c:\save.txt

SQL> save C:/save.txt

已创建 file C:/save.txt

此时打开c:\save.txt ,可看到select table_name from user_tables

(10)get

将文件中的SQL语句调入到SQLPLUS缓冲区内。

如我们在c:/save.txt 写入 desc  emp

SQL> get c:/save.txt

  1* select distinct deptno from emp

SQL> /

    DEPTNO

----------

        30

        20

        10

SQL> 

(11)Edit

编辑当前 SQLPLUS缓冲区内的 SQL 语句

如ed

--是注释当前行

/*    */是注释多行

我们先list 看下缓冲区下的sql语句

SQL> list

  1* select distinct deptno from emp

此时edit  即可编辑
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oracle sqlplus