Oracle-select語句相關
阿新 • • 發佈:2020-10-07
篩選
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時,先進行表連線再進行篩選