嗨 甲骨文【1】

來源:互聯網
上載者:User

【序】
為了在工作中寫預存程序,。同時,我準備寫學習《精通Oracle 10g PL/SQL編程》(水利水電)一書的學習筆記。

這些你能不能寫全:
Data Query Language--SELECT
Data Manipulation Language--INSERT,UPDATE,DELETE
Transactional Control Language--COMMIT,ROLLBACK,SAVEPOINT
Data Definition Language--CREATE TABLE,ALTER TABLE,DROP TABLE
Data Control Language--GRANT,REVOKE
一次應聘面試中,我就沒能答出此類問題。想來只有慚愧,無他。

PL/SQL能將SQL語句組合成塊,一次傳輸,降低了網路開銷,此等高效,往日用SQL Server時可沒這等好事。

 

PL/SQL塊結構

DECLARE

/*定義部分*/

BEGIN

/*執行部分*/

EXCEPTION

/*例外處理部分*/

END; /*塊結束標記,此處有分號*/

/    /*這是命令列中的結束符*/

 

四大塊類型

   匿名塊、命名塊、子程式(過程、函數、包)、觸發器

四大變數類型

標量(Scalar)、複合(Composite)、參照(Reference)、LOB(Large Object)

Composite:PL/SQL記錄、PL/SQL表、巢狀表格、VARRAY

參照:遊標變數(REF CURSOR)、 物件類型變數(REF obj_type)

       LOB:內部LOB(CLOB,BLOB,NCLOB)、外部LOB(BFILE)



DECLARE

v_num NUMBER(6,2); ß變數定死了長度,將來無法動態改變,只能手動修改

v_num tbl.num%TYPE; ß動態確定新的類型和長度

 

挺像Delphi: 1 變數賦值 :=  2記錄 RECORD

 

在命令列中寫SQL語句時注意:單條結束要用; 模組結束要用/ 才能顯示你的查詢

 

不重複顯示查詢:SELECT DISTINCT *FROM A_TBL

 

處理NULL:NVL(expr1,expr2) 如果expr1是null則返回expr2;如果不是則返回expr1兩者類型要匹配

 

刪除表資料並釋放空間:TRUNCATE TABLE

 

Oracle不允許其他使用者讀取髒資料(未提交事務),確保資料庫資料的讀一致性

加鎖,確保同一時間對檔案的操作只能有一人

 

Savepoint 用於取消部分事務,事務結束後自動刪除所有儲存點。

 

唯讀事務:SET TRANSACTION READ ONLY;

                或者:exec dbms_transaction.read_only

 

分組函數

MAX、MIN、AVG、SUM、COUNT、VARIANCE(方差)、STDDEV(標準差)

GROUP BY用於對查詢結果進行分組統計――比如每組最大值

HAVING用於限制分組顯示結果――比如最大值小於2800

ROLLUP在原統計結果基礎上產生橫向小統計

CUBE在原統計結果基礎上產生縱向小統計

 

Oracle的流程式控制制語句

IF語句

IF      THEN

ELSIF  THEN

ELSE

END IF;

 

CASE語句(9i)

CASE

   WHEN   THEN

ELSE

END CASE;

 

基本迴圈

LOOP

   EXIT[WHEN  ];

END LOOP;

 

WHILE迴圈

WHILE   LOOP

END LOOP;

 

FOR       迴圈

FOR _v in[REVERSE] lo..hi LOOP

END LOOP;


相關文章

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

Starter Package

SSD Cloud server and data transfer for only $2.50 a month

Get Started >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

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

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