1. 程式人生 > 實用技巧 >Oracle-select語句相關

Oracle-select語句相關

篩選

where篩選

精確篩選

select * from 表名 where 精確條件;

範圍篩選

> =  <  <=  !=

邏輯篩選

and  or  not

包含篩選

in
between ... and ... --左右都是閉區間
select * from emp where sal>=1000 and sal<=3000;  
--等於下面的句子
select * from emp where sal between 1000 and 3000;

空值篩選

is null
is not null

模糊查詢

like

萬用字元

--  %  萬用字元  表示0-N個任意字元
--  _   萬用字元  表示1個任意字元

轉義符

escape 指定轉義符
select * from emp where ename like '%\%%' escape '\';

單行函式

數字相關

四捨五入

round(數字, 小數精度)

數字擷取

trunc(數字, 小數精度)
  • 絕對值 abs(數字)

  • 向下取整 floor(數字)

  • 向上取整 ceil(數字)

  • 冪運算 power(數字, 次方)

  • 取餘數運算 mod(數字, 除數)

字串相關

擷取字串

substr(字串, 開始位置, 連續長度)

拼接字串

concat(str1, str2)
str1 || str2
  • 計算字串的字元個數 length(字串)

  • 字串內容的替換 replace(字串, 要被替換的內容,替換後的新內容)

  • 去除左右兩邊的空格 trim() ltrim() rtrim()

  • 填充內容 lpad() rpad()

時間相關

當前系統時間

sysdate

月份偏移

add_months(時間, 月的數量)

時間間隔

months_between(時間1, 時間2) --時間1-時間2

型別轉換

轉成字串

to_char()
--處理時間時
yyyy - 年
mm   - 月
dd   - 日
hh   - 時
mi   - 分
ss   - 秒
day  - 星期幾

轉成數字

to_number()

轉成時間

to_date('時間字串', '時間字串的規則')

分組聚合排序

分組

group by

聚合函式

資料統計

count()

求和

sum()

最大值最小值

max()
min()

平均值

avg()

排序

order by

SQL語句查詢的順序

select 列,聚合函式(列)							 5
from 表											1
where 篩選									   2
group by 列										3
having 篩選									   4
order by 列 asc/desc								6

1.先找到表from,從哪個表裡面查
2.進行where篩選,分組前的篩選
3.分組group by
4.進行having篩選,分組後的篩選
5.查詢需要的內容,列或者聚合函式後的值
6.排序order by

多表查詢

子查詢

巢狀查詢:將一個表格的查詢結果,當成另一個表格查詢的條件。

子查詢中關鍵字

all

大於最大的,小於最小的

any

大於最小的,小於最大的

聯合查詢

內連線

(inner) join

可以省略inner,查詢兩張表符合條件的共同部分

左連線

left join

顯示兩個表格的共同資料,然後顯示左邊表的資料

右連線

right join

顯示兩個表格的共同資料,然後顯示右邊表的資料

全連線

full join

顯示兩個表格的共同資料,然後分別顯示左邊和右邊表的資料

連線時and和where的區別

使用and時,先進行篩選字再進行表連線

使用where時,先進行表連線再進行篩選