INFORMIX資料庫函式

tonykorn97發表於2017-03-03
一、內部函式 
1、內部合計函式 
1)COUNT(*) 返回行數 
2)COUNT(DISTINCT COLNAME) 返回指定列中唯一值的個數 
3)SUM(COLNAME/EXPRESSION) 返回指定列或表示式的數值和; 
4)SUM(DISTINCT COLNAME) 返回指定列中唯一值的和 
5)AVG(COLNAME/EXPRESSION) 返回指定列或表示式中的數值平均值 
6)AVG(DISTINCT COLNAME) 返回指定列中唯一值的平均值 
7)MIN(COLNAME/EXPRESSION) 返回指定列或表示式中的數值最小值 
8)MAX(COLNAME/EXPRESSION) 返回指定列或表示式中的數值最大值 
2、日期與時間函式 
1)DAY(DATE/DATETIME EXPRESSION) 返回指定表示式中的當月幾號 
2)MONTH(DATE/DATETIME EXPRESSION) 返回指定表示式中的月份 
3)YEAR(DATE/DATETIME EXPRESSION) 返回指定表示式中的年份 
4)WEEKDAY(DATE/DATETIME EXPRESSION) 返回指定表示式中的當周星期幾 
5)DATE(NOT DATE EXPRESSION) 返回指定表示式代表的日期值 
6)TODAY 返回當前日期的日期值 
7)CURRENT[FIRST TO LAST] 返回當前日期的日期時間值 
8)COLNAME/EXPRESSION UNITS PRECISION 返回指定精度的指定單位數 
9)MDY(MONTH,DAY,YEAR) 返回標識指定年、月、日的日期值 
10)DATETIME(DATE/DATETIME EXPRESSION)FIRST TO LAST 返回表示式代表的日期時間值 
11)INTERVAL(DATE/DATETIME EXPRESSION)FIRST TO LAST 返回表示式代表的時間間隔值 
12)EXTEND(DATE/DATETIME EXPRESSION,[FIRST TO LAST])返回經過調整的日期或日期時間值 
To_char函式將datetime和date值轉化為字元值。 
To_date函式將字元值轉化為datetime型別的值。例to_date(“1978-10-07 10:00” ,”%Y-%m-%d %H:%M) 
例子1、和UNITS合用,指定日期或時間單位(year,month,day,hour,minute,seond,fraction): 
let tmp_date = today + 3 UNITS day 
例子2、let tmp_date = MDY(10,30,2002) -- 2002-10-30 
例子3、let tmp_date = today + interval(7) day to day --當前時間加上7天; 
注:該功能與1相似; 
例子4、EXTEND轉換日期或日期時間值 
let tmp_inthour = extend(datetime1,hour to hour) 


3、代數函式 
1)ABS(COLNAME/EXPRESSION): 取絕對值 
2)MOD(COLNAME/EXPRESSION,DIVISOR) 返回除以除數後的模(餘數) 
3)POW(COLNAME/EXPRESSION,EXPONENT) 返回一個值的指數冥 
例子:let tmp_float = pow(2,3) --8.00000000 


4)ROOT(COLNAME/EXPRESSION,[INDEX]) 返回指定列或表示式的根值 


5)SQRT(COLNAME/EXPRESSION) 返回指定列或表示式的平方根值 


6)ROUND(COLNAME/EXPRESSION,[FACTOR]) 返回指定列或表示式的圓整化值 
7)TRUNC(COLNAME/EXPRESSION,[FACTOR]) 返回指定列或表示式的截尾值 
說明:上兩者中FACTOR指定小數位數,若不指定,則為0;若為負數,則整化到小數點左邊; 
注:ROUND是在指定位上進行4舍5入;TRUNC是在指定位上直接截斷; 
let tmp_float = round(4.555,2) --4.56 
let tmp_float = trunc(4.555,2) --4.55 


