Decode360's Blog

          業(yè)精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 ::  :: 管理 ::
            397 隨筆 :: 33 文章 :: 29 評(píng)論 :: 0 Trackbacks
          SQL Plus基礎(chǔ)命令學(xué)習(xí)筆記
          ?
          ?
          ??? 依舊是我當(dāng)年學(xué)習(xí)的筆記之一,這是在學(xué)習(xí)SQL Plus時(shí)記的。其實(shí)在SQL Plus下是有很多其他地方不能使用的功能和技巧的,不過(guò)這邊只是一個(gè)基本的應(yīng)用,不涉及一些復(fù)雜的東西。好,下面看一下內(nèi)容:
          ?
          ?
          一、使用cmd登錄:
          ???
          ??? 前提:PATH中設(shè)置%oracle_home%/bin
          ?
          ??? \admin> sqlplus
          ??? 輸入用戶(hù)名:sys
          ??? 輸入密碼:sys as sysdba(頁(yè)面中不顯示)
          ?
          ??? \admin> sqlplus sys/sys as sysdba
          ??? \admin> sqlplus /as sysdba
          ?
          ??? \admin> sqlplus /nolog
          ??? SQL> conn sys/sys as sysdba
          ?
          ??? 注:如果需要加鏈接字符串,則為sys/sys@DODO as sysdba
          ??????? 不填時(shí)默認(rèn)登錄本機(jī)數(shù)據(jù)庫(kù),若為遠(yuǎn)程鏈接則必須填寫(xiě)
          ?
          ?
          ?
          二、基本操作命令:
          ?
          1、執(zhí)行一個(gè)SQL腳本
          ?
          ??? SQL> start D:\a.sql
          ??? SQL> @ D:\a.sql
          ??? 注:若需要在一個(gè)腳本中調(diào)用另一個(gè)腳本,則使用 @@D:\a.sql
          ?
          2、重新執(zhí)行上一次命令
          ?
          ??? SQL> /?????????????? --也可使用 run/r 來(lái)替代執(zhí)行
          ?
          3、編輯腳本:
          ?
          ??? SQL> edit??????????? --編輯當(dāng)前輸入的文本(前1次執(zhí)行的部分)
          ??? SQL> edit D:\a.sql?? --編輯制定文檔
          ??? 注:在txt中編輯完成后保存,關(guān)閉即修改完成,使用“/”后運(yùn)行
          ?
          4、保存腳本:
          ?
          ??? SQL> save a????????? --自動(dòng)存檔為a.sql 保存在C:\Documents and Settings\wangxiaoqi
          ??? SQL> save D:\a?????? --保存到D:\a.sql
          ?
          5、導(dǎo)入腳本:
          ?
          ??? SQL> get D:\a
          ?
          6、顯示一個(gè)表結(jié)構(gòu):
          ?
          ??? SQL> desc tab??????? --如果tab不是表,則只顯示其類(lèi)型和名字
          ?
          7、保存所有輸入:
          ?
          ??? SQL> spool D:\xxx??? --建立一個(gè)xxx.LST文件
          ??? SQL> spool?????????? --顯示當(dāng)前spool狀態(tài)
          ??? SQL> select * from dual;
          ??? SQL> spool off?????? --結(jié)束錄入
          ???
          8、執(zhí)行過(guò)程
          ??? SQL> execute a;
          ?
          9、增加頁(yè)眉和頁(yè)腳:
          ?
          ??? SQL> TTITLE abc????? --添加頁(yè)眉“abc”
          ??? SQL> BTITLE def????? --添加頁(yè)腳“def”
          ??? SQL> TTITLE OFF????? --取消頁(yè)眉顯示
          ?
          ?
          ?
          三、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]
          ??? 注:若不同表的同列名,會(huì)一起改掉!
          ?
          1、HEADING--改變字段名
          ?
          ??? SQL> COLUMN id HEADING 'XX|YY'? --使用'|'可將列名顯示為兩行
          ?
          2、FORMAT--改變字符長(zhǎng)度 & 格式化數(shù)值
          ?
          ??? SQL> COLUMN id FORMAT a20?????? --此字段長(zhǎng)20個(gè)字符,只能針對(duì)字符,若為數(shù)字則無(wú)法正常顯示
          ??? SQL> COLUMN id FORMAT $999.00?? --前綴$,小數(shù)點(diǎn)前3位,小數(shù)點(diǎn)后2位四舍五入
          ?
          3、JUSTIFY--改變字段名顯示位置
          ?
          ??? SQL> COLUMN id JUSTIFY center?? --居中顯示,默認(rèn)的都是靠右(r )顯示
          ?
          4、NOPRINT--不顯示
          ?
          ??? SQL> COLUMN id NOPRINT????????? --不顯示出來(lái),可用PRINT設(shè)置回來(lái)
          ?
          5、NULL--設(shè)置NULL值顯示
          ?
          ??? SQL> COLUMN COMM NULL 0.00????? --將NULL值設(shè)置位0.00? 注意必須加上COMM? 注:不起作用。??
          ?
          6、WRAPPED--設(shè)置回繞方式
          ?
          ??? SQL> COLUMN id FORMAT a5??????? --設(shè)置長(zhǎng)度為5
          ??? SQL> COLUMN id WRAPPED???????? --表示直接按長(zhǎng)度回繞
          ??? SQL> COLUMN id WORD_WRAPPED?? --按單詞回繞
          ??? SQL> COLUMN id TRUNCATED????? --直接按長(zhǎng)度截?cái)?/font>
          ?
          7、COLUMN--顯示當(dāng)前列所有屬性
          ?
          ??? SQL> COLUMN id????????????????? --后面不加列名時(shí)顯示所有的COLUMN
          ?
          8、OFF|ON--設(shè)置某一字段關(guān)閉
          ?
          ??? SQL> COLUMN id OFF
          ?
          9、CLEAR--清空所有字段屬性
          ?
          ??? SQL> CLEAR COLUMNS
          ?
          ?
          ?
          四、SQL*Plus的系統(tǒng)參數(shù):
          ?
          ??? show all???????? --顯示所有系統(tǒng)參數(shù)的當(dāng)前值
          ??? show [參數(shù)]????? --顯示某個(gè)系統(tǒng)參數(shù)值
          ??? set? [參數(shù)][值]? --設(shè)置系統(tǒng)參數(shù)值
          ?
          ??? appinfo is OFF and set to "SQL*Plus"
          ??? arraysize 15
          ??? SQL*Plus一次從oracle獲取的行數(shù),設(shè)置越大可提高效率,但是對(duì)內(nèi)存有要求,1000以上效果不大
          ??? autocommit OFF
          ??? 針對(duì)session的自動(dòng)提交 SQL> SET AUTO[COMMIT] {ON|OFF|IMM[EDIATE]| n}?? --有IMM[EDIATE]則無(wú)需再ON
          ??? autoprint OFF
          ??? autorecovery OFF
          ??? autotrace OFF
          ??? 設(shè)置可以對(duì)執(zhí)行的SQL進(jìn)行分析 SQL> SET AUTOTRACE ON
          ??? blockterminator "." (hex 2e)
          ??? btitle OFF and is the first few characters of the next SELECT statement
          ??? cmdsep OFF
          ??? colsep " "
          ??? 設(shè)置列與列之間的分割符號(hào) SQL> SET COLSEP '|'
          ??? compatibility version NATIVE
          ??? 數(shù)據(jù)庫(kù)版本,NATIVE為默認(rèn),可制定V6,V7,V8
          ??? concat "." (hex 2e)
          ??? copycommit 0
          ??? COPYTYPECHECK is ON
          ??? define "&" (hex 26)
          ??? 替換變量時(shí)所使用的字符
          ??? describe DEPTH 1 LINENUM OFF INDENT ON
          ??? echo OFF
          ??? 是否顯示執(zhí)行代碼 SQL> SET ECHO {ON|OFF}
          ??? editfile "afiedt.buf"
          ??? embedded OFF
          ??? escape OFF
          ??? FEEDBACK ON for 6 or more rows
          ??? 查詢(xún)、修改時(shí)所影響的行數(shù) SQL> SET FEED[BACK] {6|n|ON|OFF}
          ??? flagger OFF
          ??? flush ON
          ??? heading ON
          ??? 是否顯示列標(biāo)題 SQL> SET HEA[DING] {ON|OFF}
          ??? headsep "|" (hex 7c)
          ??? instance "local"
          ??? linesize 100
          ??? 設(shè)置一行可容納的字符數(shù) SQL> SET LIN[ESIZE] {80|n}
          ??? lno 8
          ??? loboffset 1
          ??? logsource ""
          ??? long 5000
          ??? longchunksize 80
          ??? markup HTML OFF ...
          ??? newpage 1
          ??? 頁(yè)與頁(yè)之間的分隔符 SQL> SET NEWP[AGE] {1|n|NONE}
          ????????????? 當(dāng)set newpage 0 時(shí),會(huì)在每頁(yè)的開(kāi)頭有一個(gè)小的黑方框。
          ????????????? 當(dāng)set newpage n 時(shí),會(huì)在頁(yè)和頁(yè)之間隔著n個(gè)空行。
          ????????????? 當(dāng)set newpage none 時(shí),會(huì)在頁(yè)和頁(yè)之間沒(méi)有任何間隔。
          ??? null ""
          ??? 設(shè)置null值? SQL> SET NULL 0.00
          ???????????????????? 但是此值顯示出來(lái)后必為字符型
          ??? numformat ""
          ??? numwidth 10
          ??? 設(shè)置number類(lèi)型的長(zhǎng)度限制 SQL> SET NUM[WIDTH] 16
          ??? pagesize 9999
          ??? 一頁(yè)顯示多少行 SQL> SET PAGES[IZE] {24|n}
          ???????????????????? 當(dāng)設(shè)置為0時(shí),則所有行顯示在一頁(yè)中,并且不顯示標(biāo)題行
          ??? 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時(shí)是否顯示 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
          ??? 是否顯示輸出內(nèi)容,例如spool輸出? SQL> SET TERM[OUT] {ON|OFF}
          ??? timing OFF
          ??? SQL語(yǔ)句執(zhí)行花費(fèi)時(shí)間顯示? set TIMING? {ON|OFF}
          ??? trimout ON
          ??? 標(biāo)準(zhǔn)輸出中每行最后的空格是否去掉 SQL> SET TRIMS[OUT] {ON|OFF}
          ??? trimspool ON
          ??? spool標(biāo)準(zhǔn)輸出中每行最后的空格是否去掉 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
          ??? 當(dāng)長(zhǎng)度超過(guò)時(shí)是否回繞? SQL> SET WRA[P] {ON|OFF}?? --基本上都要ON
          ?
          ?
          ?
          、一些常用的小操作:
          ?
          ??? show user????????????????????? --查看當(dāng)前登錄用戶(hù)
          ??? show errors??????????????????? --顯示錯(cuò)誤信息
          ??? show rel[ease]???????????????? --顯示版本
          ??? show SGA?????????????????????? --顯示SGA
          ??? set time on??????????????????? --前端始終顯示時(shí)間
          ??? select name from v$database;?? --查看當(dāng)前所在數(shù)據(jù)庫(kù)
          ??? select * from v$instance;????? --查看所有數(shù)據(jù)庫(kù)實(shí)例(似乎沒(méi)什么用)
          ??? select * from V_$PWFILE_USERS; --查看那些用戶(hù)有SYSDBA/SYSOPER權(quán)限
          ?
          ?
          ?
          posted on 2008-11-30 20:29 decode360 閱讀(282) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): 05.SQL
          主站蜘蛛池模板: 读书| 普兰县| 辽中县| 漳浦县| 通江县| 娄底市| 枞阳县| 思茅市| 潞城市| 湘乡市| 巴楚县| 华阴市| 高阳县| 沅陵县| 榆林市| 临夏市| 谢通门县| 科尔| 芮城县| 灯塔市| 潞城市| 定边县| 柳州市| 来安县| 襄垣县| 望谟县| 盐城市| 手游| 冕宁县| 永定县| 甘肃省| 大丰市| 独山县| 武邑县| 宁明县| 莆田市| 安丘市| 泸溪县| 泸州市| 徐闻县| 师宗县|