您的位置:首页技术文章
文章详情页

Oracle的SQL*PLUS命令的使用大全

【字号: 日期:2023-11-26 18:22:08浏览:32作者:猪猪
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>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] [{ columneXPr} [ 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 { expralias}NEWL[INE]NEW_V[ALUE] variableNOPRI[NT]PRI[NT]NUL[L] textOLD_V[ALUE] variableONOFFWRA[PPED]WOR[D_WRAPPED]TRU[NCATED]1). 改变缺省的列标题COLUMN column_name HEADING column_headingFor example:Sql>select * from dept;DEPTNO DNAMELOC---------- ---------------------------- ---------10 ACCOUNTING  NEW YORKsql>col LOC heading locationsql>select * from dept;DEPTNO DNAMElocation--------- ---------------------------- -----------10 ACCOUNTING  NEW YORK2). 将列名ENAME改为新列名EMPLOYEE NAME并将新列名放在两行上:Sql>select * from empDepartment name  Salary---------- ---------- ----------10 aaa11SQL> COLUMN ENAME HEADING ’EmployeeName’Sql>select * from empEmployeeDepartment name  Salary---------- ---------- ----------10 aaa11note: 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 ENAMEJOB----------  ---------------------------------------- ---------7369 SMITHCLERK7499 ALLENSALESMAN7521 WARDSALESMAN4). 设置列标题的对齐方式JUS[TIFY] {L[EFT]C[ENTER]C[ENTRE]R[IGHT]} SQL> col ename justify centerSQL> /EMPNO  ENAME  JOB----------  ----------------------------------------  ---------7369 SMITHCLERK7499 ALLENSALESMAN7521 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 NameSalaryCommission---------- ---------- --------- ----------30 ALLEN$1,6003007). 显示列值时,假如列值为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  CLARK2450MILLER 130020SMITH  800ADAMS  11009. 在上面屏蔽掉一个列中显示的相同的值的显示中,每当列值变化时在值变化之前插入n个空行。BREAK ON break_column SKIP nSQL> BREAK ON DEPTNO SKIP 1SQL> /DEPTNO ENAME SAL---------- ----------- ---------10 CLARK 2450MILLER 130020 SMITH 800ADAMS 110010. 显示对BREAK的设置SQL> BREAK11. 删除6、7的设置SQL> CLEAR BREAKS12. Set 命令:该命令包含许多子命令:SET system_variable valuesystem_variable value 可以是如下的子句之一:APPI[NFO]{ONOFFtext}ARRAY[SIZE] {15n}AUTO[COMMIT]{ONOFFIMM[EDIATE]n}AUTOP[RINT] {ONOFF}AUTORECOVERY [ONOFF]AUTOT[RACE] {ONOFFTRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]]BLO[CKTERMINATOR] {.c}CMDS[EP] {;cONOFF}COLSEP {_text}COM[PATIBILITY]{V7V8NATIVE}CON[CAT] {.cONOFF}COPYC[OMMIT] {0n}COPYTYPECHECK {ONOFF}DEF[INE] {&cONOFF}DESCRIBE [DEPTH {1nALL}][LINENUM {ONOFF}][INDENT {ONOFF}]ECHO {ONOFF}EDITF[ILE] file_name[.ext]EMB[EDDED] {ONOFF}ESC[APE] {cONOFF}FEED[BACK] {6nONOFF}FLAGGER {OFFENTRY INTERMED[IATE]FULL}FLU[SH] {ONOFF}HEA[DING] {ONOFF}HEADS[EP] {cONOFF} INSTANCE [instance_pathLOCAL]LIN[ESIZE] {80n}LOBOF[FSET] {n1}LOGSOURCE [pathname]LONG {80n}LONGC[HUNKSIZE] {80n}MARK[UP] Html [ONOFF] [HEAD text] [BODY text] [ENTMAP {ONOFF}] [SPOOL{ONOFF}] [PRE[FORMAT] {ONOFF}]NEWP[AGE] {1nNONE}NULL textNUMF[ORMAT] formatNUM[WIDTH] {10n}PAGES[IZE] {24n}PAU[SE] {ONOFFtext}RECSEP {WR[APPED]EA[CH]OFF}RECSEPCHAR {_c}SERVEROUT[PUT] {ONOFF} [SIZE n] [FOR[MAT] {WRA[PPED]WOR[D_WRAPPED]TRU[NCATED]}]SHIFT[INOUT] {VIS[IBLE]INV[ISIBLE]}SHOW[MODE] {ONOFF}SQLBL[ANKLINES] {ONOFF}SQLC[ASE] {MIX[ED]LO[WER]UP[PER]}SQLCO[NTINUE] {> text}SQLN[UMBER] {ONOFF}SQLPRE[FIX] {#c}SQLP[ROMPT] {SQL>text}SQLT[ERMINATOR] {;cONOFF}SUF[FIX] {SQLtext}TAB {ONOFF}TERM[OUT] {ONOFF}TI[ME] {ONOFF}TIM
标签: Oracle 数据库