SQL ->>>>

來源:互聯網
上載者:User

1.

Code:
  1. Oracle中upper函數介紹   
  2. Upper()   
  3. 功能將字串中的小寫字母轉換為大寫字母。   
  4. 文法Upper( string )   
  5. 參數string:要將其中的小寫字母轉換為大寫字母的字串傳回值String。   
  6. 函數執行成功時返回將小寫字母轉換為大寫字母後的字串,發生錯誤時返回Null 字元串("")。   
  7. 如果string參數的值為 NULL,Upper()函數返回NULL。   
  8. 例如:   
  9. SQL> select upper('this is a test') from dual;   
  10. UPPER('THISISA   
  11. ----------------------------   
  12. THIS IS A TEST  

2.

Code:
  1. dual是一個虛擬表,用來構成select的文法規則,oracle保證dual裡面永遠只有一條記錄。我們可以用它來做很多事情,如下:  
  2.             http://soft.chinabyte.com/database/201/11444701.shtml

3.

Code:
  1. Oracle預存程序入門   
  2. http://blog.stnn.cc/sky_drop/Efp_Bl_1002777062.aspx 【這篇博文看起來會像看書一樣】  

4.

Code:
  1. 寫一個 預存程序   
  2.   
  3.   預存程序使用Oracle's PL/SQL 程式語言編寫,讓我們寫一個什麼工作都不做的預存程序,我們可以編譯和運行它而不用擔心會對資料庫產生任何損害。   
  4.   
  5.   在Notepad, 寫下:   
  6.   
  7.   CREATE OR REPLACE PROCEDURE skeleton   
  8.   
  9.   IS   
  10.   
  11.    BEGIN   
  12.   
  13.   NULL;   
  14.   
  15.   END;   
  16.   
  17.   把檔案存為skeleton.sql.   
  18.   
  19.   讓我們一 行行遍曆這個預存程序:   
  20.   
  21.   1 CREATE OR REPLACE PROCEDURE skeleton   
  22.   
  23.   2 IS   
  24.   
  25.    3 BEGIN   
  26.   
  27.   4 NULL;   
  28.   
  29.   5 END;   
  30.   
  31.   行1:   
  32.   
  33.   CREATE OR REPLACE PROCEDURE 是一個SQL語句通知Oracle資料庫去建立一個叫做 skeleton預存程序, 如果存在就覆蓋它;   
  34.   
  35.    行2:   
  36.   
  37.   IS關鍵詞表明後面將跟隨一個PL/SQL體。   
  38.   
  39.   行3:   
  40.   
  41.   BEGIN關鍵詞表明PL/SQL 體的開始。   
  42.   
  43.   行4:   
  44.   
  45.   NULL PL/SQL語句表明什麼事都不做,這句不能刪去,因為PL/SQL體中至少需要有一句;   
  46.   
  47.   行5:   
  48.   
  49.   END關鍵詞表明 PL/SQL體的結束  

5.

Code:
  1. ORACLE replace和translate函數詳解   
  2. replace:字串層級的代替   
  3.   如:SELECT REPLACE('acdd','cd','ef') FROM dual; →aefd【整體】   
  4. translate:字元層級的代替   
  5.   如:SELECT TRANSLATE('acdd','cd','ef') FROM dual; →aeff【相應】  
  6.  
  7. 實戰:

      如何判斷一個字串是否是數字?

      解:先轉換:由於to_string不可為空,我們巧用#號代替

      select translate('abc123','#1234567890.','#') from dual;→abc

      from_string中的#被to_string中的#代替,但char中又沒有#字元,所以通過這一步躲開了to_string必須不為空白的規則。然後後面的數字以及小數點都轉換為空白,於是原來的字串中只留下abc三個字元。

      轉換好後,用nvl2判斷即可:

      select nvl2(translate('abc123','#1234567890.','#'),'字串','數字') from dual;→字串

      nvl2的作用就是,NVL2 (expr1, expr2, expr3) ->expr1不為NULL,返回expr2;為NULL,返回expr3。這樣我們就可以判斷一個字串是否是數字了!解畢!

    http://oracle.chinaitlab.com/exploiture/808365.html

  8.  

 6.

Code:
  1. /**ORACLE 自訂類型*/  
  2. 用 create type 變數 as table of 類型和 create type 變數 as object(   
  3. 欄位1  類型1,   
  4. 欄位2  類型2  
  5. );   
  6. 與 type 變數 is table of 類型 和 type 變數 is record(   
  7. 欄位1  類型1,   
  8. 欄位2  類型2  
  9. );   
  10. 區別是 用 create 後面用 as , 直接用 type 後面用 is   
  11. create 是創 object , 而 type 是創 record . 
  12.   http://xxciof.blog.163.com/blog/static/79781327200961721245149/ 

7.

Code:
  1. /***Oracle中index by binary_integer的作用*/  
  2. /*  
  3. 如語句:type  numbers  is table of number index by binary_integer;其作用是,加了”index by binary_integer ”後,numbers類型的下標就是自增長,numbers類型在插入元素時,不需要初始化,不需要每次extend增加一個空間。  
  4.   而如果沒有這句話“index by binary_integer”,那就得要顯示對初始化,且每插入一個元素到numbers類型的table中時,都需要先extend.  
  5. */  
  6. http://oracle.chinaitlab.com/exploiture/836063.html

8.

Code:
  1. //Oracle exist   
  2. 最大的作用就是加快查詢資料量大的表的速度   
  3. SELECT department_id   
  4. FROM departments d   
  5. WHERE EXISTS   
  6. (SELECT * FROM employees e   
  7. WHERE d.department_id    
  8. = e.department_id);   
  9. 適用於department表小,employees表很大的情況   
  10. 如果反過來,就會嚴重影響查詢速度   
  11.   
  12. SELECT department_id   
  13. FROM departments d,employees e   
  14.  WHERE d.department_id    
  15. = e.department_id;   
  16.   
  17.   
  18. 另外:   
  19. http://www.cnblogs.com/yf520gn/archive/2009/01/12/1374359.html  

 9_20110511

Code:
  1. //Oracle rownum   
  2. 但如果就是想要用 rownum > 10 這種條件的話話就要用嵌套語句,把 rownum 先產生,然後對他進行查詢。   
  3. select *    
  4. from (selet rownum as rn,t1.* from a where ...)   
  5. where rn >10  
  6.   
  7. 一般代碼中對結果集進行分頁就是這麼乾的。   
  8.   
  9. look here:   
  10. http://bbs.linuxpk.com/thread-10595-1-1.html  

10

Code:
  1. //oracle nvl( arg,value) 方法   
  2. 等同於 (arg ==null)?value:arg;  

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.