Oracle資料型別及函式
阿新 • • 發佈:2019-01-22
一、數字型別 :NUMBER
定義形式:NUMBER(P,S),P 代表數字的總位數(整數位 + 精度位),S 代表精度(可以不寫。不寫表示整數)
NUMBER(P)表示整數, P 表示數字的總位數,取值為 1-38
NUMBER(P,S) 表示浮點數, P包含了 S 。
例如: NUMBER(6,2), 那麼整數位最大位是 4 位,小數位最大位是 2位
數值函式
例如:SELECT TO_DATE('2015年12月17日','YYYY"年"MM"月"DD"日"') FROM dual
- ROUND(n, m) --- 用於四捨五入
- TRUNC(n, m) --- 用於擷取小數點後的 m 位,但不進行四捨五入
- MOD(m, n) --- 取模函式,注意:在資料庫中 n 可以為零,返回原值
- CEIL(N) --- 取大於或等於 n 的最小整數值
- FLOOR(N) --- 取小於或等於 n 的最大整數值
- 預設單位是位元組,可指定為字元:
- CHAR :表示固定長度的字元型別
- VARCHAR2 : Oracle 特有型別,表示變長的字元型別
定義形式:VARCHAR2(N),N 表示佔用的位元組數,最大長度 4000 位元組,資料多長就儲存多長,用多少佔多少。
優點:磁碟空間利用好
缺點:查詢效率低。 - LONG : VARCHAR2加長版,儲存變長字串,最多達到 2GB 的字串資料,
- CLOB :儲存定長或變長字串,最多達到 4GB 的字串資料,建議使用 CLOB 代替LONG 。
- CONCATE(char1,char), 返回兩個字串連線後的結果,一般使用“ || ”來代替
- LENGTH(char), 用於返回這個字串的長度(字元量)
- UPPER(char) ,用於將字元轉換為大寫形式
- LOWER(char) ,用於將字元轉換為小寫形式
- INITCAP(char) ,用於首字母大寫,其它字母小寫(其中可以使用空格分隔多個單詞,那麼每個單詞首字母都會大寫)
- TRIM(c2 from c1) --- 去除給定字串中兩邊重複的給定字元
- LPAD(char1, n, char2) --- 補位函式,在左邊補充
- SUBSTR(char, offset, n) --- 用於獲取字串的子串,返回 char 中從m 位開始取 n 個字元。Offset 為負數時,就是從字串最後一位開始, n 不能為負數。若擷取的字元數量超過實際可以擷取的字元數量時,則擷取到字串末尾。資料庫中下標都是從 1 開始的
- INSTR(char1, char2[,n,m]) --- 返回子串 char2 在源字串char1 中的位置,
- 日期型別的資料是可以進行運算的,兩個日期型別的值相減,差為相差的天數;給一個日期的值加上一個數字,相當於累加了多少天
- DATE --- 最多精確到秒
- TIMESAMP --- 最多精確到納秒
- SYSDATE --- 本質是一個 Oracle 的內部函式,返回當前的系統時間,精度為秒,預設顯示格式是 DD-MON-RR.
- SYSTIMESTAMP --- 返回當前系統日期和時間,精確到毫秒
- TO_DATE --- 按照字串規定的格式轉換為日期型別
YY | 2位數字的年份 |
YYYY | 4位數字的年份 |
MM | 2位數字的月份 |
MON | 簡拼的月份 |
MONTH | 全拼的月份 |
DD | 2位數的天 |
DY | 周幾的縮寫 |
DAY | 周幾的全拼 |
HH24 | 24小時制的小時 |
HH12 | 12小時制的小時 |
MI | 顯示分鐘 |
SS | 顯示秒 |
- TO_CHAR --- 將其它型別的資料轉換為字元型別
- LAST_DAY(date) --- 返回日期date 所在月的最後一天
- ADD_MONTHS(date, i) --- 返回日期 date 加上i 個月後的日期值
- MONTHS_BETWEEN (date1, date2) --- 計算 date1和 date2 兩個日期值之間間隔了多少個月,實際運算是 date1-date2, 越晚,date 就越大。除非兩個月間隔的是整數月,否則會出現小數
- NEXT_DAY(date, char) --- 返回date日期資料的下一個周幾,周幾是由引數char來決定。返回的是離現在的日期還沒到的最近的周幾。
- LEAST(expr1[,expr2,expr3…]) --- 返回最小的值
- GREATEST(expr1[,expr2,expr3…]) --- 返回最大的值
- EXTRACT(date FROM datetime) --- 從引數 datetime中提取引數 date 指定的資料。
- 當判斷一個欄位的值是否為 NULL 時,不能使用“ =”判斷,而是使用 IS NULL 或者IS NOT NULL 。
- NULL 與字串連線,等於什麼都沒幹
- NULL 與數字運算,結果還是 NULL
- NVL(expr1,exp2) --- 將 NULL轉換為非 NULL 值。若expr1 為 null,則函式返回 exp2, 否則就返回expr1 的值。
- NVL2(exp1,exp2,exp3) --- 用來判斷 exp1 是否為NULL ,如果不是,返回 exp2 ,如果是NULL ,返回 exp3。