關於ORACLE(2)

來源:互聯網
上載者:User
sql*plus有兩個意思 一個是指oracle的sql方言 另外是只oracle執行方言的命令列或類似命令列的圖形介面
pl/sql就複雜了 orcale資料程式設計語言 請自己看百度百科介紹
sql*plus命令很多 整點簡單的 其他的自己google
這個也是轉的
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_name

  SQL>@ file_name

  我們可以將多條sql語句儲存在一個文字檔中,這樣當要執行這個檔案中的所有的sql語句時,用上面的任一命令即可,這類似於dos中的批處理。

  @與@@的區別是什嗎?

  @等於start命令,用來運行一個sql指令檔。

  @命令調用目前的目錄下的,或指定全路徑,或可以通過SQLPATH環境變數搜尋到的指令檔。該命令使用是一般要指定要執行的檔案的全路徑,否則從預設路徑(可用SQLPATH變數指定)下讀取指定的檔案。

  @@用在sql指令檔中,用來說明用@@執行的sql指令檔與@@所在的檔案在同一目錄下,而不用指定要執行sql指令檔的全路徑,也不是從SQLPATH環境變數指定的路徑中尋找sql指令檔,該命令一般用在指令檔中。

  如:在c:/temp目錄下有檔案start.sql和nest_start.sql,start.sql指令檔的內容為:

  @@nest_start.sql     - - 相當於@ c:/temp/nest_start.sql

  則我們在sql*plus中,這樣執行:

  SQL> @ c:/temp/start.sql

  2. 對當前的輸入進行編輯

  SQL>edit

  3. 重新運行上一次啟動並執行sql語句

  SQL>/

  4. 將顯示的內容輸出到指定檔案

  SQL> SPOOL file_name

  在螢幕上的所有內容都包含在該檔案中,包括你輸入的sql語句。

  5. 關閉spool輸出

  SQL> SPOOL OFF

  只有關閉spool輸出,才會在輸出檔案中看到輸出的內容。

  6.顯示一個表的結構

  SQL> desc table_name
瑞星卡卡免費下載
  7. COL命令:
  主要格式化列的顯示形式。
  該命令有許多選項,具體如下:
  COL[UMN] [{ column|expr} [ option ...]]
  Option選項可以是如下的子句:
  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). 改變預設的欄位標題
  COLUMN column_name HEADING column_heading
  For example:
  Sql>select * from dept;
  DEPTNO DNAME                        LOC
  ---------- ---------------------------- ---------
  10 ACCOUNTING                   NEW YORK
  sql>col  LOC heading location
  sql>select * from dept;
   DEPTNO DNAME                        location
  --------- ---------------------------- -----------
  10 ACCOUNTING                   NEW YORK
  2). 將列名ENAME改為新列名EMPLOYEE NAME並將新列名放在兩行上:
  Sql>select * from emp
  Department  name           Salary
  ---------- ---------- ----------
  10 aaa                11        
  SQL> COLUMN ENAME HEADING ’Employee|Name’
  Sql>select * from emp
   Employee
  Department  name           Salary
  ---------- ---------- ----------  
  10 aaa                11
  note: the col heading turn into two lines from one line.
  3). 改變列的顯示長度:
  FOR[MAT] format
  Sql>select empno,ename,job from emp;
  EMPNO ENAME      JOB        
  ---------- ----------     ---------
   7369 SMITH      CLERK      
   7499 ALLEN      SALESMAN  
  7521 WARD       SALESMAN  
  Sql> col ename format a40
  EMPNO ENAME                                    JOB
  ----------   ----------------------------------------         ---------
   7369 SMITH                                    CLERK
   7499 ALLEN                                    SALESMAN
   7521 WARD                                    SALESMAN
  4). 設定欄位標題的對齊
  JUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}
  SQL> col ename justify center
  SQL> /
  EMPNO           ENAME                   JOB
  ----------   ----------------------------------------       ---------
   7369 SMITH                                    CLERK
   7499 ALLEN                                    SALESMAN
  7521 WARD                                     SALESMAN
  對於NUMBER型的列,欄位標題預設在右邊,其它類型的欄位標題預設在左邊
  5). 不讓一個列顯示在螢幕上
  NOPRI[NT]|PRI[NT]
  SQL> col job noprint
  SQL> /
  EMPNO           ENAME
  ----------     ----------------------------------------
   7369 SMITH
   7499 ALLEN
  7521 WARD
  6). 格式化NUMBER類型列的顯示:
  SQL> COLUMN SAL FORMAT $99,990
  SQL> /
  Employee
  Department Name        Salary    Commission
  ---------- ---------- --------- ----------
  30          ALLEN        $1,600    300
  7). 顯示列值時,如果列值為NULL值,用text值代替NULL值
  COMM NUL[L] text
  SQL>COL COMM NUL[L] text
  8). 設定一個列的迴繞方式
  WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]
  COL1
  --------------------
  HOW ARE YOU?
  SQL>COL COL1 FORMAT A5
  SQL>COL COL1 WRAPPED
  COL1
  -----
  HOW A
  RE YO
  U?
  SQL> COL COL1 WORD_WRAPPED
  COL1
  -----
  HOW
  ARE
  YOU?
  SQL> COL COL1 WORD_WRAPPED
  COL1
  -----
  HOW A
  9). 顯示列的當前的顯示內容值
  SQL> COLUMN column_name
  10). 將所有列的顯示內容設為預設值
  SQL> CLEAR COLUMNS
  8. 屏蔽掉一個列中顯示的相同的值
  BREAK ON break_column
  SQL> BREAK ON DEPTNO
  SQL> SELECT DEPTNO, ENAME, SAL
  FROM EMP
   WHERE SAL < 2500
   ORDER BY DEPTNO;
  DEPTNO      ENAME         SAL
  ---------- ----------- ---------
  10           CLARK        2450
  MILLER      1300
  20            SMITH       800
  ADAMS       1100
  9. 在上面屏蔽掉一個列中顯示的相同的值的顯示中,每當列值變化時在值變化之前插入n個空行。
  BREAK ON break_column SKIP n
  SQL> BREAK ON DEPTNO SKIP 1
  SQL> /
  DEPTNO ENAME SAL
  ---------- ----------- ---------
  10 CLARK 2450
  MILLER 1300
  20 SMITH 800
  ADAMS 1100
  10. 顯示對BREAK的設定
  SQL> BREAK
  11. 刪除6、7的設定
  SQL> CLEAR BREAKS

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.