Oracle學習筆記(5)——查詢

來源:互聯網
上載者:User

標籤:taf   ==   distinct   ext   更改   order by   orm   rom   tab   

  • 基本查詢語句
    • SELECT [DISTINCT] column_name1,...|* FROM table_name [WHERE conditions]

  • 在SQL*PLUS中設定格式
    • 更改顯示欄位名:COLUMN column_name HEADING new_name   (注意COLUMN能夠簡寫成COL)
      • 比如:
                                 col username heading 使用者名稱;
                                 select * from users;

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >

  • 設定顯示結果的格式:COLUMN column_name FORMAT dataformat;  (注意COLUMN能夠簡寫成COL。字元類型僅僅能設定顯示的長度)
    • 比如
                            col username format a10;  注意:字元類型用a代表。a10表示設定字元類型長度為10。數值類型用9表示                            select * from users;                            col salary format 9999.9;  注意:數值類型用9表示                            select * from users;

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >

  • 清除之前設定過的格式:COLUMN column_name CLEAR;
    • 比如:
                            col username clear;                            col salary clear;
  • 查詢表中的全部欄位及指定欄位
    • 查詢全部欄位:SELECT * FROM table_name;
    • 查詢指定欄位:SELECT column1_name,column2_name... FROM table_name;

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >

  • 給欄位設定別名(*給欄位設定別名是針對查詢結果進行的,並沒有更改欄位的名字)
    • SELECT column_name AS new_name,... FROM table_name; 注意:AS能夠省略。用空格隔開原來的欄位名和新欄位名就可以。
      • 比如:
                        select id as 編號,username as 使用者名稱,salary  工資 from users;
  • 運算子和運算式
    • 運算式 = 運算元 + 運算子
    • Oracle中的運算元能夠有變數,常量和欄位
    • 運算子
      • 算數運算子(+,-。*。/)
      • 比較運算子(>,>=,<,<=,=,<>)
      • 邏輯運算子(and,or,not)。優先順序:按not、and、or的順序依次遞減。比較運算子的優先順序高於邏輯運算子
  • 在SELECT語句中使用運算子(省略)
  • 帶條件的查詢
    • 單一條件的查詢
      • 查詢使用者名稱為aaa的員工薪水:select salary from users where username=‘aaa‘;
    • 多條件的查詢
      • 查詢名字是aaa。或者工資在800到2000之間的員工資訊
                                select * from users where username=‘aaa‘ or (salary > 800 and salary <=2000)

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >

  • 模糊查詢 LIKE
    • 萬用字元的使用( _ 、%)
      • 一個 _ 僅僅能代表一個字元
      • %能夠代表0到多個隨意字元
    • 使用LIKE查詢
      • 例:查詢使用者名稱以a開頭的使用者資訊。select * from users where username like ‘a%‘;
      • 例:查詢使用者名稱的第二個字元是a的使用者資訊。select * from users where username like ‘_a%‘;
      • 例:查詢使用者名稱中含有a的使用者資訊。

        select * from users where username like ‘%a%‘;


  • 範圍查詢  
    • BETWEEN ... AND  閉區間。

      • 例:查詢員工薪水在800和2000之間的全部員工資訊:select * from users where salary between 800 and 2000;  注意包括800和2000
      • 例:查詢員工薪水不在800和2000之間的全部員工資訊:select * from users where salary not between 800 and 2000;
    • IN / NOT IN
      • 查詢使用者名稱是aaa或者bbb的使用者資訊:select * from users where username in(‘aaa‘,‘bbb‘);
      • 查詢使用者名稱不是aaa。也不是bbb的使用者資訊:select * from users where username not in(‘aaa‘,‘bbb‘);

  • 對查詢結果排序
    • SELECT ... FROM ... [WHERE ...] ORDER BY column1 DESC/ASC,...;   DESC:降序,ASC:升序
      • 例:select * from users order by id desc;
      • 例:select * from users order by id desc,salary asc;

  • case...when語句的使用
    • 作用:就是在我們查詢語句其中能夠依據我們欄位不同的值。還能夠顯示不同的結果。
    • CASE column_name WHEN value1 THEN result1,... [ELSE result] END;
      • 範例:依據不同的username來得到他所在的部門
                            select username,case username when ‘aaa‘ then ‘電腦部門‘                            when ‘bbb‘ then ‘市場部門‘ else ‘其它部門‘ end as 部門 from users;

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >

  • CASE WHEN column_name=value1 THEN result1,... [ELSE result] END;
    • 範例:
                            select username,case when username=‘aaa‘ then ‘電腦部門‘                            when  username=‘bbb‘ then ‘市場部門‘ else ‘其它部門‘ end as 部門 from users;

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >

    • 範例:
                            select username,case when salary<800 then ‘工資低‘ when salary>5000 then ‘工資高‘ end as 工資水平 from users;
  • decode函數的使用
    • decode (column_name,value1,result1,...,defaultvalue);
      • 範例:
                            select username,decode(username,‘aaa‘,‘電腦部門‘,‘bbb‘,‘市場部門‘,‘其它‘) as 部門 from users;

Oracle學習筆記(5)——查詢

聯繫我們

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