1. 程式人生 > >ORACLE基礎(5)查詢

ORACLE基礎(5)查詢

基本查詢語句

SELECT [DISTINCT] column_name1,....|* FROM table_name [WHERE condition]

我們也可以從多張表查詢

DISTINCT加上表示不顯示重複的記錄,比如沒有唯一約束就要用DISTINCT

在SQL*PLUS中設定格式

COLUMN column_name HEADING new_name

更改我們顯示的欄位名

更改我們查詢後結果的欄位名,不是表裡面的欄位名進行更改

COLUMN可以簡寫成COL

比如COL username HEADING 使用者名稱;

再使用查詢即可

COLUMN column_name FORMAT dataformat

設定顯示的格式:注如果是字元型別智慧設定顯示的長度

比如COL username FORMAT a10;

就是長度為10

如果是數值型別可以用一個9代表一個數字

COL salary FORMAT 9999.9;

就是小數形式的

如果移除的話就是全部是####代替

COL salary FORMAT $9999.9;

都帶了一個美元符號

COLUMN column_name CLEAR

就是清除掉設定過的格式

查詢表中的所有欄位以及指定欄位

SELECT * FROM table_name;

給欄位設定別名

這裡設定的別名仍然體現在表的結果當中,並不會更改表的欄位名字

SELECT column_name AS new_name,... FROM table_name

AS可以省略,需要用空格隔開

運算子和表示式:

表示式 = 運算元 + 運算子

Oracle的運算元可以有變數,常量和欄位

算數運算子 + - * /

比較運算子 >       >=      <          <=             =         <>

邏輯運算子  and or not

SELECT id,username,salary+200 FROM users;

比較運算子一般在WHERE中使用

邏輯運算子是連線比較運算子的表示式了

帶條件的查詢

    單一條件的查詢     WHERE 後面加條件

多條件的查詢

    使用邏輯運算子連線 優先順序用()控制

模糊查詢:

    關鍵字: LIKE

    萬用字元的使用 _     %

一個_只能代替一個字元

%可以代替0到多個任意字元

使用LIKE查詢

查詢使用者名稱以a開頭的使用者資訊

SELECT  * FROM users WHERE username LIKE 'a%';

含有a就是  %a%

範圍查詢 例如 salary>=800 and salary<=2000

或者使用 BETWEEN...AND 

SELECT * FROM users WHERE salary BETWEEN 800 AND 2000;

如果不在800 到 2000之間  就在 BETWEEN前加NOT

IN和NOT IN

IN後面小括號 ()

比如 IN('AAA','BBB')

對查詢結果排序

SELECT...FROM...[WHERE...]ORDER BY column DESC/ASC,...

DESC降序 ASC升序

多個排序的話,前面相等後面就是排序啟用

CASE...WHEN語句  就是查詢當中根據欄位的值顯示不同的結果

CASE column_name WHEN value1 THEN result1,...[ELSE result] END

ELSE就是DEFAULT值

例如:SELECT username,CASE username WHEN 'aaa' THEN '計算機部門' WHEN 'bbb' THEN '市場部門' ELSE '其他部門' END as 部門 FROM users;

CASE WHEN column_name=VALUE1 THEN result1,...[ELSE result] END

WHEN後面是表示式,可以任意比如說<   >     

SELECT username,CASE WHEN username='aaa' THEN '計算機部門' WHEN username='bbb' THEN '市場部門' ELSE '其他部門' END AS 部門 FROM users;

decode函式使用

和CASE WHEN語句類似,能夠對欄位的值條件進行判斷

decode(column_name,value1,result1,...,defalutvalue)

也可以不指定預設值 返回空值 null

SELECT username,decode(username,'aaa','計算機部門','bbb','市場部門','其他')AS 部門 FROM users;