SQLplus编辑器的编辑命令
- 格式:ppt
- 大小:141.00 KB
- 文档页数:27
常见的sqlplus命令 SQL*Plus 命令1. ACCEPT 接受和定义宏变量2. APPEND 在表的末尾添加数据3. ARCHIVE LOG 归档日志4. ARRAYSIZE 修改批处理提取的数组对大5. ATTRIBUTE 设定属性6. BREAK 设定分组7. CLEAR 清除缓冲区8. COLUMN 格式化显示表的列9. COMPUTE 显示计算的值10. CONNECT 连接数据库11. COPY 复制表中的数据12. DEFINE 定义和接受变量值13. DESCRIBE 显示表和列的定义14. DISCONNECT 断开数据库15. EDIT 用外部程序编辑SQL语句16. EXECUTE 执行存储在缓冲区中的命令17. EXIT 退出SQL*Plus18. GET 读取文件中的SQL语句并放到缓冲区中19. HELP 显示SQL*Plus 命令的帮助信息20. HOST 在主机操作系统中执行命令21. INPUT 读取文件中的SQL语句并放到缓冲区中22. LIST 显示缓冲区中的SQL语句23. PAUSE 暂停屏幕输出24. PRINT 显示查询结果的若干的行25. PROMPT 显示提示符26. RECOVER 恢复数据库27. REMARK 在SQL语句里注释28. REPFOOTER 先SET REPFOOTER OFF 关闭,SET REPFOOTER ON 打开29. REPHEADER 设定显示报表头30. RUN 执行缓冲区中的所有SQL语句31. SAVE 保存缓冲区中的SQL语句32. SET 设定SQL*Plus环境33. SHOW 显示变量的值34. SHUTDOWN 关闭数据库连接35. SPOOL 把屏幕的输出输出文件36. START 执行文件中的SQL语句37. STORE 把屏幕的输出存文件38. TTITLE 设定报表标题39. UNDEFINE 撤销变量定义40. VARIABLE 定义输入的变量41. WHENEVER 捕获错误和警告信息。
sqlplus操作命令1.Sqlplus是⼀个命令⾏式的交互式数据库管理⼯具。
(1) 启动sqlplus连接数据库以sys登录⽤户名:sys⼝令:你的password as sysdba;再登录scott⽤户alter USER c##scott IDENTIFIED BY tiger account unlock; //⽤户解锁并修改密码update user$ set name ='SCOTT' where name ='C##SCOTT'; //修改⽤户名为scottconn scott/tiger; //连接2.Sqlplus可以运⾏SQL语句3.sqlplus相关命令①格式修改命令设置列宽COLUMN ename FROMAT A10;COL job FORMAT A10;设置每⾏显⽰的长度SET LINESIZE 200;设置每次显⽰的⾏数SET PAGESIZE 20;帮助Help index ---列出所有sqlplus命令查询表和视图的结构 DescribeDESC语法:DESC [RIBE] objectselect eno,#desc emp---继续写命令ename from emp;②⽂件操作命令LIST 查看缓冲区代码RUN 或 / 执⾏缓冲区代码Ed ⽤记事本打开缓冲区代码CLEAR BUFFER 清除缓冲区代码SPOOL 屏幕内容保存在⽂件中spoolyour codespool offSAVE 缓冲区的内容存⽂件SAV[E] file_namesav D:\emp.sqlGET 将⽂件中的内容调⼊缓冲区GET[FILE]file_name[.ext][LIST|NOLIST]例如GET c:\emp.sqlSTART 或@ 执⾏⽂件STA[RT] {url|file_name.[ext]}EXIT 断开数据库连接。
基本的sqlplus命令有些东西看起来很简单,可是时间长了以后,我们就会忘的⼀⼲⼆净,所以我们平时做⼀些简短的笔记还是很有效的。
以下是⼀些sqlpus命令remark 注释⾏set headsep 标题分隔符ttitle 头标题btitle 尾标题column 列标题及列格式设定break on 报表各部分间插⼊空格或将⼩计和总计断开compute sum 计算⼩计set linesize ⾏的最⼤字符数set pagesize 页中的⾏数set newpage 页间的空⾏数spool 将报表写⼊到⽂件/**/ 多⾏注释-- 单⾏注释set pause 页间停顿save 将建⽴的SQL查询存诸到⽂件host 执⾏外部命令start或@ 执⾏sqlplus脚本edit 进⼊⾃定义的编辑器define_editor 定义编缉器exit或quit 退出sqlplus⼀个例⼦rem bookshelf activity reportset headsep !ttitle 'Checkout Log for 1/1/02-3/31/2'btitle 'from the BookSelf'column Name format a20column Title format a20 word_wrappedcolumn DaysOut format 999.99column DaysOut heading 'Day!Out'break on Name skip 1 on reportcompute avg of DaysOut on Namecompute avg of DaysOut on reportset linesize 80set pagesize 60set newpage 0set feedback offspool activity.lstselect Name,Title,CheckoutDate,ReturnedDate,ReturnedDate-CheckoutDate as DayOutfrom BOOKSELF_CHECKOUTorder by Name,CheckoutDate;spool off这个脚本的基本结构:注释标题设定列标题及列格式设定⼩计及总计设定各部分间隔设定页⾯设定打印到⽂件选择数据alter procedure 编辑存储过程。
.SQLPLUS命令的使用大全1. 执行一个SQL脚本文件SQL>start file_nameSQL>@ file_name我们可以将多条sql语句保存在一个文本文件中,这样当要执行这个文件中的所有的sql语句时,用上面的任一命令即可,这类似于dos中的批处理。
2. 对当前的输入进行编辑SQL>edit3. 重新运行上一次运行的sql语句SQL>/4. 将显示的内容输出到指定文件SQL> SPOOL file_name在屏幕上的所有内容都包含在该文件中,包括你输入的sql语句。
5. 关闭spool输出SQL> SPOOL OFF只有关闭spool输出,才会在输出文件中看到输出的内容。
6.显示一个表的结构SQL> desc table_name7. COL命令:主要格式化列的显示形式。
该命令有许多选项,具体如下:COL[UMN] [{ column|expr} [ option ...]]Option选项可以是如下的子句:ALI[AS] aliasCLE[AR]FOLD_A[FTER]FOLD_B[EFORE]FOR[MAT] formatHEA[DING] textJUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}LIKE { expr|alias}NEWL[INE]NEW_V[ALUE] variableNOPRI[NT]|PRI[NT]NUL[L] text.OLD_V[ALUE] variableON|OFFWRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]1). 改变缺省的列标题COLUMN column_name HEADING column_headingFor example:Sql>select * from dept;DEPTNO DNAME LOC---------- ---------------------------- ---------10 ACCOUNTING NEW YORKsql>col LOC heading locationsql>select * from dept;DEPTNO DNAME location--------- ---------------------------- -----------10 ACCOUNTING NEW YORK2). 将列名ENAME改为新列名EMPLOYEE NAME并将新列名放在两行上:Sql>select * from empDepartment name Salary---------- ---------- ----------10 aaa 11SQL> COLUMN ENAME HEADING ’Employee|Name’Sql>select * from empEmployeeDepartment name Salary---------- ---------- ----------10 aaa 11note: the col heading turn into two lines from one line.3). 改变列的显示长度:FOR[MAT] formatSql>select empno,ename,job from emp;EMPNO ENAME JOB---------- ---------- ---------7369 SMITH CLERK7499 ALLEN SALESMAN7521 WARD SALESMANSql> col ename format a40EMPNO ENAME JOB---------- ---------------------------------------- ---------7369 SMITH CLERK7499 ALLEN SALESMAN7521 WARD SALESMAN.4). 设置列标题的对齐方式JUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}SQL> col ename justify centerSQL> /EMPNO ENAME JOB---------- ---------------------------------------- ---------7369 SMITH CLERK7499 ALLEN SALESMAN7521 WARD SALESMAN对于NUMBER型的列,列标题缺省在右边,其它类型的列标题缺省在左边5). 不让一个列显示在屏幕上NOPRI[NT]|PRI[NT]SQL> col job noprintSQL> /EMPNO ENAME---------- ----------------------------------------7369 SMITH7499 ALLEN7521 WARD6). 格式化NUMBER类型列的显示:SQL> COLUMN SAL FORMAT $99,990SQL> /EmployeeDepartment Name Salary Commission---------- ---------- --------- ----------30 ALLEN $1,600 3007). 显示列值时,如果列值为NULL值,用text值代替NULL值COMM NUL[L] textSQL>COL COMM NUL[L] text8). 设置一个列的回绕方式WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]COL1--------------------HOW ARE YOU?SQL>COL COL1 FORMAT A5SQL>COL COL1 WRAPPEDCOL1-----.HOW ARE YOU?SQL> COL COL1 WORD_WRAPPEDCOL1-----HOWAREYOU?SQL> COL COL1 WORD_WRAPPEDCOL1-----HOW A9). 显示列的当前的显示属性值SQL> COLUMN column_name10). 将所有列的显示属性设为缺省值SQL> CLEAR COLUMNS8. 屏蔽掉一个列中显示的相同的值BREAK ON break_columnSQL> BREAK ON DEPTNOSQL> SELECT DEPTNO, ENAME, SALFROM EMPWHERE SAL < 2500ORDER BY DEPTNO;DEPTNO ENAME SAL---------- ----------- ---------10 CLARK 2450MILLER 130020 SMITH 800ADAMS 11009. 在上面屏蔽掉一个列中显示的相同的值的显示中,每当列值变化时在值变化之前插入n 个空行。
sqlplus命令⼤全⼀、ORACLE的启动和关闭1、在单机环境下要想启动或关闭ORACLE系统必须⾸先切换到ORACLE⽤户,如下su - oraclea、启动ORACLE系统oracle>svrmgrlSVRMGR>connect internalSVRMGR>startupSVRMGR>quitb、关闭ORACLE系统oracle>svrmgrlSVRMGR>connect internalSVRMGR>shutdownSVRMGR>quit启动oracle9i数据库命令:$ sqlplus /nologSQL*Plus: Release 9.2.0.1.0 - Production on Fri Oct 31 13:53:53 2003Copyright (c) 1982, 2002, Oracle Corporation.All rights reserved.SQL> connect / as sysdbaConnected to an idle instance.SQL> startup^CSQL> startupORACLE instance started.2、在双机环境下要想启动或关闭ORACLE系统必须⾸先切换到root⽤户,如下su - roota、启动ORACLE系统hareg -y oracleb、关闭ORACLE系统hareg -n oracleOracle数据库有哪⼏种启动⽅式说明:有以下⼏种启动⽅式:1、startup nomount⾮安装启动,这种⽅式启动下可执⾏:重建控制⽂件、重建数据库读取init.ora⽂件,启动instance,即启动SGA和后台进程,这种启动只需要init.ora⽂件。
2、startup mount dbname安装启动,这种⽅式启动下可执⾏:数据库⽇志归档、数据库介质恢复、使数据⽂件联机或脱机,重新定位数据⽂件、重做⽇志⽂件。
帮助命令he l p为了获取SQ L*PLUS命令的帮助,输入help和命令,就可以查询到命令的相关帮助信息。
退出SQL*PLUS命令:exit或者q uit命令不再需要使用SQL*PLUS命令时,录入exit或者qui t命令直接退出。
3、输入、编辑命令(ed 、run / )在SQL*PLUS命令行下输入某些内容,按回车键,那么此时在S QL缓冲区中就放有该输入的内容。
数据ed[it]命令,按回车键,SQL*PLUS 将保存于SQ L缓冲区中的内容保存在默认文件a fie d t.buf中,打开后在文本中输入命令,然后保存在退出编辑,将返回到SQ L*PLUS中,输入命令run(或者/),按回车,将运行录入的命令.。
另外,如果要清楚屏幕及缓冲区的内容,输入命令clear screen。
4、保存文件命令-SPOOL在需要将命令运行情况及其结果发送到一个文件中保存起来,可以使用SP OOL filena me命令建立一个就假脱机文件,例如SPOO L e:\mysql\spooln a me,将会在e:\mysql目录中建立一个名为sp oolna me.LST的假脱机文件。
5、SPOOLOU T命令,将SQL语句及输出结果发送到假脱机文件中。
6、SPOOLOFF命令,如果不再需要输出到假脱机文件中,可以使用SP OOL OFF命令。
运行命令在SQL*PLUS 中,可以使用三种方式运行S Q L语句和P L/SQL快,分别是:命令行方式一、SQL缓冲区方式脚本文件方式。
1.命令行方式1)以命令方行式运行SQL语句以命令行方式运行SQL语句,只需要在输入完SQL语句之后,输入分号(;),或者在新的一行输入前斜线(/),按回车键就可以显示结果2)以命令行方式执行PL/SQL块只需要在输入完PL/SQL块之后,在新的一行输入前斜线(/),然后按回车键就显示出结果。
SQL*Plus命令的结尾处可以不使用分号(;)。
与SQL语句不同的是SQL*Plus命令是可以缩写的,例如:describe命令就可以缩写为desc SQL*Plus命令不被存入SQL缓冲区下面的命令是SQL*Plus的基本命令,所有操作系统上运行的Oracle都支持这些命令。
1.desc[ribe]命令显示表结构desc empdescribe emp 两个输出结果一致2.set line[size] {80|n}命令,其中n为自然数,80为默认值。
该命令是将显示屏的显示输出置为n个字符宽,80个字符是该命令的默认显示宽度。
默认情况下显示结果:执行命令:执行命令后显示结果:3.改正SQL语句中错误的命令例:输出结果:当出现上面的错误时,我们就可以使用下面命令修改SQL语句。
(1)L命令:显示SQL缓冲区中的内容(2)n text 命令:修改出错的SQL语句,其中,n为SQL缓冲区中的SQL语句的行号,text为替代出错部分的SQL语句。
所以,此处应该执行下面的语句:运行l命令,检查是否修改正确:注:* 代表当前行(3)/(run) 命令:重新运行SQL缓冲区中的SQL语句(4)n 命令:将SQL语句中的第n行设置为当前行结果:将第一行设置为当前行(5)A[ppend] 命令:附加命令。
添加SQL语句结果:添加了列deptno运行l命令,检查是否修改正确:(6)DEL n 命令:删除SQL缓冲区中第n行。
如果没有指定n就是删除当前行。
同时也可以使用“DEL m n ”命令删除从m行到n行的所有内容。
运行l命令,检查是否删除成功:(7)C[hange]/原文/新的正文命令:修改SQL缓冲区中的语句。
该命令是在当前行中用“新的正文”替代“原文”4.SAVE命令:生成脚本文件,即将当前缓冲区中的内容保存到文件。
save命令语法如下:sav[e] [file] file_name [cre[ate]] | rep[lace] | app[end]]●file_name 表示文件名●create 表示创建一个file_name文件,并将缓冲区中的内容保存到该文件中。
sqlplus基本命令总结1、启动sqlplus:sqlplus [username]/[password][@server]例:C:\>sqlplus system/system@demoC:\>sqlplus /nolog2、连接命令connect [username]/[password];DISCONNECT //断开连接不退出passwordexit/quit //断开并退出sqlplus例:SQL> conn system/system@demoConnected.SQL> PASSWORD //相当于alter USER SYSTEM IDENTIFIED BY SYS; Changing password for SYSTEMOld password: //输入原密码systemNew password: //输入新密码sysRetype new password:Password changedSQL> conn system/sys@demoConnected.SQL> disconn //断开连接Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production SQL> quit //退出C:\>3、编辑命令List:列出缓冲区的sql命令Append:在缓冲区当前行添加内容Change 字符1 字符2 :改变缓冲区的字符input:在当前行后增加一行n:把第n行设定为当前行Edit:编辑缓冲区run /:运行缓冲区的命令-- (a)ppend添加文本到缓冲区当前行尾sql> select object_id from t where rownum<=5;OBJECT_ID----------2046281529-- 前一条命令后加order by 1 (注:a后面跟2个空格)sql> a order by 1;1* select object_id from t where rownum<=5 order by 1sql> r1* select object_id from t where rownum<=5 order by 1OBJECT_ID----------1520282946-- (c)hange/old/new 在当前行用新的文本替换旧的文本c/*/tname -- 将上条命令中的object_id替换成ownersql> c/object_id/owner1* select owner from t where rownum<=5 order by 1-- (c)hange/text从当前行删除文本c/tab-- 删除order by 1sql> c/order by 11* select owner from t where rownum<=5sql> select owner2 from t3 where rownum=14 order by 1;OWNER------------------------------SYS-- del 删除当前行-- 当前行为第4行sql> delsql> l1 select owner2 from t3* where rownum=1-- del n删除第n行-- 删除第2行sql> del 2sql> l1 select owner2* where rownum=1-- (i)nput 文本在当前行之后添加一行-- 每1行后增加order by 1(l)ist显示缓冲区中所有行(l)ist n显示缓冲区中第n 行,设置n行为当前行,*标志(l)ist m n显示缓冲区中m 到n 行(r)un执行当前缓冲区的命令/执行当前缓冲区的命令run与/区别:run显示buffer的命令,/则不然。