4.基本資料型態和運算式
4-1 字元 char(n)
字元的基本資料型態包括小寫字母,大寫字母,數字,標點符號以及像+、﹪
、*之類的特殊符號。
<語法格式>
char(n)
char(n) n為使用者所定義的資料長度,其範圍 1 <= n <= 32,767
§例:
DEFINE answer
CHAR(1)
4-2 小型整數 smallint
資料長度為 2 位元,其範圍 -32,767 至 +32,767
<語法格式>
smallint
§例:
DEFINE i SMALLINT
4-3 整數 integer
資料長度為4位元,其範圍
-2,147,483,647 至
+2,147,483,647
<語法格式>
integer
§例:
DEFINE i
INTEGER
4-4 浮動點數 decimal[(m[,n])]
<語法格式>
DECIMAL(precision[, scale])
此種資料最多的長度為32個數字。
1.precision為所有數字個數,但不包括小數點。
2.scale為小數點右邊的數字個數。
3.資料長度為
bytes = ROUND(precision/2+1)
§例:DEFINE
unit_price DECIMAL(6,2)
此定義 unit_price 4 位整數 2 位小數。
4-5 小型浮點數 smallfloat
小型浮點數相當於C語言中的
float 的資料型態,大約有7個有效數字資料長度
為4位元。
<語法格式> smallfloat
§例:
DEFINE unit_price SMALLFLOAT
4-6 浮點數 float
小型浮點數相當於C語言中的
double 的資料型態,大約有14個有效數字。資料
長度為8位元。
<語法格式> float
§例:
DEFINE unit_price FLOAT
4-7 序數 serial
序數資料型態為
informix-4gl 自動設定的連續整數.
informix-4gl 在開始時,預設
為1,使用者亦可任選一個大於0的數值做起始值,之後每次新增一筆資料則
自動加1當作序號。
<語法格式> serial
§例:
DEFINE employee_num serial
§例:
DEFINE custom_num
serial(1000)
員工編號啟始值為 1,顧客編號啟始值為
1000.
4-8 日期 date
<語法格式> month/day/year
1.其中/為分隔符號,亦可使用(.)或連字符號(-)代替。
2.月和日為兩位數,不足兩位者可補 0 或不補 0 皆可。
3.年為4位數介於 0000 和 9999 之間,若只輸入兩位數,informix-4gl 會在此數值之
前加上19。
4.系統所儲存的資料長度為4位元.
§例:
DEFINE birth_date
date
若要使用中華民國年份以符合國人習慣,而所使用系統為
unit 下的
Bournel
shell,則可以在
.profile 檔中設定下列的格式:
DBDATE=Y2MD/;export DBDATE
年份變成在最前面且只佔2位數,若輸入790820,則系統會顯示79/08/20的格式
4-9 錢制 money[(m[,n])]
基本上錢制資料型態雷同於
decimal 資料型態,當一個值被定義成此型態後,
informix-4gl 會在其值之前自動出現錢制符號($),並以小數點型態顯示。
<語法格式> money(precision[scale])
1.precision為所有數字個數,但不包括小數點。
2.scale為小數點右邊的數字個數。
3.若沒有設定 scale,則 informix-4gl 預設小數2位,若沒有設定
precision
則
informix-4gl 預設小數為
decimal(16,2)。
4.資料長度為
bytes =
ROUND(precision/2+1)
§例:
DEFINE unit_price money(7,3)
此定義
unit_price4位整數3位小數。
4-10
變數的定義(define):
<語法格式>
define variable-name [, ...] data-type
§例:
DEFINE answer
CHAR(1)
DEFINE sys_program CHAR(6)
DEFINE i,j,k
SMALLINT
DEFINE tot_cnt
INTEGER
DEFINE upddate
DATE
DEFINE yy
DATETIME YEAR TO YEAR
DEFINE mm
DATETIME MONTH TO MONTH
DEFINE fetch_dir,
toward_last,
toward_first,
at_end
SMALLINT
變數定義敘述(define)必須放在main、function、report和global等敘述的後面。
<語法格式>
define variable-name [, ...] record like table.*
§例:
DEFINE p_ssaltab RECORD LIKE
ssaltab.*
<語法格式>
define variable-name [, ...] like table.column
§例:
DEFINE rank
LIKE ssaltab.payrank
<語法格式>
define variable-name [, ...] like table.column
§例:
DEFINE old_insure_no LIKE ssaltab.insure_no
<語法格式>
define variable-name [, ...] record
var-name [, ...] data-type
end reocrd
§例:
DEFINE p_formonly RECORD
char1 CHAR(8),
char2
CHAR(10),
char3 CHAR(2),
char4 CHAR(4)
END RECORD
<語法格式>
define variable-name array [...] of record
var-name [, ...]
data-type
end reocrd
§例:
DEFINE s_menu ARRAY[4] OF RECORD
menu_name
CHAR(4),
action
CHAR(6)
END RECORD
§例:
DEFINE p_st
ARRAY[20] OF RECORD
family_name LIKE
sfamilytab.family_name,
family_idno LIKE
sfamilytab.family_idno
END RECORD
4-11 算術運算式
┌──────────────────────────┐
│ 運算子
意 義 │
├──────────────────────────┤
│ **
指數運算
│
├──────────────────────────┤
│ *
乘法運算
│
├──────────────────────────┤
│ /
除法運算
│
├──────────────────────────┤
│ mod
餘數運算
│
├──────────────────────────┤
│ +
加法運算
│
├──────────────────────────┤
│ -
減數運算
│
└──────────────────────────┘
4-12 字串運算式
┌──────────────────────────┐
│ 運算子
意 義
│
├──────────────────────────┤
│ ,
連結運算
│
├──────────────────────────┤
│ [m,n]
從m至n字元位置取出子字串 │
├──────────────────────────┤
│ USING
設定格式
│
├──────────────────────────┤
│ CLIPPED
消除尾部空白
│
└──────────────────────────┘
4-13 布林運算式
在
informix-4gl 程式的敘述如 IF、CASE、WHILE、SELECT、UPDATE 和
DELETE 均可使用布林運算式來作運算。
┌──────────────────────────┐
│ 值
意 義
│
├──────────────────────────┤
│ TRUE
真, 定義成 1
│
├──────────────────────────┤
│ FALSE
假, 定義成 0
│
├──────────────────────────┤
│ UNKNOWN
未知情況
│
└──────────────────────────┘
一般布林運算式所使用到的運算式子有下列三種:
┌──────────────────────────┐
│ 運算子
意 義
│
├──────────────────────────┤
│ AND
且
│
├──────────────────────────┤
│ OR
或
│
├──────────────────────────┤
│ NOT
非
│
└──────────────────────────┘
AND │T F
? OR │T F
? NOT│
──┼──── ──┼──── ──┼──
T │T F ? T │T T
T
T │ F
F │F F F F │T F
?
F │ T
? │? ? ? ? │T ?
?
? │ ?
4-13 關係運算式
┌─────────────────┐
│關係運算符號
│
├─────────────────┤
│關係運算符號
: 小於 : < │
│
大於 : > │
│ 小於或等於 : <= │
│ 大於或等於 : >= │
│ 不等於 : != 或 <>│
└─────────────────┘
4-14 空值 (NULL VALUE)
在算數運算式中,若有一個值為
null 時,則整個運算式的結果也將是
null 值。