4、指數與對數函式 
1)EXP(COLNAME/EXPRESSION) 返回指定列或表示式的指數值 
2)LOGN(COLNAME/EXPRESSION) 返回指定列或表示式的自然對數值 
3)LOG10(COLNAME/EXPRESSION) 返回指定列或表示式的底數位10的對數值 


5、三角函式 
1)COS(RADIAN EXPRESSION) 返回指定弧度表示式的餘弦值 
2)SIN(RADIAN EXPRESSION) 正弦 
3)TAN(RADIAN EXPRESSION) 正切 
4)ACOS(RADIAN EXPRESSION) 反餘弦 
5)ASIN(RADIAN EXPRESSION) 反正弦 
6)ATAN(RADIAN EXPRESSION) 反正切 
7)ATAN2(X,Y) 返回座標(X,Y)的極座標角度元件 


6、統計函式 
1)RANGE(COLNAME) 返回指定列的最大值與最小值之差 = MAX(COLNAME)-MIN(COLNAME) 
2)VARIANCE(COLNAME) 返回指定列的樣本方差; 
3)STDEV(COLNAME) 返回指定列的標準偏差; 


7、其他函式 
1)USER 返回當前使用者名稱 
2)HEX(COLNAME/EXPRESSION) 返回指定列或表示式的十六進位制值 
3)LENGTH(COLNAME/EXPRESSION) 返回指定字元列或表示式的長度 
4)TRIM(COLNAME/EXPRESSION) 刪除指定列或表示式前後的字元 
5)COLNAME/EXPRESSION || COLNAME/EXPRESSION 返回並在一起的字元; 
8、基數函式: 
1)cardinality(僅適用IDS)函式對集合包含的元素數目計數。 
智慧大物件函式,(僅適用與IDS) 
filetoblob( ),將檔案複製到BLOB列中 
filetoclob( ),將檔案複製到CLOB列中 
locopy( ),將BLOB或CLOB型別的資料複製到另一個BLOB或CLOB列中 
lotofile( ),將BLOB或CLOB複製到檔案中 
9、字串處理函式: 
lower,將字串中每個大寫字母轉換為小寫字母 
upper,將字串中每個小寫字母轉換為大寫字母 
initcap,將字串中每個詞的首寫字母轉換成大寫 
replace,將字串中的某一組字元轉換成其他字元,例replace(col,”each”,”eve”) 
substr,返回字串中的某一部分,例substr(col,1,2) 
substring,返回字串中的某一部分,例substring(col,from 1 to 4) 
lpad,使用lpad函式已用重複次數達到必要次數的字元序列在左邊填充或截斷的字串的副本,這取決於字串中填充部分的指定長度。 
舉例:欄位 col 為char(15)型別,select lpad(col,21,”_”) from tab_name則顯示為在col前加上六個_。 
Rpad,使用rpad函式已用重複次數達到必要次數的字元序列在右邊填充或截斷的字串的副本,這取決於字串中填充部分的指定長度。 
舉例:欄位col為char(15)型別,select rpad(col,21,”_”) from tab_name則顯示為在col後邊加上六個_。 
10、其他函式: 
hex,返回表示式的十六進位制數 
round,返回表示式的四捨五入值 
trunc,返回表示式的截斷值 
length,計算表示式的長度 
user,返回執行查詢的使用者的使用者名稱(登陸帳戶名) 
today,返回當前系統日期 
dbservername,返回資料庫伺服器的名稱,同sitename 
dbinfo,返回資料庫的相關資訊 
decode,函式來將一個具有一個值的表示式轉換為另一個值 
decode(test,a,a_value,b,b_value,c,c_value……),decode函式不支援TEXT和BYTE型別。 
Nvl,來將求值為空的表示式轉化為另一個想要指定的值。 
另外還可以在select語句中使用儲存過程,如select spl($test) from tab_name 
二、IDS內部函式 
1、DBSERVERNAME 返回資料庫伺服器名 let tmp_char=DBSERVERNAME 
2、SITENAME 返回資料庫伺服器名 let tmp_char=SITENAME 
說明:兩者功能相同; 


