Oracle基础知识-sqlplus使用

简介:

Oracle的sql*plus是与oracle进行交互的客户端工具。

在sql*plus中,可以运行sql*plus命令与sql*plus语句。

我们通常所说的DML(数据操纵语言)、DDL(数据定义语言)、DCL(数据库控制语言)都是sql*plus语句,它们执行完后,都可以保存在一个被称为sql buffer的内存区域中,并且只能保存一条最近执行的sql语句,我们可以对保存在sql buffer中的sql 语句进行修改,然后再次执行,sql*plus一般都与数据库打交道。
除了sql*plus语句,在sql*plus中执行的其它语句我们称之为sql*plus命令。它们执行完后,不保存在sql buffer的内存区域中,它们一般用来对输出的结果进行格式化显示,以便于制作报表。
  下面就介绍一下一些常用的sql*plus命令:
1. 执行一个SQL脚本文件

[sql] view plaincopyprint?

  1. SQL>start file_name
  2. SQL>@ file_name
我们可以将多条sql语句保存在一个文本文件中,这样当要执行这个文件中的所有的sql语句时,用上面的任一命令即可,这类似于dos中的批处理。
2. 对当前的输入进行编辑

[sql] view plaincopyprint?

  1. SQL>edit
3. 重新运行上一次运行的sql语句

[sql] view plaincopyprint?

  1. SQL>/
4. 将显示的内容输出到指定文件

[sql] view plaincopyprint?

  1. SQL> SPOOL file_name
在屏幕上的所有内容都包含在该文件中,包括你输入的sql语句。
5. 关闭spool输出

[sql] view plaincopyprint?

  1. SQL> SPOOL OFF
只有关闭spool输出,才会在输出文件中看到输出的内容。
6.显示一个表的结构

[sql] view plaincopyprint?

  1. SQL> desc table_name
7. COL命令
主要格式化列的显示形式。
  该命令有许多选项,具体如下:

[sql] view plaincopyprint?

  1. COL[UMN] [{ column|expr} [ option ...]]
Option选项可以是如下的子句:

[sql] view plaincopyprint?

  1. ALI[AS] alias
  2. CLE[AR]
  3. FOLD_A[FTER]
  4. FOLD_B[EFORE]
  5. FOR[MAT] format
  6. HEA[DING] text
  7. JUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}
  8. LIKE { expr|alias}
  9. NEWL[INE]
  10. NEW_V[ALUE] variable
  11. NOPRI[NT]|PRI[NT]
  12. NUL[L] text
  13. OLD_V[ALUE] variable
  14. ON|OFF
  15. WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]
1). 改变缺省的列标题

[sql] view plaincopyprint?

  1. COLUMN column_name HEADING column_heading
  2. r example:

[sql] view plaincopyprint?

  1. Sql>select * from dept;
  2. DEPTNO DNAME            LOC
  3. ---------- ---------------------------- ---------
  4. 10 ACCOUNTING          NEW YORK

[sql] view plaincopyprint?

  1. sql>col LOC heading location
  2. sql>select * from dept;
  3. DEPTNO DNAME         location
  4. --------- ---------------------------- -----------
  5. 10 ACCOUNTING  NEW YORK
2). 将列名ENAME改为新列名EMPLOYEE NAME并将新列名放在两行上:

[sql] view plaincopyprint?

  1. Sql>select * from emp
  2. Department name      Salary
  3. ---------- ---------- ----------
  4. 10 aaa       11

[sql] view plaincopyprint?

  1. SQL> COLUMN ENAME HEADING 'Employee|Name
  2. Sql>select * from emp
  3. Employee
  4. Department name      Salary
  5. ---------- ---------- ----------
  6. 10 aaa        11
  7. note: the col heading turn into two lines from one line.
3). 改变列的显示长度:

[sql] view plaincopyprint?

  1. FOR[MAT] format
  2. Sql>select empno,ename,job from emp;
  3. EMPNO ENAME   JOB
  4. ---------- ----------   ---------
  5. 7369 SMITH   CLERK
  6. 7499 ALLEN   SALESMAN
  7. 7521 WARD    SALESMAN

[sql] view plaincopyprint?

  1. Sql> col ename format a40
  2. EMPNO ENAME                  JOB
  3. ----------  ----------------------------------------     ---------
  4. 7369 SMITH                  CLERK
  5. 7499 ALLEN                  SALESMAN
  6. 7521 WARD                  SALESMAN
4). 设置列标题的对齐方式

