SQL Plus基础命令学习笔记
				
		
		
				
						
						
				 
		
				
						
						
				 
		
				
						
								    依旧是我当年学习的笔记之一,这是在学习SQL Plus时记的。其实在SQL Plus下是有很多其他地方不能使用的功能和技巧的,不过这边只是一个基本的应用,不涉及一些复杂的东西。好,下面看一下内容:
				
		
		
				
						
						
				 
		
				
						
						
				 
		
				
						
								
										一、使用cmd登录:
								
								
    
    前提:PATH中设置%oracle_home%/bin
				
		
		
				
				 
		
				    \admin> sqlplus
    输入用户名:sys
    输入密码:sys as sysdba(页面中不显示)
		
		
				
				 
		
				    \admin> sqlplus sys/sys as sysdba
    \admin> sqlplus /as sysdba
		
		
				
				 
		
				    \admin> sqlplus /nolog
    SQL> conn sys/sys as sysdba
		
		
				
				 
		
				    注:如果需要加链接字符串,则为sys/sys@DODO as sysdba
        不填时默认登录本机数据库,若为远程链接则必须填写
		
		
				
				 
		
				
						
						
				 
		
				
						
						
				 
		
				
						
								二、基本操作命令:
						
				
		
		
				
						
						
				 
		
				
						
								
										
												1、执行一个SQL脚本
								
						
				
		
		
				
						
						
				 
		
				
						    SQL> start D:\a.sql
				
		
		
				
						    SQL> @ D:\a.sql
				
		
		
				
						
								    注:若需要在一个脚本中调用另一个脚本,则使用 @@D:\a.sql
						
				
		
		
				
						
						
				 
		
				
						
								
										
												
														2、重新执行上一次命令:
								
						
						
								
										
										
								 
						
								
										    SQL> /               --也可使用 run/r 来替代执行
								
						
				
		 
		
				
						
						
				 
		
				
						
								
										
												3、编辑脚本:
								
						
				
		
		
				
						
						
				 
		
				
						    SQL> edit            --编辑当前输入的文本(前1次执行的部分)
				
		
		
				
						    SQL> edit D:\a.sql   --编辑制定文档
				
		
		
				
						
								    注:在txt中编辑完成后保存,关闭即修改完成,使用“/”后运行
						
				
		
		
				
						
						
				 
		
				
						
								
										
												4、保存脚本:
								
						
				
		
		
				
						
						
				 
		
				
						    SQL> save a          --自动存档为a.sql 保存在C:\Documents and Settings\wangxiaoqi
				
		
		
				
						    SQL> save D:\a       --保存到D:\a.sql
				
		
		
				
						
						
				 
		
				
						
								
										
												5、导入脚本:
								
						
				
		
		
				
						
						
				 
		
				
						    SQL> get D:\a
				
		
		
				
						
						
				 
		
				
						
								
										
												6、显示一个表结构:
								
						
				
		
		
				
						
						
				 
		
				
						    SQL> desc tab        --如果tab不是表,则只显示其类型和名字
				
		
		
				
						
						
				 
		
				
						
								
										
												7、保存所有输入:
								
						
				
		
		
				
						
						
				 
		
				
						    SQL> spool D:\xxx    --建立一个xxx.LST文件
				
		
		
				
						    SQL> spool           --显示当前spool状态
				
		
		
				
						    SQL> select * from dual;
				
		
		
				
						    SQL> spool off       --结束录入
				
		
		
				
						    
				
		
		
				
						
								
										
												
														8、执行过程
										
								
						
				
				
						
								
										    SQL> execute
										 a;
								
						
				
				
						
								
								
						 
				
						
								
										
												
														9、增加页眉和页脚:
										
								
						
				
				
						
								
								
						 
				
						
								    SQL> TTITLE abc      --添加页眉“abc”
						
				
				
						
								    SQL> BTITLE def      --添加页脚“def”
						
				
				
						
								    SQL> TTITLE OFF      --取消页眉显示
						
				
				
						
								
								
						 
				
						
								
								
						 
		 
		
				
						
						
				 
		
				
						
								三、COLUMN[COL]命令修改字段属性:
						
				
		
		
				
						
						
				 
		
				
						
								
										    可以修改的属性有:
						
				
		
		
				
						
								
										
												
														    ALI[AS] alias
    CLE[AR] 
    FOLD_A[FTER] 
    FOLD_B[EFORE] 
    FOR[MAT] format 
    HEA[DING] text 
    JUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]} 
    LIKE { expr|alias} 
										
								
								    NEWL[INE] 
    NEW_V[ALUE] variable 
    NOPRI[NT]|PRI[NT] 
    NUL[L] text 
    OLD_V[ALUE] variable 
    ON|OFF 
    WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]
						
				
		
		
				
						
						
				
				
						
								
										    注:若不同表的同列名,会一起改掉!
								
						
				
		
		
				
						
						
				 
		
				
						
								
										
												1、HEADING--改变字段名
								
						
				
		
		
				
						
						
				 
		
				
						    SQL> COLUMN id HEADING 'XX|YY'  --使用'|'可将列名显示为两行
				
		
		
				
						
						
				 
		
				
						
								
										
												2、FORMAT--改变字符长度 & 格式化数值
								
						
				
		
		
				
						
						
				 
		
				
						    SQL> COLUMN id FORMAT a20       --此字段长20个字符,只能针对字符,若为数字则无法正常显示
				
		
		
				
						    SQL> COLUMN id FORMAT $999.00   --前缀$,小数点前3位,小数点后2位四舍五入
				
		
		
				
						
						
				 
		
				
						
								
										
												3、JUSTIFY--改变字段名显示位置
								
						
				
		
		
				
						
						
				 
		
				
						
								    SQL> COLUMN id JUSTIFY center   --居中显示,默认的都是靠右(r
								)显示
						
				
		
		
				
						
						
				 
		
				
						
								
										
												4、NOPRINT--不显示
								
						
				
		
		
				
						
						
				 
		
				
						    SQL> COLUMN id NOPRINT          --不显示出来,可用PRINT设置回来
				
		
		
				
						
						
				 
		
				
						
								
										
												5、NULL--设置NULL值显示
								
						
				
		
		
				
						
						
				 
		
				
						    SQL> COLUMN COMM NULL 0.00      --将NULL值设置位0.00  注意必须加上COMM  注:不起作用。   
				
		
		
				
						
						
				 
		
				
						
								
										
												6、WRAPPED--设置回绕方式
								
						
				
		
		
				
						
						
				 
		
				
						    SQL> COLUMN id FORMAT a5        --设置长度为5
				
		
		
				
						    SQL> COLUMN id WRAPPED         --表示直接按长度回绕
				
		
		
				
						    SQL> COLUMN id WORD_WRAPPED   --按单词回绕
				
		
		
				
						    SQL> COLUMN id TRUNCATED      --直接按长度截断
				
		
		
				
						
						
				 
		
				
						
								
										
												7、COLUMN--显示当前列所有属性
								
						
				
		
		
				
						
						
				 
		
				
						    SQL> COLUMN id                  --后面不加列名时显示所有的COLUMN
				
		
		
				
						
						
				 
		
				
						
								
										
												8、OFF|ON--设置某一字段关闭
								
						
				
		
		
				
						
						
				 
		
				
						    SQL> COLUMN id OFF
				
		
		
				
						
						
				 
		
				
						
								
										
												9、CLEAR--清空所有字段属性
								
						
				
		
		
				
						
						
				 
		
				
						    SQL> CLEAR COLUMNS
				
		
		
				
						
						
				 
		
				
						
						
				 
		
				
						
						
				 
		
				
						
								四、SQL*Plus的系统参数:
						
				
		
		
				
						
						
				 
		
				
						    show all         --显示所有系统参数的当前值
				
		
		
				
						    show [参数]      --显示某个系统参数值
				
		
		
				
						    set  [参数][值]  --设置系统参数值
				
		
		
				
						
						
				 
		
				
						    appinfo is OFF and set to "SQL*Plus"
    arraysize 15
				
		
		
				
						
								
										
												    SQL*Plus一次从oracle获取的行数,设置越大可提高效率,但是对内存有要求,1000以上效果不大
												
    autocommit OFF
								
						
				
		
		
				
						
								
										
												    针对session的自动提交 
												
														SQL> SET AUTO[COMMIT] {ON|OFF|IMM[EDIATE]| n}   --有IMM[EDIATE]则无需再ON
												
    autoprint OFF
    autorecovery OFF
    autotrace OFF
								
						
				
		
		
				
						
								
										
												    设置可以对执行的SQL进行分析 SQL> SET AUTOTRACE ON
												
    blockterminator "." (hex 2e)
    btitle OFF and is the first few characters of the next SELECT statement
    cmdsep OFF
    colsep " "
								
						
				
		
		
				
						
								
										
												    设置列与列之间的分割符号 SQL> SET COLSEP '|'
												
    compatibility version NATIVE
								
						
				
		
		
				
						
								
										
												    数据库版本,NATIVE为默认,可制定V6,V7,V8
												
    concat "." (hex 2e)
    copycommit 0
    COPYTYPECHECK is ON
    define "&" (hex 26)
								
						
				
		
		
				
						
								
										
												    替换变量时所使用的字符
												
    describe DEPTH 1 LINENUM OFF INDENT ON
    echo OFF
								
						
				
		
		
				
						
								    是否显示执行代码 
								
										
												
														
																SQL> SET ECHO {ON|OFF}
														
														
												    editfile "afiedt.buf"
    embedded OFF
    escape OFF
    FEEDBACK ON for 6 or more rows
								
						
				
		
		
				
						
								
										
												    查询、修改时所影响的行数
												
														SQL> SET FEED[BACK] {6|n|ON|OFF}
												
												
    flagger OFF
    flush ON
    heading ON
								
						
				
		
		
				
						
								
										
												    是否显示列标题 
												
														SQL> SET HEA[DING] {ON|OFF}
												
												
    headsep "|" (hex 7c)
    instance "local"
    linesize 100
								
						
				
		
		
				
						
								
										
												    设置一行可容纳的字符数 
												
														SQL> SET LIN[ESIZE] {80|n}
												
										
								
						
				
				
						
								
								    lno 8
    loboffset 1
    logsource ""
    long 5000
    longchunksize 80
    markup HTML OFF ...
    newpage 1
						
				
		
		
				
						    页与页之间的分隔符 
				
				
						
								
										
												
														SQL> SET NEWP[AGE] {1|n|NONE}
														
												
										
								
								
										              当set newpage 0 时,会在每页的开头有一个小的黑方框。 
              当set newpage n 时,会在页和页之间隔着n个空行。 
              当set newpage none 时,会在页和页之间没有任何间隔。
								
						
				
		
		
				
						
								
								
								    null ""
						
				
		
		
				
						
								
										
												    设置null值  
												
														SQL> SET NULL 0.00
												
										
								
						
				
		
		
				
						
								
										
												
														                     但是此值显示出来后必为字符型
												
												
    numformat ""
    numwidth 10
								
						
				
		
		
				
						    设置number类型的长度限制 SQL> SET NUM[WIDTH] 16
				
				
						
								
								    pagesize 9999
						
				
		
		
				
						
								
										
												    一页显示多少行 
												
														SQL> SET PAGES[IZE] {24|n}
												
										
								
						
				
		
		
				
						
								
										
												
														                     当设置为0时,则所有行显示在一页中,并且不显示标题行
												
												
    PAUSE is OFF
    pno 1
    recsep WRAP
    recsepchar " " (hex 20)
    release 1002000100
    repfooter OFF and is NULL
    repheader OFF and is NULL
    serveroutput ON SIZE 1000000 FORMAT WORD_WRAPPED
								
						
				
		
		
				
						
								    输出DBMS.OUTPUT时是否显示 
								
										
												
														SQL> SET SERVEROUT[PUT] {ON|OFF} [size n]
												
												
    shiftinout INVISIBLE
    showmode OFF
    spool OFF
    sqlblanklines OFF
    sqlcase MIXED
    sqlcode 0
    sqlcontinue "> "
    sqlnumber ON
    sqlpluscompatibility 10.2.0
    sqlprefix "#" (hex 23)
    sqlprompt "
								
						
						
								wangxiaoqi@DODO
						
						> "
    sqlterminator ";" (hex 3b)
    suffix "sql"
    tab ON
    termout ON
				
		 
		
				
						
								
										
												
														
																    是否显示输出内容,例如spool输出  
																
																		SQL> SET TERM[OUT] {ON|OFF}
																
														
												
												
    timing OFF
								
						
				
		
		
				
						
								
										
												    SQL语句执行花费时间显示  
												
														set TIMING  {ON|OFF}
												
												
    trimout ON
								
						
				
		
		
				
						
								
										
												    标准输出中每行最后的空格是否去掉 
												
														SQL> SET TRIMS[OUT] {ON|OFF}
												
												
    trimspool ON
								
						
				
		
		
				
						
								
										
												
														
																    spool标准输出中每行最后的空格是否去掉 
																
																		SQL> SET TRIMS[OUT] {ON|OFF}
																
														
												
												
    ttitle OFF and is the first few characters of the next SELECT statement
    underline "-" (hex 2d)
    USER is "WANGXIAOQI"
    verify ON
    wrap : lines will be wrapped
								
						
				
		
		
				
						
								
										
												    当长度超过时是否回绕  
												
														SQL> SET WRA[P] {ON|OFF}   --基本上都要ON
												
										
								
						
				
		
		
				
						
						
				 
		
				
						
						
				 
		
				
						
						
				 
		
				
						
								五、一些常用的小操作:
				
		
		
				
				 
		
				    show user                      --查看当前登录用户
		
		
				
						    show errors                    --显示错误信息
				
		
		
				
				
				
				
				
						    show rel[ease]                 --显示版本
				
		
		
				
				
				
				
				
						    show SGA                       --显示SGA
				
		
		
				
				
				
				
				    set time on                    --前端始终显示时间
    select name from v$database;   --查看当前所在数据库
    select * from v$instance;      --查看所有数据库实例(似乎没什么用)
    select * from V_$PWFILE_USERS; --查看那些用户有SYSDBA/SYSOPER权限