3、DBINFO(‘SPECIAL_KEYWORD') 返回只關鍵字值 
例子1:返回資料中每個表的DBSPACE名稱 
select dbinfo('dbspace',partnum),tabname from systables 
where tabid>99 and tabtype='T' (OK) 
例子2:返回任何表中插入的最後一個SERIAL值 
select dbinfo('sqlca.sqlerrd1') from systables where tabid = 1 
例子3:返回最後一個SELECT,INSERT,UPDATE,DELETE或EXECUTE PROCEDURE語句處理的行數; 
select dbinfo('sqlca.sqlerrd2') from systables where tabid=1; 


三、其它 
本函式庫共有 38 個函式 
目前支援的 Informix 版本為 ODS 7.x、SE 7.x 與 Universal Server (IUS) 9.x 三種。在 ODS 7.x 的版本中,完全支援所有的資料型別,而在 IUS 9.x 中,不支援 SLOB 與 CLOB 二種型別。 
要在 Web Server 上安裝 Informix Client 端,在編譯 PHP 之前 (configure 之前),要先設好 IFX_LIBDIR、IFX_LIBS 及 IFX_INCDIR 三種環境變數,若是 9.x 版尚要配置 HAVE_IFX_IUS 環境變數。同時在配置時要加入 --with_informix=yes 的選項。 
ifx_connect: 開啟 Informix 伺服器連線。 
ifx_pconnect: 開啟 Informix 伺服器持續連線。 
ifx_close: 關閉 Informix 伺服器連線。 
ifx_query: 送出一個 query 字串。 
ifx_prepare: 準備 query 字串。 
ifx_do: 執行已準備 query 字串。 
ifx_error: 取得 Informix 最後的錯誤。 
ifx_errormsg: 取得 Informix 最後錯誤資訊。 
ifx_affected_rows: 得到 Informix 最後操作影響的列數目。 
ifx_getsqlca: 取得 query 後的 sqlca 資訊。 
ifx_fetch_row: 返回單列的各欄位。 
ifx_htmltbl_result: 將 query 返回資料轉成 HTML 表格。 
ifx_fieldtypes: 列出 Informix 的 SQL 欄位。 
ifx_fieldproperties: 列出 Informix 的 SQL 欄位屬性。 
ifx_num_fields: 取得返回欄位的數目。 
ifx_num_rows: 取得返回列的數目。 
ifx_free_result: 釋放返回佔用記憶體。 
ifx_create_char: 建立字元類。 
ifx_free_char: 刪除字元類。 
ifx_update_char: 更改字元類。 
ifx_get_char: 取得字元類。 
ifx_create_blob: 建立長位類。 
ifx_copy_blob: 復制長位類。 
ifx_free_blob: 刪除長位類。 
ifx_get_blob: 取得長位類。 
ifx_update_blob: 更改長位類。 
ifx_blobinfile_mode: 配置長位類模式。 
ifx_textasvarchar: 配置文字模式預設值。 
ifx_byteasvarchar: 配置位組模式預設值。 
ifx_nullformat: 配置空字元模式預設值。 
ifxus_create_slob: 建立 slob 類。 
ifx_free_slob: 刪除 slob 類。 
ifxus_close_slob: 刪除 slob 類。 
ifxus_open_slob: 開啟 slob 類。 
ifxus_tell_slob: 返回目前檔案或找尋位置。 
ifxus_seek_slob: 配置目前檔案或找尋位置。 
ifxus_read_slob: 讀取指定數目的 slob 類。 
ifxus_write_slob: 將字串寫入 slob 類中

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/312079/viewspace-2134633/,如需轉載,請註明出處,否則將追究法律責任。

相關文章