[sql] view plaincopyprint?

  1. <span style="font-size:18px;">  JUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}
  2.   SQL> col ename justify center
  3.   SQL> /
  4.   EMPNO      ENAME          JOB
  5. ----------  ----------------------------------------    ---------
  6.   7369 SMITH                  CLERK
  7.   7499 ALLEN                  SALESMAN
  8.   7521 WARD                   SALESMAN</span>
对于NUMBER型的列,列标题缺省在右边,其它类型的列标题缺省在左边(手工码的,不对见谅)
5). 不让一个列显示在屏幕上

[sql] view plaincopyprint?

  1. NOPRI[NT]|PRI[NT]
  2.   SQL> col job noprint
  3.   SQL> /
  4.   EMPNO      ENAME
  5. ----------   ----------------------------------------
  6.   7369 SMITH
  7.   7499 ALLEN
  8.   7521 WARD
6). 格式化NUMBER类型列的显示:

[sql] view plaincopyprint?

  1. SQL> COLUMN SAL FORMAT $99,990
  2. SQL> /
  3. Employee
  4. Department Name    Salary  Commission
  5. ---------- ---------- --------- ----------
  6. 30     ALLEN    $1,600  300
7). 显示列值时,如果列值为NULL值,用text值代替NULL值

[sql] view plaincopyprint?

  1. COMM NUL[L] text
  2. L>COL COMM NUL[L] text
8). 设置一个列的回绕方式

[sql] view plaincopyprint?

  1. WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]
  2. COL1
  3. --------------------
  4. HOW ARE YOU?
  5. SQL>COL COL1 FORMAT A5
  6. SQL>COL COL1 WRAPPED
  7. COL1
  8. -----
  9. HOW A
  10. RE YO
  11. U?
  12. SQL> COL COL1 WORD_WRAPPED
  13. COL1
  14. -----
  15. HOW
  16. ARE
  17. YOU?
  18. SQL> COL COL1 WORD_WRAPPED
  19. COL1
  20. -----
  21. HOW A
9). 显示列的当前的显示属性值

[sql] view plaincopyprint?

  1. SQL> COLUMN column_name
10). 将所有列的显示属性设为缺省值

[delphi] view plaincopyprint?

  1. SQL> CLEAR COLUMNS
8. 屏蔽掉一个列中显示的相同的值

[sql] view plaincopyprint?

  1. <span style="font-size:18px;">  BREAK ON break_column
  2.   SQL> BREAK ON DEPTNO
  3.   SQL> SELECT DEPTNO, ENAME, SAL
  4. FROM EMP
  5. WHERE SAL < 2500
  6. ORDER BY DEPTNO;
  7.   DEPTNO   ENAME     SAL
  8. ---------- ----------- ---------
  9.   10      CLARK    2450
  10.    MILLER    1300
  11.   20      SMITH    800
  12.    ADAMS    1100</span>

9. 在上面屏蔽掉一个列中显示的相同的值的显示中,每当列值变化时在值变化之前插入n个空行。

[sql] view plaincopyprint?

  1. <span style="font-size:18px;">  BREAK ON break_column SKIP n
  2.   SQL> BREAK ON DEPTNO SKIP 1
  3.   SQL> /
  4.   DEPTNO ENAME SAL
  5. ---------- ----------- ---------
  6.   10 CLARK 2450
  7.    MILLER 1300
  8.   20 SMITH 800
  9.    ADAMS 1100
  10.   </span>


10. 显示对BREAK的设置

[sql] view plaincopyprint?

  1. SQL> BREAK

11. 删除6、7的设置

[sql] view plaincopyprint?

  1. SQL> CLEAR BREAKS

12. Set 命令:
该命令包含许多子命令:

[sql] view plaincopyprint?

  1. SET system_variable value
 system_variable value 可以是如下的子句之一:

