目錄
賬號
超級管理員sys ,默認密碼:change_on_install
普通管理員system 密碼 manager
用戶: scott 密碼 tiger
這裏用戶sys的權限是非常高的,可以打開關閉oracle數據庫,它的權限是高於其他用戶的(其他用戶信息肯定保存在oracle數據庫中)
數值函數
每個數據庫內置函數都不相同,一般放在別的數據裏不好用
- round(number[,decimals])函數:
四捨五入
number:待做截取處理的數值
decimals:指明需保留小數點後面的位數。
- trunc(number,num_digits)函數:
截取函數
Number 需要截尾取整的數字。
Num_digits 用於指定取整精度的數字。Num_digits 的默認值爲 0。
注意:不進行四捨五入
- mod(m,n)
取餘函數
字符函數
注意:和SQLServer不同,oracle對大小寫敏感!
- substr(string string, int a, int b)函數:
取子串。從a開始,取長度爲b的字符串。默認b是取到最後。有點像C++裏面的<string>
- instr(string1, string2)函數:
一個串在另外串裏的位置。string1是源字符串, string2是目標字符串。
instr(string1, string2,int a)找第a個string2
instr(string1, string2,int a,int b)找第a個字符之後出現的第b個string2
- length()函數:
返回長度
select length('漢字')
from dual
結果:2
select lengthb('漢字')
from dual
結果:4
- trim(),ltrim(),rtrim()
去字符串左右兩邊的空格或指定字符
select trim(' r f ')
from dual
結果:r f
select trim('m' from 'mmrmfmm')
from dual
結果:rmf
selsct trim(leading 'm' from 'mmrmfmm')
from dual
結果:rmfmm
- initcap()函數:
首字母大寫。所有的單詞首字母大寫,就像文章的題目一樣。
- lower(string)函數:
轉成小寫字母。
日期
默認格式:DD-MON-RR
DD和RR表示阿拉伯數字
英文環境MON爲月份英語縮寫
漢語環境爲漢語
日期運算
SYSDATE獲取系統時間
加減運算:日期+數字是增加天數,如:SYSDATE+1是明天的日期
但是日期+日期是非法的;日期-日期是和合法的,返回相差的天數
select SYSDATE-('01-1月-00')
from dual
結果:報錯,日期不能減字符串
select SYSDATE-to_date('01-1月-00')
from dual
結果:系統時間和01年1月1日相差的天數
日期函數
- ADD_MONTHS()函數
ADD_MONTHS(‘starting_date’,number_of_months)
一個日期加幾個月,注意一個月31日加一個月的情況。
SELECT ADD_MONTHS(TO_DATE('01/31/2007','MM/DD/YYYY'),1)
FROM dual
結果:2007/2/28
- LAST_DAY()函數
LAST_DAY(‘date’)
一個月的最後一天
- MONTHS_BETWEEN(later_date,earlier_date)
兩個日期的間隔幾個月
- next_day()函數
下一個日期
可以是數字、日期
select next_day(SYSDATE,'星期一')
from dual
結果:今天之後的下一個星期一
select next_day(SYSDATE,2)
from dual
結果:今天之後的下一個星期的第二天
其他函數
- NVL()函數
NVL(input_value,result_if_value_is_null)
input_value通常是某個列名。若該值爲空,則用第二個值覆蓋。
注意:兩個參數的數據類型必須是一樣的,否則會報錯。使用時可以先進行類型轉換。
- nvl2()函數
nvl2(input,value1,value2)
如果表達式input不是空值,則返回value1值;否則返回value2值。 和C++中的三目運算符有點像。
注意:後兩個參數數據類型相同
轉換函數
oracle中的數據類型轉換
- to_date()函數
TO_DATE(input_value,’format_code’) 字符串轉日期
例如
to_date('81-01-01','rr-mm-dd')
結果:由字符串變成日期類型81年1月1日
年份用rr和yy表示有所不同:年用rr表示離現在最近的年份;年用yy表示表示當前世紀的年份。一般使用rr更合理一些。
原因:之前的千年蟲問題,2038年1月也會出現千年蟲問題
- to_char()函數
TO_CHAR(input_value,’format_code’) 轉字符,第二個參數是轉換的格式
功能比較強大,例子:
select hiredate
from emp
where to_char(hiredate,'dd') < 15
結果:僱傭日期在15號之前的
select to_char(sal,'999999.99l')
from emp
結果:員工工資,l表示當地貨幣符號
- to_num()函數
轉數字。只有數字才能轉,字母等會報錯。