版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、,SQL內(nèi)置函數(shù)說明,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,數(shù)字格式元素,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,數(shù)字格式元素,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,日期格式元素,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,日期格式元素,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,日期格式元素,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,日期格式元素,一般地,日期格式說明符是不太敏感的。然而,當為了顯示而說明日期格式、對于文本數(shù)據(jù)中的說明符等情況下,它就變得比較務(wù)實、具體了。以月份的名字為例,通過下面引用的結(jié)果解釋一下該情況的效果
2、: TO_CHAR(SYSDATE,MONTH)=NOVEMBER TO_CHAR(SYSDATE,Month)=November TO_CHAR(SYSDATE,month)=november 當你鍵入的單詞MONTH(月份)是大寫字母時,月份名字的結(jié)果就全部說明為大寫。否則,如果串說明時的首字母是大寫,則返回的月份名首字母也是大寫字母。同樣的規(guī)則也適用于下面的格式說明符:AD、AM、PM、BC、DAY、DY、MON、RM和YEAR,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),ABS ABS函數(shù)返回一數(shù)值的絕對值。負數(shù)將舍去其負號。下面是它的語法格式: ABS(num
3、ber) 其中,number是希望得到其絕對值的數(shù)值 ABS函數(shù)截去數(shù)值的符號。如下例所示: ABS(5)=5 ABS(5)=5 不管是5還是-5,其絕對值均為5。,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),ACOS ACOS函數(shù)返回一數(shù)值的反余弦值。結(jié)果以弧度表示,且在0到PI之間。 其語法格式如下: ACOS(number) 其中,number必須是-1與1之間的值 下面的例子顯示了1和-1 的反余弦值: ACOS(1)=0 ACOS(-1)=3.1415927(PI),Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),ADD_MONTHS AD
4、D_MONTHS函數(shù)將一個日期上加上一指定的月份數(shù),所以,日期中的日將是不變的。然而,如果開始日期是某月的最后一天,那么,結(jié)果將會調(diào)整以使返回值仍對應(yīng)新的一月的最后一天。如果,結(jié)果月份的天數(shù)比開始月份的天數(shù)少,那么,也會向回調(diào)整以適應(yīng)有效日期。其語法格式如下: ADD_MONTHS(date,months) 其中: date一個日期數(shù)值 months要加上的月份數(shù)。要減去的月份數(shù)用負數(shù) 下面的例子解釋了該函數(shù)的使用: ADD_MONTHS(TO_DATE(15-Nov-1961,d-mon-yyyy),1)=15-Dec-1961 ADD_MONTHS(TO_DATE(30-Nov-1961,
5、d-mon-yyyy),1)=31-Dec-1961 ADD_MONTHS(TO_DATE(31-Jan-1999,d-mon-yyyy),1)=28-Feb-1999 注意,在上面的第三個例子中,函數(shù)將不得不將31日往回調(diào)整為28日,已使結(jié)果對應(yīng)新一月的最后一天。因為,1999年的2月份只有28天。在第二個例子中,則是從30往后調(diào)整為31,也同樣是為了保持對應(yīng)的最后一天。,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),ASCII ASCII函數(shù)返回你指向的字符串首字母的十進制表示代表碼值。該返回值或許是ASCII碼值,也或許不是。如果用戶的數(shù)據(jù)庫字符集是7位的ASCII
6、值,那就得到一ASCII碼值。該返回值總是以用戶使用的字符集為基礎(chǔ)的。 ASCII(string) 其中:string一個字符串。更多的時候就是一字符 下面的例子解釋了該函數(shù)的使用: ASCII(j)=74 ASCII(jeff)=74 從上面的第二個例子,我們不難看出,如果指定了一個多字符串,該函數(shù)將忽略除首字母外的所有字符。,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),ASIN ASIN函數(shù)返回一數(shù)值的反正弦值。結(jié)果以弧度表示,且在-PI/2到PI/2之間。 其語法格式如下: ASIN(number) 其中:number必須是-1與1之間的值 下面的例子顯示了1和-
7、1的反正弦值: ASIN(1)=1.57 ASIN(-1)=-1.57,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),ATAN ATAN函數(shù)返回一數(shù)值的反正切值。結(jié)果以弧度表示,且在-PI/2到PI/2之間。 其語法格式如下: ATAN(number) 其中:number必須是-1與1之間的值 下面的例子顯示了1和-1 的反正切值: ATAN(1)=0.7854 ATAN(-1)=-0.7854,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),ATAN2 ATAN2函數(shù)返回兩個數(shù)值的反正切值。結(jié)果以弧度表示。 其語法格式如下: ATAN2(first,
8、second) 其中: first第一個數(shù) second第二個數(shù) 函數(shù)ATAN2(first,second)與函數(shù)TAN(first/second)的功能是相同的。 下面的例子顯示了1和-1的反正切值: ATAN2(1,.5)=1.107 TAN(1/.5)=1.107,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),BFILENAME BFILENAME函數(shù)返回一指向磁盤的物理文件的BFILE地址。 其語法格式如下: BFILENAME(directory,filename) 其中: directory 一個包括指定文件的目錄路徑字符串。 該目錄通過命令CREATE DI
9、RECTORY產(chǎn)生。 但它不是一個操作系統(tǒng)目錄 filename 指定目錄中用戶試圖指定的文件名字。 該文件可以是預先不存在的文件 下面的例子解釋了BFILENAME函數(shù)的使用情況: BFILENAME(gif_dir,book_photo.gif),Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),CEIL CEIL函數(shù)根據(jù)輸入值返回一個數(shù)值。輸入?yún)?shù)可以是非整數(shù)值,但返回結(jié)果則是大于等于輸入?yún)?shù)的最小整數(shù)。 其語法格式如下: CEIL(number) 其中: number任意數(shù)值,十進制數(shù) 下面的例子解釋了CEIL函數(shù)的使用情況: CEIL(5.1)=6 CEIL(-5.
10、1)=-5 應(yīng)注意,對于負數(shù)使用該函數(shù)的結(jié)果。大于等于-5。1的最小整數(shù)精確地講應(yīng)該是-5。這是數(shù)學上的情況,但首先也是記數(shù)中知覺上的感覺。,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),CHARTOROWID CHARTOROWID函數(shù)將一個字符串轉(zhuǎn)換成rowid類型。 其語法格式如下: CHARTOROWID(string) 其中: string待處理的字符串。該字符串應(yīng)該能表示一個有效的rowid型數(shù)據(jù) 下面的例子解釋了CHARTOROWID函數(shù)的使用情況: SQLSELECT ROWID FORM dual; ROWID - AAAADCAABAAAAVUAAA
11、SQLSELECT * FORM dual 2 WHERE ROWID=CHARTOROWID(AAAADCAABAAAAVUAAA); D - X,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),CHR CHR函數(shù)就相應(yīng)的數(shù)據(jù)庫字符集,返回一個指定數(shù)值相應(yīng)的字符。例如,給定一個ASCII值,使用CHR函數(shù)返回該數(shù)值表示的字符。 其語法格式如下: CHR(integerUSING NCHAR_CS) 其中: integer在相應(yīng)的字符集中,代表對應(yīng)字符的整數(shù)類型 USING NCHAR_CS指明相應(yīng)的字符集 下面的例子解釋了CHR函數(shù)的使用情況: CHR(10)=a tab
12、 character CHR(65)=A 這些例子假設(shè)基于ASCII字符集,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),CONCAT CONCAT函數(shù)將兩個輸入字符串,組合成一個,并返回結(jié)果。 其語法格式如下: CONCAT(string_1,string_2) 其中: string_1第一個字符串 string_2第二個字符串。該字符串將被拼接在第一個字符串的尾部 下面的例子解釋了CONCAT函數(shù)的使用情況: CONCAT(This is,a test)=This is a test,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),CONVERT
13、CONVERT函數(shù)把一字符串從一個字符集轉(zhuǎn)換到另一字符集。 其語法格式如下: CONVERT(string,dest_char_set,source_char_set) 其中: string待轉(zhuǎn)換的字符串 dest_char_set目標字符串 source_char_set源字符集。省略默認數(shù)據(jù)庫字符集 下面的例子解釋了CONVERT函數(shù)的使用情況: CONVERT(Jonathan,WE8EBDIC37C,US7ASCII) CONVERT(Jonathan,WE8ROMAN8) 第一個例子從US7ASCII字符集轉(zhuǎn)換。第二個例子從默認數(shù)據(jù)庫字符集轉(zhuǎn)換。,Oracle 8i數(shù)據(jù)庫管理,Win
14、nerSoft,SQL內(nèi)置函數(shù),COS COS函數(shù)返回一角度的余弦值。結(jié)果為弧度值。 其語法格式如下: COS(angle) 其中: angle角度值,用弧度表示 下面的例子解釋了COS函數(shù)的使用情況: COS(90*3.14/180)=.000796 COS(0)=1,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),COSH COSH函數(shù)返回一角度的雙曲余弦值。 其語法格式如下: COSH(angle) 其中: angle角度值,以弧度表示 下面的例子解釋了COSH函數(shù)的使用情況: COSH(0)=1 COSH(90*3.14/180)=2.507 將角度值轉(zhuǎn)化成弧度值,
15、可以參考COS函數(shù)的有關(guān)部門信息,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),DECODE(一) DECODE函數(shù)相當于一條件語句(IF).它將輸入數(shù)值與函數(shù)中的參數(shù)列表相比較,根據(jù)輸入值返回一個對應(yīng)值。函數(shù)的參數(shù)列表是由若干數(shù)值及其對應(yīng)結(jié)果值組成的若干序偶形式。當然,如果未能與任何一個實參序偶匹配成功,則函數(shù)也有默認的返回值。區(qū)別于SQL的其它函數(shù),DECODE函數(shù)還能識別和操作空值。 其具體的語法格式如下: DECODE(input_value,value,result,value,result,default_result); 其中: input_value試圖處
16、理的數(shù)值。DECODE函數(shù)將該數(shù)值與一系列的序偶相比較,以決定最后的返回結(jié)果 value是一組成序偶的數(shù)值。如果輸入數(shù)值與之匹配成功,則相應(yīng)的結(jié)果將被返回。對應(yīng)一個空的返回值,可以使用關(guān)鍵字NULL于之對應(yīng) result是一組成序偶的結(jié)果值 default_result未能與任何一序偶匹配成功時,函數(shù)返回的默認值 下面的例子說明了,人們?nèi)绾巫x取用戶CHECKUP表SEAPARK中的BLOOD_TEST_FLAG列下的項目,作為DECODE函數(shù)的實參支持值。 SELECT checkup_type, DECODE(blood_test_flag,Y,Yes,N,No,NULL,None, Inv
17、alid) FROM checkup;,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),DECODE(二) 這個SQL語句展示了DECODE函數(shù)的左右基礎(chǔ)功能特征。函數(shù)的輸入值時BLOOD_TEST_FLAG列的數(shù)據(jù),如果該列的值是Y,那么,函數(shù)返回YES。如果該列的值是NULL,那么,函數(shù)返回None。如果沒有與任何一個序偶匹配成功,則表示該列當前值無效,函數(shù)返回Invalid。 在SQL疑難問題中,DECODE函數(shù)常常發(fā)揮非常靈活的作用。其中的一個技術(shù)就是為了某種目的可以將一個表的行轉(zhuǎn)換成列。例如: SQLSELECT TO_CHAR(TRUNC(BIRTH_DATE,
18、YEAR),YYYY), 2COUNT(*) 3FROM AQUATIC_ANIMAL 4WHERE TO_CHAR(TRUNC(BIRTH_DATE,YEAR),YYYY) 5IN(1995,1996,1997) 6GROUP BY TO_CHAR(TRUNC(BIRTH_DATE,YEAR),YYYY); TO_C COUNT(*) - - 19951 19963 19971,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),該例告訴我們,1995、1996和1997年各出生了多少動物。每一行顯示不同的年。一旦希望將這些數(shù)值顯示成3列,該如何處理?可以通過如表B-1所示的
19、方法處理之。,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,該例中,為了生成結(jié)果集合中的3列,BIRTH_DATE被引用了3 次。為了過濾出正確的返回年份,每次引用均引用了函數(shù)DECODE。例如,在第一列中,DECODE函數(shù)將所有的1995日期值轉(zhuǎn)換成1,其他的均轉(zhuǎn)換成0,再利用SUM函數(shù)求出其匯總值,從而達到求取在1995年誕生的動物數(shù)目。1996和1997年的情況類似。,SQL內(nèi)置函數(shù),EMPTY_BLOB EMPTY_BLOB函數(shù)返回一空的BLOB指針,該指針可以用在INSERT或UPDATE命令中,以初始化BLOB列項。 其具體的語法格式如下: EMPTY_BLOB() 該函數(shù)沒
20、有參數(shù)。下面的例子說明了如何使用該函數(shù)初始化BLOB列,并作為一個新行插入到表中。 INSERT INTO some_table (blob_column) VALUE(EMPTY_BLOB();,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),EMPTY_CLOB EMPTY_CLOB函數(shù)與EMPTY_BLOB函數(shù)的功能類似,只不過對應(yīng)CLOB而已。它返回一空的CLOB指針,該指針可以用在INSERT或UPDATE命令中,以初始化CLOB列。 其具體的語法格式如下: EMPTY_CLOB() 該函數(shù)沒有參數(shù)。下面的例子說明了如何使用該函數(shù)初始化CLOB列,并作為一個新行插
21、入到表中。 INSERT INTO some_table (clob_column) VALUE(EMPTY_CLOB();,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),EXP EXP函數(shù)返回e的一個冪。在數(shù)學上e經(jīng)常被用來表示一指定的特殊數(shù)值(一個十進制的無限數(shù))2.178,它是數(shù)學的基礎(chǔ)。其具體的語法格式如下: EXP(exponent) 其中: exponent返回e的少次(exponent)冪 下面是該函數(shù)的使用情況: EXP(1)=2.7182818 EXP(3)=20.085537(2.7182818*2.7182818*2.7182818),Oracle
22、8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),FLOOR FLOOR函數(shù)返回一個小于或等于給定十進制數(shù)的最大整數(shù)。該函數(shù)的工作機制與函數(shù)CEIL的情況極為相似,但卻正好相反。 其具體的語法格式如下: FLOOR(number) 其中: number任意數(shù),包括十進制數(shù) 下面是該函數(shù)的使用情況: FLOOR(5.1)=5 FLOOR(-5.1)=-6 為了理解函數(shù)FLOOR和函數(shù)CEIL在處理負數(shù)時的不同機制,可以比較函數(shù)FLOOR(5.1)和函數(shù)CEIL(-5.1)的執(zhí)行結(jié)果。,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),GREATEST GREATEST函數(shù)返
23、回一數(shù)值列表中的最高數(shù)值??墒褂肎REATEST函數(shù)處理數(shù)字數(shù)據(jù)和字符數(shù)據(jù)。 其具體的語法格式如下: GREATEST(value,value,value,) 其中: value數(shù)字數(shù)據(jù)或文本數(shù)據(jù)。一般地,所有數(shù)值的類型應(yīng)該一致。如果給定的數(shù)據(jù)類型相混,返回值將匹配第一個參數(shù)類型,其余的所有參數(shù)自然被轉(zhuǎn)換成對應(yīng)的類型 下面是該函數(shù)的使用情況: GREATEST(1,3,9,45,93,2,-100)=93 GREATEST(Jenny,Jeff,Ashley)= Jenny GREATEST(11,101)=11 第三個例子反映了參數(shù)類型相混時的函數(shù)處理情況。因為第一的數(shù)據(jù)類型是字符串,所以,
24、Oracle將數(shù)字1轉(zhuǎn)換成字符串1,以匹配對應(yīng)的數(shù)據(jù)類型。雖然在數(shù)值上101大于11,但如果都轉(zhuǎn)換成字符串,則結(jié)果正好相反。這種情況下,11大于101,并且,也是函數(shù)的返回結(jié)果。,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),HEXTORAW 函數(shù)HEXTORAW將一個由十六進制字符組成的字符串轉(zhuǎn)換成一個raw數(shù)值。 其具體的語法格式如下: HEXTORAW(string) 其中: string十六進制字符組成的字符串數(shù)據(jù),Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,注意:在調(diào)用函數(shù)時,raw項中的數(shù)值是精確表示的(十進制數(shù)65=十六進制數(shù)41),SQL內(nèi)置函數(shù),
25、INITCAP INITCAP函數(shù)接收一字符串,并轉(zhuǎn)換該字符串中的所有單詞,以使各單詞均以大寫字母開頭。 其的語法格式如下: INITCAP(string) 其中: string任意一VARCHAR2或CHAR型數(shù)據(jù) 下面是該函數(shù)的使用情況。 INITCAP(This is a test)=This Is A Test,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),INSTR 函數(shù)INSTR會告訴用戶,其中的一個字符串(參數(shù))是否在另一個字符串(也是參數(shù))當中。 其具體的語法格式如下: INSTR(string,substring,start,occurrence) 其中
26、: string待查詢的字符串 substring正在搜索的字符串 start說明開始搜索的字符位置。默認值是1,就是說,搜索將從字符串的第一個字符開始。如果,參數(shù)為負則表示搜索的位置從右邊開始計算,而不是默認的從左邊開始 occurrence指定試圖搜索的子串的第幾次出現(xiàn),默認值是1,意味著希望其首次出現(xiàn) 該函數(shù)反饋一索引順序值,在該位置發(fā)現(xiàn)了要搜索的子串。下面的例子指出了INSTR函數(shù)的使用情況: INSTR(AAABAABA,B)=4 INSTR(AAABAABA,B,1,2)=7,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),Oracle 8i數(shù)據(jù)庫管理,Winn
27、erSoft,INSTRB 該函數(shù)與INSTR的功能極為類似,也將反饋其中的一個字符串(參數(shù))是否在另一個字符串(也是參數(shù))當中。只是該函數(shù)返回的是一字節(jié)索引位置,而不是一字符索引位置。其實,僅僅在多個字符集同時被使用時,這種不同才有意義。 其具體的語法格式如下: INSTRB(string,substring,start,occurrence) 其中: string待查詢的字符串 substring正在搜索的字符串 start說明開始搜索的字符位置。默認值是1,就是說,搜索將從字符串的第一個字符開始。如果,參數(shù)為負則表示搜索的位置從右邊開始計算,而不是默認的從左邊開始 occurrence指
28、定試圖搜索的子串的第幾次出現(xiàn),默認值是1,意味著希望其首次出現(xiàn) 該函數(shù)反饋一索引順序值,在該位置發(fā)現(xiàn)了要搜索的子串。下面的例子指出了INSTRB函數(shù)的使用情況: INSTRB(AAABAABA,B)=4 INSTRB(AAABAABA,B,1,2)=7,SQL內(nèi)置函數(shù),LAST_DAY 函數(shù)LAST_DAY返回實參數(shù)指定日期對應(yīng)月份的最后一天。其具體的語法格式如下: LAST_DAY(date) 其中: date一日期數(shù)值 下面是該函數(shù)的使用情況: LAST_DAY(TO_DATE(29-Dec-1988,dd-mon-yyyy) =31-Dec-1988 LAST_DAY(TO_DATE(1
29、-Feb-2000,dd-mon-yyyy) =29-Feb-2000,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),LEAST LEAST函數(shù)返回參數(shù)給定的數(shù)值列表中的最小值。對數(shù)值數(shù)據(jù)或字符串數(shù)據(jù)均有效。 其具體的語法格式如下: LEAST(value,value,value,) 其中: value一數(shù)字或文本數(shù)值。尤其要注意的是所有的數(shù)據(jù)類型應(yīng)該一致。如果類型相混,返回值將匹配第一個參數(shù)的數(shù)據(jù)類型,而且,其它所有的參數(shù)均被轉(zhuǎn)換成該參數(shù)的數(shù)據(jù)類型 下面是該函數(shù)的使用情況: LEAST(1,3,9,45,93,2,-100)=-100 LEAST(Jenny,Jeff,
30、Ashley)=Ashley LEAST(110,12)=110 第三個例子說明了,當參數(shù)的數(shù)據(jù)類型相混時函數(shù)的處理機制。因為第一個參數(shù)實字符串,所以,將數(shù)字1轉(zhuǎn)換成字符串1,一匹配對應(yīng)的數(shù)據(jù)類型。雖然在數(shù)值上110大于12,但如果都轉(zhuǎn)換成字符串,則結(jié)果正好相反。這種情況下,12大于110(一順序為基礎(chǔ)),這就是函數(shù)的返回結(jié)果。,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),LENGTH LENGTH函數(shù)返回字符串的長度。 其具體的語法格式如下: LENGTH(string) 其中: string任意字符串 下面是該函數(shù)的使用情況: LENGTH(This is shor
31、t)=13 LENGTH(This is a bit longer)=20,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),LENGTHB LENGTHB函數(shù)返回字符串的長度。但在多字符集同時使用時會有所區(qū)別。 其具體的語法格式如下: LENGTHB(string) 其中: string任意字符串 下面是該函數(shù)的使用情況: LENGTHB(This is short)=13 LENGTHB(This is a bit longer)=20,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),LN 函數(shù)LN返回一數(shù)值的自然對數(shù)。 其具體的語法格式如下: LN(
32、number) 其中: number大于0的任意數(shù)值 下面是該函數(shù)的使用情況: LN(10)=2.3025851 EXP(2.3025851)=10 可見,將函數(shù)LN的結(jié)果作為參數(shù),通過再調(diào)用函數(shù)EXP可得到函數(shù)LN的原參數(shù)值。,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),LOG LOG函數(shù)返回數(shù)值的非自然對數(shù)。 其具體的語法格式如下: LOG(logbase,number) 其中: logbase除1和0以外的任意數(shù)值,是對數(shù)的底 number及對數(shù)的真數(shù) 下面是該函數(shù)的使用情況: LOG(10,100)=2 LOG(EXP(1),10)=2.3025851=LN(1
33、0) 因為102等于100,所以,以10為底時100的對數(shù)是2。注意:LOG(e,x)=LN(x).可以使用EXP(1)得到e的值。,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),LOWER 函數(shù)LOWER返回參數(shù)指定字符串的小寫形式。 其具體的語法格式如下: LOWER(atring) 其中: string任意VARCHAR2型或CHAR型的數(shù)值 下面是該函數(shù)的使用情況: LOWER(This IS a Test)=This is a test,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),LPAD LPAD函數(shù)從左面填充指定的字符串。 其具體的語
34、法格式如下: LPAD(string,numchars,padding) 其中: string任意VARCHAR2型或CHAR型的字符串 numchars返回字符串的字符個數(shù) padding填充字符。是一可選項,默認為單個空格 下面是該函數(shù)的使用情況: LPAD(Jenny,10)=Jenny(5 leading spaces) LPAD(Jenny,10,*)=*Jenny LPAD(Jenny,10,*!)=*!*!*Jenny,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),LTRIM LTRIM函數(shù)刪除字符串左邊的前綴字符。一般前綴字符總是空格。 其具體的語法格式如
35、下: LTRIM(string,trimchars) 其中: string任意VARCHAR2型或CHAR型的數(shù)值 trimchars待刪除的字符串 下面是該函數(shù)的使用情況: LTRIM( Jeff)=Jeff(leading spaces removed) LTRIM(*Jeff,*)=Jeff LTRIM(*!*!*Jeff,*!)=Jeff,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),MOD MOD函數(shù)返回一個數(shù)除以另一數(shù)的余數(shù)。 其具體的語法格式如下: MOD(number,divisor) 其中: number任意數(shù)值 divisor任意數(shù)值。該函數(shù)計算num
36、ber/divisor的余數(shù) 下面是該函數(shù)的使用情況: MOD(14,12)=2(1400 hours=2:00 OClock) MOD(10,10)=0 MOD(10,0)=10 注意:如果除數(shù)為0則返回原來的數(shù),Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),MONTHS_BETWEEN MONTHS_BETWEEN函數(shù)返回兩個日期之間的月份數(shù) 其具體的語法格式如下: MONTHS_BETWEEN(date_1,date_2) 其中: date_1日期型數(shù)據(jù) date_2一日期型數(shù)據(jù) 如果兩個參數(shù)代表的是某月中的同一日期,或它們軍代表的某月中的最后一天,則該函數(shù)返回一整
37、型值。否則,將返回一分數(shù)。另外,如果第一個參數(shù)代表的日期小于第二個參數(shù)代表的日期,則返回一負值。 下面是該函數(shù)的使用情況: MONTHS_BETWEEN(TO_DATE(29-Dec-1999,dd-mon-yyyy), TO_DATE(29-Dec-1988,dd-mon-yyyy))=132 MONTHS_BETWEEN(TO_DATE(29-Dec-1999,dd-mon-yyyy), TO_DATE(24-Nov-1988,dd-mon-yyyy))=133.16129 在第一個例子中,兩個參數(shù)均為某一月中的29號,所以返回一整型值(其間相差的月份數(shù)),在第二個例子中,因兩個參數(shù)表示的
38、日期不是同一天,所以返回一分數(shù)(以31天為基礎(chǔ)計算處理),Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),NEW_TIME NEW_TIME函數(shù)將在時區(qū)間轉(zhuǎn)換日期/時間數(shù)據(jù)。 其具體的語法格式如下: NEW_TIME(date,oldzone,newzone) 其中: date一日期數(shù)值。在Oracle中,除其自己以外,所有日期數(shù)值都有時間和記號這樣的成分 oldzone代表時區(qū)的字符串。有效的時區(qū)如表所示。被推算出的日期數(shù)值就在該時區(qū)當中 newzone也是代表時區(qū)的字符串。被從老時區(qū)到新時區(qū)轉(zhuǎn)換的日期數(shù)值 下面是該函數(shù)的使用情況: NEW_TIME(TO_DATE(25
39、-Dec-1999 8:00,dd-mom-yyyy HH:MI),EST,PST)=25-DEC-1999 05:00,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),NEXT_DAY NEXT_DAY函數(shù)返回從實參日期開始,緊隨其后的指定星期對應(yīng)的日期。 其具體的語法格式如下: NEXT_DAY(date,weekday) 其中: date一日期數(shù)據(jù) weekday一字符串,說明某一天的星期幾的名稱??梢允褂萌Q,也可以使用縮寫,但對于用戶的編程語言做的日期設(shè)置來說必須是有效的日期 下面是該函數(shù)的使用情況: NEXT_DAY(TO_DATE(24-Nov-1999),d
40、d-mon-yyyy,FRIDAY) =26-Nov-1999 NEXT_DAY(TO_DATE(24-Nov-1999),dd-mon-yyyy,WED) =01-Dec-1999 注意:在第二個例子當中,24-Nov-1999正好落在星期三:Wednesday。下一個WED自然就是1-Dec-1999,所以,函數(shù)NEXT-DAY返回的結(jié)果就是 01-Dec-1999,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),NVL NVL函數(shù)需要兩個參數(shù)。如果第一個參數(shù)為空,則返回第二個參數(shù)。第二個參數(shù)表示是第一個參數(shù)的替換對象。 其具體的語法格式如下: NVL(value,al
41、ternative) 其中: value一個可為空的值。它不為空的時候?qū)⒆鳛榉祷刂?alternative只要它不是空的就是將被返回的值 下面是該函數(shù)處理數(shù)據(jù)庫的某些列包括空值時的情況: SELECT emp_id,NVL(emp_name,Name Missing!) FROM emp_table; 在該例中,如果雇員有名字,將通過該函數(shù)返回其名字。如果雇員的名字為空,將返回Name Missing!,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),POWER 函數(shù)POWER返回一個數(shù)值的指定次冪。 其具體的語法格式如下: POWER(number,power) 其中:
42、number任意數(shù)值 power冪次數(shù)。函數(shù)的結(jié)果其實即:number冪次。如果第一個參數(shù)為負數(shù),則該冪次數(shù)務(wù)必是一整數(shù)。其它情況可為任意數(shù)值 下面是該函數(shù)的使用情況: POWER(10,2)=100(10*10) POWER(10,3)=1000 POWER(-10,3)=-1000,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),RAWTOHEX RAWTOHEX函數(shù)將一raw轉(zhuǎn)換成十六進制字符表示的串值。 其具體的語法格式如下: RAWTOHEX(raw_value) 其中: raw_value一RAW型數(shù)值 下面是該函數(shù)的使用情況: SQLCREATE TABLE
43、xx(y raw(10); Table created. SQLINSERT INTO xx VALUES(HEXTORAW(414243); 1 row created. SQLSELECT RAWTOHEX(y) FORM xx; RAWTOHEX(Y) - 414243,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),REPLACE REPLACE函數(shù)在一字符串中搜索一指定的子串,并將其替換成另外一指定串。 其具體的語法格式如下: REPLACE(string,substring,replace_string) 其中: string被搜索字符串。在其中搜索待替換串 s
44、ubstring被搜索子串。所有找到的子串均被替換掉 replace_string替換結(jié)果子串。是一可選項。如果該參數(shù)被忽略,則所有被搜索到的子串實質(zhì)上均被刪除 下面是該函數(shù)的使用情況: REPLACE(This is a test,is,was)=Thwas was a test REPLACE(This is a test,is)=Th a test,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),ROUND(for dates) ROUND函數(shù)將一日期處理(舍入)成第二個參數(shù)指定的形式。 其具體的語法格式如下: ROUND(date,fmt) 其中: date一個日期
45、數(shù)值 fmt是一個日期格式說明符。指定日期將被處理成該說明符指定的形式。省略該參數(shù),則指定日期將被處理到最近的一天 下面是該函數(shù)的使用情況: ROUND(TO_DATE(24-Nov-1999 08:00 pm,dd-mon-yyyy hh:mi am) =25-Nov-1999 12:00:00 am ROUND(TO_DATE(24-Nov-1999 08:37 pm,dd-mon-yyyy hh:mi am),hh) =24-Nov-1999 09:00:00 am 注意:這種處理過程可能意味著日期數(shù)值的改變。在第一個例子中,因為8:00 PM是緊鄰第二天的一精確值,所以處理結(jié)果被轉(zhuǎn)到下
46、一天(25th)而不是當天(24th).,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),ROUND(for number) ROUND函數(shù)將一數(shù)值處理(舍入)成第二個參數(shù)指定的形式的十進制數(shù)。 其具體的語法格式如下: ROUND(value,places) 其中: value試圖轉(zhuǎn)換的數(shù)值 places結(jié)果中的十進制數(shù)位置。必須是一正整數(shù),但可能是一負數(shù)。如果是負數(shù),數(shù)字就被精確地處理在從小數(shù)點其左數(shù)的十進制數(shù) 下面是該函數(shù)的使用情況: ROUND(89,985,2)=89.90(Note that .005 is rounded up.) ROUND(89,985,-1
47、)=90 ROUND(89,985,-2)=100,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),ROWIDTOCHAR ROWIDTOCHAR函數(shù)將一行標志碼(ROWID)轉(zhuǎn)換成一字符串。 其具體的語法格式如下: ROWIDTOCHAR(rowid) 其中: rowid一ROWID型數(shù)據(jù) 下面是該函數(shù)的使用情況: SQLSELECT ROWIDTOCHAR(ROWID) FROM dual; ROWIDTOCHAR(ROWID) - AAAADCAABAAAAVUAAA,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),RPAD RPAD函數(shù)在字符串的
48、后面追加若干字符。 其具體的語法格式如下: RPAD(string,numchars,padding) 其中: string任意VARCHAR2型或CHAR型的數(shù)據(jù) numchars函數(shù)結(jié)果串的長度 padding追加字符,單個的。是可選項,默認為空格 下面是該函數(shù)的使用情況: RPAD(Jenny,10)=Jenny (5 trailing spaces) RPAD(Jenny,10,*)=Jenny* RPAD(Jenny,10,*!)=Jenny*!*!*,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),RTRIM RTRIM函數(shù)壓縮掉串右面的尾隨字符,常常是從指定字
49、符串(第一參數(shù))中壓縮空格。 其具體的語法格式如下: RTRIM(string,trimchars) 其中: string任意VARCHAR2型或CHAR型的數(shù)據(jù) trimchars準備壓縮掉的字符(串) 下面是該函數(shù)的使用情況: RTRIM(Jeff )= Jeff(trailing spaces removed) RTRIM(Jenny*)= Jeff RTRIM(Jenny*!*!*)= Jeff,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),SIGN SIGN函數(shù)返回實參的符號。對于負數(shù)返回-1,0返回0,正數(shù)返回+1。 其具體的語法格式如下: SIGN(valu
50、e) 其中: value輸入的實參,你試圖返回它的符號 下面是該函數(shù)的使用情況: SIGN(-100)=-1 SIGN(0)=0 SIGN(100)=1 可以使用該函數(shù)和DECODE函數(shù),根據(jù)一個數(shù)值的正、負或0,指明表達式間的不同。,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),SIN SIN函數(shù)返回一個角度的正弦值。 其具體的語法格式如下: SIN(angle) 其中: angle待求解其正弦的角度。是一角度表達式??蓞⒖己瘮?shù)COS了解從弧度到角度的轉(zhuǎn)換 下面是該函數(shù)的使用情況: SIN(90*3.1415926/180)=1 SIN(0)=0,Oracle 8i數(shù)據(jù)
51、庫管理,WinnerSoft,SQL內(nèi)置函數(shù),SOUNDEX SOUNDEX函數(shù)根據(jù)以下規(guī)則返回一個字符串的發(fā)音描述。 1、保留字符串的首字母 2、刪除下面的所有字母:a、e、h、I、o、u、w和y。 3、首字母后面的任一字母均按如下規(guī)則匹配于某一數(shù)字: b,f,p,v=1 c,g,j,k,q,s,x,z=2 d,t=3 I=4 m,n=5 r=6 4、結(jié)果被縮寫并轉(zhuǎn)換成一個4位的數(shù)字 其具體的語法格式如下: SOUNDEX(string) 其中: string任意字符串 下面是該函數(shù)的使用情況: SOUNDEX(Gennick)=520 SOUNDEX(Genick)=520 SOUNDEX
52、(Genyk)=520,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),SORT SORT函數(shù)返回一數(shù)字的算術(shù)平方根。 其具體的語法格式如下: SORT(number) 其中: number試圖求解其平方根的數(shù)值,非負數(shù) 下面是該函數(shù)的使用情況: SORT(100)=10(because 10*10-100) SORT(100)=3.1622777,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),SUBSTR SUBSTR返回一字符串得指定字串。 其具體的語法格式如下: SUBSTR(string,start,length) 其中: string任意字符
53、串 start字串的開始位置。第一個位置總匹配為1。該參數(shù)可以為負數(shù),這時從給定字符串的右面數(shù)起 length待匹配字串的長度。是一可選項,忽略它則匹配整個字符串 下面是該函數(shù)的使用情況: SUBSTR(JennyJeffJonathan,6,4)=Jeff SUBSTR(JennyJeffJonathan,-12,4)=Jeff SUBSTR(JennyJeffJonathan,-8)=Jonathan,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),SUBSTRB SUBSTRB返回一字符串的指定部分。該函數(shù)與SUBSTR極為類似,只是該函數(shù)的start和length兩
54、參數(shù)均以字節(jié)為單位,而不是根據(jù)字符。這種區(qū)別只有在使用多種不同的字符集時才有意義。 其具體的語法格式如下: SUBSTRB(string,start,length) 其中: string任意字符串 start字串的開始位置。第一個位置總匹配為1。該參數(shù)可以為負數(shù),這時從給定字符串的右面數(shù)起 length待匹配字串的長度。是一可選項,忽略它則匹配整個字符串 下面是該函數(shù)的使用情況: SUBSTRB(JennyJeffJonathan,6,4)=Jeff SUBSTRB(JennyJeffJonathan,-12,4)=Jeff SUBSTRB(JennyJeffJonathan,-8)=Jona
55、than,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),SYSDATE SYSDATE函數(shù)返回當前日期時間,一直到秒。 其具體的語法格式如下: SYSDATE SYSDATE沒有參數(shù)。 下面是該函數(shù)的使用情況: SQLSELECT SYSDATE FROM DUAL; SYSDATE - 24-Nov-1999 06:45:00 pm 當然,結(jié)果會由于用戶調(diào)用該函數(shù)的時機不同而不同。,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),TAN TAN函數(shù)返回一個角度的正切值。 其具體的語法格式如下: TAN(angle) 其中: angle用弧度表示??蓞?/p>
56、考函數(shù)COS了解從弧度到角度的轉(zhuǎn)換 下面是該函數(shù)的使用情況: TAN(225*3.1415926535/180)=1 TAN(0)=0,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),TANH TANH函數(shù)返回一個角度的十六進制正切值。 其具體的語法格式如下: TANH(angle) 其中: angle用弧度表示。可參考函數(shù)COS了解從弧度到角度的轉(zhuǎn)換 下面是該函數(shù)的使用情況: TANH(225*3.1415926535/180)=.99922389 TANH(0)=0,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),TO_CHAR(for dates)
57、 TO_CHAR函數(shù)將一個日期型數(shù)據(jù)轉(zhuǎn)換成一個字符型數(shù)據(jù)。 其具體的語法格式如下: TO_CHAR(date,fmt,NLS_DATE_LANGUAGE=language) 其中: date任一DATE型數(shù)據(jù) fmt一個日期格式說明符,它控制了代表日期型數(shù)據(jù)的字符型結(jié)果 language 使用的語言,它對日期拼讀有影響,如在使用月份、日子、星期等時 下面是該函數(shù)的使用情況: SQLSELECT TO_CHAR(SYSDATE,dd-Mon-yyyy) FROM dual; TO_CHAR(SYS - 24-Nov-1999 SQLSELECT TO_CHAR(SYSDATE,Month,NLS
58、_DATE_LANGUAGE=Spanish) FROM dual; TO_CHAR(SY - November,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),TO_CHAR(for numbers) TO_CHAR函數(shù)將一個數(shù)值型數(shù)據(jù)轉(zhuǎn)換成一個字符型數(shù)據(jù)。 其具體的語法格式如下: TO_CHAR(date,fmt,nlsparams) 其中: date任一數(shù)值型數(shù)據(jù) fmt一個數(shù)字格式說明符,它控制了代表日期型數(shù)據(jù)的字符型結(jié)果 nlsparams數(shù)字的語言特征。該參數(shù)是由若干下列內(nèi)容組成的字符串:NLS_NUMERIC_CHARACTERS=“dg”,NLS_CURRE
59、NCY=“currchar”,及NLS_TERRITORY=territory d和g表示十進制符號和分隔符(在美國為逗號)。貨幣數(shù)值(在美國的一個($)符號)常用來表示金錢數(shù)值。這兩種數(shù)值均必須放在引號中 下面是該函數(shù)的使用情況: TO_CHAR(123.45)=123.45 TO_CHAR(123456.78,$999,999.99)=$123,456.78 TO_CHAR(123456.78,L999G999D999, NLS_NUMERIC_CHARACTERS=“,.”NLS_CURRENCY=“!”) =!123.456,78 注意:NLS參數(shù)沒有什么效果,必須使用L、G和D通行符號、分隔符、小數(shù)點等等。,Oracle 8i數(shù)據(jù)庫管理,WinnerSoft,SQL內(nèi)置函數(shù),TO_DATE TO_DATE函數(shù)將一個字符型數(shù)據(jù)轉(zhuǎn)換成一個日期型數(shù)據(jù)。 其具體的語法格式如下: TO_DATE(string ,fmt,NLS_DATE_LANGUAGE=language) 其中: string待轉(zhuǎn)換的字符串 fmt一
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 靈峰山電梯建設(shè)方案
- 工程實施方案簡單明確
- 2026年區(qū)塊鏈供應(yīng)鏈金融解決方案
- 葡萄園旅游建設(shè)方案
- 苦練本職崗位工作方案
- 農(nóng)機與環(huán)衛(wèi)裝備清潔能源應(yīng)用的技術(shù)集成方案與推廣模式研究
- 2026上半年貴州事業(yè)單位聯(lián)考黔南州面向大學畢業(yè)生退役士兵招54人考試重點試題及答案解析
- 2026上半年貴州事業(yè)單位聯(lián)考赤水市招聘92人備考考試題庫及答案解析
- 2026廣西玉林市遴選公務(wù)員28人參考考試題庫及答案解析
- 2026年宿州職業(yè)技術(shù)學院2025-2026學年第二學期公開招聘外聘兼職教師36名筆試備考題庫及答案解析
- 人防車位管理合同協(xié)議書
- DB37-T2119-2025轉(zhuǎn)爐煤氣干法電除塵系統(tǒng)安全技術(shù)要求
- 西方樂理與其他樂理對比試題及答案
- 《金融大數(shù)據(jù)分析》-課件 第3章 線性回歸
- 廣東省佛山市2024-2025學年高二上學期期末考試 語文 含解析
- 中藥材及中藥飲片知識培訓
- 2024年臺州三門農(nóng)商銀行招聘筆試真題
- 高一政治必修1、必修2基礎(chǔ)知識必背資料
- DB4114T 105-2019 黃河故道地區(qū)蘋果化學疏花疏果技術(shù)規(guī)程
- 如何高效向GPT提問
- JT-T-969-2015路面裂縫貼縫膠
評論
0/150
提交評論