您好,登錄后才能下訂單哦!
本章將介紹Oracle數(shù)據(jù)庫的內(nèi)置函數(shù)。函數(shù)可以接受零個或多個參數(shù),并返回一個輸出參數(shù)。在Oracle數(shù)據(jù)庫中可以使用兩種主要類型的參數(shù):
單行函數(shù)(single row function)單行函數(shù)同時只能對一行進行操作,且對輸入的每一行返回一行輸出結(jié)果。單行函數(shù)的示例是CONCAT(x,y),其功能是將y添加到x上,并返回所得到的字符串
聚合函數(shù)(aggregate function)聚合函數(shù)同時可以對多行進行操作,并返回一行輸出結(jié)果。聚合函數(shù)的一個例子是AVG(x),其功能是返回x的平均值,其中x可以是一列,或者說一個表達式
使用單行函數(shù)。單行函數(shù)主要有5種:
字符函數(shù)??梢詫τ勺址M成的字符串進行操作
數(shù)字函數(shù)??梢詫?shù)字進行計算
轉(zhuǎn)換函數(shù)。可以將一種數(shù)據(jù)庫類型轉(zhuǎn)換成另一中數(shù)據(jù)庫類型
日期函數(shù)??梢詫θ掌诤蜁r間進行處理
正則表達式函數(shù)。在查詢數(shù)據(jù)時可以使用正則表達式
1.1 字符函數(shù)
字 符 函 數(shù) 列 表
函數(shù) | 說明 |
ASCII(x) | 返回字符x的ASCII碼 |
CHR(x) | 返回ASCII碼為x的字符 |
CONCAT(x,y) | 將y添加到x上,并將得到的字符串作為結(jié)果返回 |
INITCAP(x) | 將x中每個單詞的首字母都轉(zhuǎn)換成大寫,并返回處理結(jié)果 |
INSET(x,find_string[,start][,occurentce]) | 在x中查找字符串find_string,然后返回find_string所在的位置。可以提供一個可選的start位置來指定該函數(shù)從這個位置開始查找。同樣,也可以指定一個可選的occurrence參數(shù)來說明應該返回find_string第幾次出現(xiàn)的位置 |
LENGTH(x) | 返回x字符串的長度 |
LOWER(x) |
1.2 數(shù)字函數(shù)
數(shù)字函數(shù)可以用于計算。數(shù)字函數(shù)可以接受輸入的數(shù)字參數(shù),這些數(shù)字可以來自一個表的數(shù)字列,也可以是一個結(jié)果為數(shù)字的表達式。數(shù)字函數(shù)會對這些輸入的數(shù)字進行計算返回一個數(shù)字結(jié)果。數(shù)字函數(shù)的一個例子是SQRT(x),該函數(shù)返回x的平方根
函數(shù) | 說明 | 例子 |
ABS(x) | 返回x的絕對值 | ABS(10) = 10 ABS(-10) = 10 |
ACOS(x) | 返回x的反余弦 | ACOS(1) = 0 ACOS(-1) = 3.1415926 |
ASIN(x) | 返回x的反正弦 | 這些有興趣的朋友可以自行驗證。 |
ATAN(x) | 返回x的反正切 | |
ATAN2(x) | 返回x和y的反正切 | |
BITAND(x,y) | 返回對x和y進行位與(AND )操作的結(jié)果 | |
COS(x) | 返回x的余弦 | |
COSH(x) | 返回x的雙曲線余弦函數(shù) | |
CEIL(X) | 返回大于或等于x的最小整數(shù) | |
EXP(X) | 返回e的x次冪,x約等于2.7.18 | |
FLOOR(X) | 返回小于或等于x的最大整數(shù) | |
LOG(X,Y) | 返回以x為底y的對數(shù) | |
LN(x) | 返回x的自然對數(shù) | |
MOD(x,y) | 返回x除以y的余數(shù) | |
POWER(x,y) | 返回x的y次冪 | |
ROUND(x[,y]) | 返回對x取整的結(jié)果 | |
SIGN(x) | 如果x是負數(shù)則返回-1,如果是整數(shù),返回1,如果是0,返回0 | |
SIN(X) | 返回x的正弦函數(shù) | |
SINH(x) | 返回x的雙曲線正弦函數(shù) | |
SQRT(x) | 返回x的平方根 | |
TAN(x) | 返回x的正切函數(shù) |
1.3 轉(zhuǎn)換函數(shù)
有時可能需要將一個值從一種數(shù)據(jù)類型轉(zhuǎn)換為另一種數(shù)據(jù)類型。
ASCIISTR(x) | 將x轉(zhuǎn)換為一個ASCII字符串 |
BIN_TO_NUM(x) | 將二進制數(shù)字x轉(zhuǎn)換為NUMBER類型 |
DECODE(x,search,result,default) | 將x與search中的值進行比較,如果相等,返回result的值,否則返回default |
TO_BINARY_DOUBLE(x) | 將x轉(zhuǎn)換為一個BINARY_DOUBLE類型 |
TO_BINARY_FLOAT(x) | 將x轉(zhuǎn)換為一個BINARY_FLOAT類型 |
TO_BLOB(x) | 將x轉(zhuǎn)換為一個二進制大對象(BLOB)類型。 |
TO_CHAR(x[,format]) | 將x轉(zhuǎn)換為一個VARCHAR2字符串??梢灾付ㄒ粋€可選參數(shù)format來說明x的格式 |
TO_CLOB(x) | 將x轉(zhuǎn)換為一個字符大對象(CLOB)類型。 |
TO_DATE(x[,format]) | 將x轉(zhuǎn)換為一個DATE類型。 |
TO_TIMESTAMP(x) | 將字符串x轉(zhuǎn)換為一個TIMESTAMP類型 |
1.4 正則表達式函數(shù)
正則表達式中包含許多元字符。^可以匹配一個字符串的開頭:[5-8]可以匹配介于5~8之間的數(shù)字;$可以匹配一個字符串的結(jié)尾。
orcle中常用的元字符
元字符 | 說明 | 例子 |
\ | 說明要匹配的字符是一個特殊字符、常量 | \n匹配換行符 \\匹配\ \(匹配( \)匹配) |
^ | 匹配字符串的開頭位置 | |
$ | 匹配字符串的末尾位置 | |
* | 匹配前面的字符0次或多次 | ba*rk可以匹配brk,bark,baark |
+ | 匹配前面字符串1此或多次 | ba+rk可以匹配bark、baark等 |
? | 匹配前面的字符0次或1次 | |
{n} | 匹配一個字符恰好是n次, | hob{2}it可以匹配hobbit |
{n,m} | 匹配一個字符至少n次,最多m次 | |
. | 匹配出null之外的任意單個字符 | |
(pattern) | 匹配一個指定的子表達式 | |
x|y | 匹配x或者y, | |
{abc} | 匹配abc中的任意一個字符 | |
[a-z] | 匹配指定范圍內(nèi)的任意一個字符 | |
[::] | 指定一個字符類,可以匹配該類中的任何字符 | [:alphanum:]可以匹配字符0-9、A-Z和a-z [:alpha:]可以匹配字符A-Z和a-z [:blank:]可以匹配空格和tab鍵 [:digit:]可以匹配數(shù)字0-9 [:graph:]可以匹配非空字符 [:lower:]可以匹配小寫字母 |
[==] | 指定等價類 | |
\n | 這是對前一次捕獲的一個反向引用,其中n是一個正整數(shù) | |
\d | 數(shù)字字符 | |
\D | 非數(shù)字字符 | |
\w | 字母字符 | |
\W | 非字母字符 | |
\s | 空白字符 | |
\S | 非空白字符 | |
\A | 只匹配字符串的開頭位置 | |
\Z | 只匹配字符串的末尾位置 | |
*? | 匹配前面的模式元素0次或多次 | |
+? | 匹配前面的模式元素1次或多次 | |
?? | 匹配前面的模式元素0次或 | |
正則表達式函數(shù) | ||
函數(shù) | 說明 | |
REGEXP_LIKE(x,pattern[,match_option]) | 從x中搜索pattern參數(shù)中定義的正則表達式??梢允褂胢atch_option修改默認匹配選項 | |
REGEXP_INSRT(x,pattern[,start[,occurence[,rerturn_option[,match_option]]]]) | 在x中查找pattern,并返回pattern所在的位置??梢灾付ㄒ幌驴蛇x參數(shù): start:開始查找的位置。默認是1,指x的第一個字符 occurrence 說明應該返回當前第幾次出現(xiàn)pattern的位置 return_option 說明應該返回什么整數(shù) match_option 修改默認的匹配設置 | |
REGEXP_REPLACE(x,pattern[,replace_string[,start[,occurrence[,match_option]]]) | 在x中查找pattern,并將其替換為replace_string。其他選項請參照上一個方法 | |
二、使用聚合函數(shù)
函數(shù) | 說明 |
AVG(x) | 返回x的平均值 |
COUNT(x) | 返回一個包含x的查詢的行數(shù) |
MAX(x) | 返回x的最大值 |
MEDIA(x) | 返回x的中間值 |
MIN(x) | 返回x的最小值 |
STDDEV(x) | 返回x的標準差 |
SUM(x) | 返回x的和 |
VARIANCE(x) | 返回x的方差 |
三、對行進行分組GROUP BY,使用HAVING子句過濾行組。Having放在group不要之后.group by可以不與having一起使用,但是having必須與group by一起使用。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。