ITPub博客

首页 > Linux操作系统 > Linux操作系统 > sql*plus入门

sql*plus入门

原创 Linux操作系统 作者:pingley 时间:2012-02-06 20:45:53 0 删除 编辑
sql*plus入门
oracle sql*plus工具是用于连接管理数据库的实用工具,提供了简洁强大的命令行界面
在各个发行版本都带有该工具。用于执行数据库管理,编辑执行sql,pl/sql命令。
注:oracle sql*plus执行的部分是本地命令(local commands),也是就是sql*plus自带的命令,
部分是服务器端命令(server-executed commands).

使用sql*plus连接数据库:
sqlplus scott/TIGER@localhost:1521/ORACL
使用easy connect方法,连接远程数据库。可以不需要配置tnsnames.ora文件
要连接远程数据库只需要把localhost换成远程主机名。
tnsnames.ora可以使用netmgr配置或者直接修改tnsnames.ora文件。

设置默认使用的数据库:
$ ORACLE_SID=orcl
$ export ORACLE_SID
这样可以不需要指定登陆的数据库名
$ sqlplus username/password
注意:这时候密码是可见
当需要连接到非默认的数据库的时候,指定tnsnames.ora文件中的服务名
$ sqlplus username@connect_identifier

可以使用操作系统认证的方式以sysdba登陆系统:
sqlplus / as sysdba
某种操作,比如startup,shutdown 必须是以sysdba or sysoper验证的用户

connect命令:
进入sql命令行界面以后,也可以切换到其他用户,其他数据库
SQL> connect newuser/newuser_passwd
SQL> connect salapati/sammyy1@orcla
connect sys/sammy1@prod1 as sysdba
connect / as sysdba
connect username/password as sysdba
connect / as sysoper
connect username/password as sysoper
这时确保tnsnames.ora已经配置关于要连接的数据库的连接信息

nolog命令:
可以使用/nolog先进入sql*plus命令行界面,而不连接到数据库
$ sqlplus /nolog
这时主要是为了编辑sql脚本,需要连接到数据库的时候可以使用connect命令

-用于连接字符拼接:
SQL> select 200 - -
> 100 from dual;
200-100
----------
100
其中一个用作减号

exit,quit用于退出数据库系统:
注意:这时候sql*plus会自动的执行commit;
如果你得事物不需要提交请在退出前rollback;

show screen用于清理屏幕
SQL> clear screen
在linux下也可以使用:
SQL> !clear

edit命令:
在提示符下输入edit默认使用的vi,windows下是notepad,如果要改变默认的sql语句编辑器
可以再提示符下输入define_editor=notpad(你想要使用的编辑器名)。
出现在文本编辑器中的sql语句是最新执行的,默认文件名为afiedt.buf
如果想要保持你编辑的sql语句,可以在edit后面跟上你要保存的文件名(filename)。
执行sql语句,只需要在提示符下键入/然后按enter键,或者使用@filename然后按enter键。

set命令:
set命令用于设置sql*plus会话的环境变量.使用help index命令显示出帮助主题
使用help [topic]详细了解该命令。
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                      XQUERY
 CONNECT       PASSWORD     SHOW

array[size]:设置一次从数据库中获取的行数,把该值设置的大写可以提高查询的效率,但是同时也需要
更多的内存。
SQL> show array
arraysize 15
SQL> set array 30
autocommit[on|off]:设置是否自动提交事务。
SQL> show autocommit;
autocommit OFF
echo[on|off]:每一个命令都将在屏幕输出前显示。
SQL> show echo
echo OFF
SQL> set echo on
linesize[80|n]:控制每行显示的字符个数。
SQL> show linesize
linesize 80
SQL> set linesize 120
time[on|off]:显示系统时间。
SQL> show time
time OFF
SQL> set time on
12:34:58 SQL>
sqlprompt[sql>|text]:sql*plus会话的提示符。
SQL> show sqlprompt
sqlprompt "SQL> "
SQL> set sqlprompt "dba@oracle>"
dba@oracle>
space[1|n]:设置列输出之间的空格,最大值是10.
SQL> show space
space 1
SQL> select * from V$sgainfo;

NAME                                  BYTES RES
-------------------------------- ---------- ---
Fixed SGA Size                      1336120 No
Redo Buffers                        6373376 No
Buffer Cache Size                 159383552 Yes
Shared Pool Size                   96468992 Yes
Large Pool Size                    29360128 Yes
Java Pool Size                     12582912 Yes
Streams Pool Size                         0 Yes
Shared IO Pool Size                       0 Yes
Granule Size                        4194304 No
Maximum SGA Size                  305508352 No
Startup overhead in Shared Pool    62914560 No

NAME                                  BYTES RES
-------------------------------- ---------- ---
Free SGA Memory Available                 0
SQL> set space 0
SQL> select * from V$sgainfo;

NAME                                 BYTESRES
---------------------------------------------
Fixed SGA Size                     1336120No
Redo Buffers                       6373376No
Buffer Cache Size                159383552Yes
Shared Pool Size                  96468992Yes
Large Pool Size                   29360128Yes
Java Pool Size                    12582912Yes
Streams Pool Size                        0Yes
Shared IO Pool Size                      0Yes
Granule Size                       4194304No
Maximum SGA Size                 305508352No
Startup overhead in Shared Pool   62914560No

NAME                                 BYTESRES
---------------------------------------------
Free SGA Memory Available                0
请注意查询输出的差异
pagesize[24|n]:设置每页的行数。
SQL> show pagesize
pagesize 14
SQL> select * from V$sgainfo;
1//编号是自己手动添加的
2NAME                                 BYTESRES
3---------------------------------------------
4Fixed SGA Size                     1336120No
5Redo Buffers                       6373376No
6Buffer Cache Size                159383552Yes
7Shared Pool Size                  96468992Yes
8Large Pool Size                   29360128Yes
9Java Pool Size                    12582912Yes
10Streams Pool Size                        0Yes
11Shared IO Pool Size                      0Yes
12Granule Size                       4194304No
13Maximum SGA Size                 305508352No
14Startup overhead in Shared Pool   62914560No

NAME                                 BYTESRES
---------------------------------------------
Free SGA Memory Available                0
12 rows selected.
其中每一页最大14行.
feedback[on|off]:设置是否范围“x row selected”。
SQL> show feedback
FEEDBACK ON for 6 or more rows
SQL> set feedback off
SQL> show feedback
feedback OFF
verify[on|off]:设置SQL文本是否显示当,变量替换以后。
SQL> show verify
verify ON
SQL> create table hr.test(col number(4));
Table created.
SQL> insert into hr.test values(&col);
Enter value for col: 1000
old   1: insert into hr.test values(&col)
new   1: insert into hr.test values(1000)
1 row created.
SQL> set verify off
SQL>  insert into hr.test values(&col);
Enter value for col: 999
1 row created.
注意前后的区别。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26110315/viewspace-715714/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-02-06

  • 博文量
    169
  • 访问量
    717598