Oracle基本操作
查看數據庫字符集編碼
select userevn(‘language‘) from dual;
Oracle常用函數:
LOWER(‘AAAAA‘),將字符全部轉換成小寫
UPPER(‘aaaaasss‘),將字符全部轉換成大寫
INITCAP(‘AtSiChuan chengdu‘),每個字符首字母大寫
CONCAT(‘hello‘, ‘world‘),連接2個字符
SUBSTR(‘atsichuan‘, 1, 5),從第一位開始截取5位
INSTR(‘helloworld‘,‘o‘),字符第一次出現‘o’的位置
LENGTH(‘helloworld‘),字符長度
TRIM(‘ hellow world ‘),去掉字符首尾空格 trim(‘h‘ from ‘hellohworldh‘) 去掉字符首尾的h--(ellohworld),說明trim只能去掉字符首尾,中間的不能去掉
LPAD(‘sss‘, 5, ‘&‘),左對齊(&&sss)
RPAD(‘ccc‘, 5, ‘*‘),右對齊(ccc**)
REPLACE(‘ancasa‘, ‘a‘, ‘d‘)將字符中的a替換成d
轉換成金額型 to_char(salary,‘$99999999.99‘)
round四舍五入 ROUND(157.9321)---158 ROUND(157.9321,2)--157.93 ROUND(157.9321,-2)--100
trunc截斷 TRUNC(69.9923, 2)---69.99 TRUNC(69.9923)---69 TRUNC(69.9923, -1)---60
mod求余 MOD(1600, 300)---100
日期函數
months_between(sysdate,hire_date) 2個日期之間相差的月份數
add_months 添加月份 add_months(SYSDATE,2)---- 2017/12/12 10:52:34 add_months(SYSDATE,-3)---2017/7/12 10:52:34 (sysdate是20171012)
NEXT_day(SYSDATE,‘星期四‘) 下一個星期的某一天的日期(sysdate是20171012)
last_day 指本月最後一天 last_day(sytsdate)---31 (sysdate是20171012)
round(sysdate,‘mm‘) ---20171001 round(sysdate,‘month‘)---20171001
trunc(sysdate,‘year‘)---2017/1/1 trunc(sysdate,‘mm‘)--2017/10/1 trunc(sysdate,‘dd‘) --2017/10/12 trunc(sysdate,‘hh‘)---2017/10/12 11:00:00
WM_CONCAT 該函數可將查詢結果放在一個單元格中;
DECODE(字段或字段的運算,值1,值2,值3)
這個函數的運行的結果是,當字段或字段的運算的值等於值1時,該函數返回值2,否則返回值3.
decode(條件,值1,返回值1,值2,返回值2,值3,返回值3……值n,返回值n,缺省值)
該函數的含義如下:
IF 條件=值1 THEN
RETURN 返回值1
IF 條件=值2 THEN
RETURN 返回值2
IF 條件=值3 THEN
RETURN 返回值3
....
ELSE IF 條件=值N THEN
RETURN 返回值N
ELSE
RETURN 缺省值
END IF
Merge into 的用法
Merge 的基本語法:
Merge into table[alias]
Using table or sql query[alias]
On condition
When matched then
Update set.....
When not matched then
Insert values....
truncate table 命令將快速刪除數據表中所有的記錄,但保留數據表結構。其刪除的數據是不可以恢復的。(刪除速度非常快)
delete from table 命令刪除的數據存儲在系統回滾段中,即數據是可以恢復的。
drop table將刪除表的結構被依賴的約束(constrain)、觸發器(trigger)、索引(index);依賴於該表的存儲過程/函數將保留,但是變為invalid狀態。
exits
between and 在兩個值之間 (包含邊界)
Oracle基本操作