[sql] view plaincopyprint?

  1. APPI[NFO]{ON|OFF|text}
  2. ARRAY[SIZE] {15|n}
  3. AUTO[COMMIT]{ON|OFF|IMM[EDIATE]|n}
  4. AUTOP[RINT] {ON|OFF}
  5. AUTORECOVERY [ON|OFF]
  6. AUTOT[RACE] {ON|OFF|TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]]
  7. BLO[CKTERMINATOR] {.|c}
  8. CMDS[EP] {;|c|ON|OFF}
  9. COLSEP {_|text}
  10. COM[PATIBILITY]{V7|V8|NATIVE}
  11. CON[CAT] {.|c|ON|OFF}
  12. COPYC[OMMIT] {0|n}
  13. COPYTYPECHECK {ON|OFF}
  14. DEF[INE] {&|c|ON|OFF}
  15. DESCRIBE [DEPTH {1|n|ALL}][LINENUM {ON|OFF}][INDENT {ON|OFF}]
  16. ECHO {ON|OFF}
  17. EDITF[ILE] file_name[.ext]
  18. EMB[EDDED] {ON|OFF}
  19. ESC[APE] {\|c|ON|OFF}
  20. FEED[BACK] {6|n|ON|OFF}
  21. FLAGGER {OFF|ENTRY |INTERMED[IATE]|FULL}
  22. FLU[SH] {ON|OFF}
  23. HEA[DING] {ON|OFF}
  24. HEADS[EP] {||c|ON|OFF}
  25. INSTANCE [instance_path|LOCAL]
  26. LIN[ESIZE] {80|n}
  27. LOBOF[FSET] {n|1}
  28. LOGSOURCE [pathname]
  29. LONG {80|n}
  30. LONGC[HUNKSIZE] {80|n}
  31. MARK[UP] HTML [ON|OFF] [HEAD text] [BODY text] [ENTMAP {ON|OFF}] [SPOOL
  32. {ON|OFF}] [PRE[FORMAT] {ON|OFF}]
  33. NEWP[AGE] {1|n|NONE}
  34. NULL text
  35. NUMF[ORMAT] format
  36. NUM[WIDTH] {10|n}
  37. PAGES[IZE] {24|n}
  38. PAU[SE] {ON|OFF|text}
  39. RECSEP {WR[APPED]|EA[CH]|OFF}
  40. RECSEPCHAR {_|c}
  41. SERVEROUT[PUT] {ON|OFF} [SIZE n] [FOR[MAT] {WRA[PPED]|WOR[D_
  42. WRAPPED]|TRU[NCATED]}]
  43. SHIFT[INOUT] {VIS[IBLE]|INV[ISIBLE]}
  44. SHOW[MODE] {ON|OFF}
  45. SQLBL[ANKLINES] {ON|OFF}
  46. SQLC[ASE] {MIX[ED]|LO[WER]|UP[PER]}
  47. SQLCO[NTINUE] {> |text}
  48. SQLN[UMBER] {ON|OFF}
  49. SQLPRE[FIX] {#|c}
  50. SQLP[ROMPT] {SQL>|text}
  51. SQLT[ERMINATOR] {;|c|ON|OFF}
  52. SUF[FIX] {SQL|text}
  53. TAB {ON|OFF}
  54. TERM[OUT] {ON|OFF}
  55. TI[ME] {ON|OFF}
  56. TIM

本文转自博客园xingoo的博客,原文链接:Oracle基础知识-sqlplus使用,如需转载请自行联系原博主。

相关文章
|
6月前
|
SQL Oracle Unix
Oracle sqlplus failed on AIX platform(/usr/lib/lib
Oracle sqlplus failed on AIX platform(/usr/lib/lib
34 1
|
6月前
|
SQL Oracle 关系型数据库
[已解决]使用sqlplus连接oracle,提示ORA-01034和ORA-27101
[已解决]使用sqlplus连接oracle,提示ORA-01034和ORA-27101
113 0
|
6月前
|
Oracle 关系型数据库
【Oracle】sqlplus 复制数据文件时出现拒绝访问
【Oracle】sqlplus 复制数据文件时出现拒绝访问
|
SQL Oracle 关系型数据库
Oracle数据库sqlplus命令行执行sql语句时,语句有中文报错解决
Oracle数据库sqlplus命令行执行sql语句时,语句有中文报错解决
100 0
|
SQL Oracle 关系型数据库
导出Oracle数据库sqlplus命令行查询的结果到文件
导出Oracle数据库sqlplus命令行查询的结果到文件
837 0
|
SQL Oracle 关系型数据库
【1024】图说Oracle基础知识
【1024】图说Oracle基础知识
98 0
|
SQL Oracle 关系型数据库
Oracle数据库管理员经典试题【Oracle基础知识测试】
Oracle数据库管理员经典试题【Oracle基础知识测试】
107 0
|
SQL Oracle 关系型数据库
oracle用SQL Plus输入命令为什么只显示2
oracle用SQL Plus输入命令为什么只显示2
621 0
oracle用SQL Plus输入命令为什么只显示2
|
SQL Oracle 安全
1 Oracle 基础知识
学习1 Oracle 基础知识。
197 0