資源描述:
《informix數(shù)據(jù)類型》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、一.??內(nèi)建的數(shù)據(jù)類型????1.?數(shù)字相關(guān)??????????1)INTEGER??????????整型,范圍為:-2147483647-2147483648??????????2)SMALLINT???????????短整型,-32767-32767??????????3)INT8長整型–(263–1)-263–14)DECIMAL(p,s)可調(diào)整精度浮點型10-130-10124SMALLINT和INTEGER的優(yōu)勢:占用很小的空間,分別占用2個字節(jié)和4個字節(jié)可以對他們執(zhí)行算術(shù)表達式和排序
2、操作SMALLINT和INTEGER的劣勢:可以存儲數(shù)值的范圍有限只有IDS才支持INT8,雖然占據(jù)的空間是INT的兩倍,但是存儲的數(shù)值的范圍增大到:–(263–1)-263–1DECIMAL(p,s)的優(yōu)勢:p指數(shù)據(jù)的精度,其范圍從1到32,s則用以確定小數(shù)位數(shù),是0的時候等同于DECIMAL(p)表示整數(shù)。他完整涵蓋了SMALLFLOAT和FLOAT的表達范圍。DECIMAL(p)占用的存儲空間為p/2+1個字節(jié),而DECIMAL(p,s)占用的存儲空間,如果s是偶數(shù),占用(p+3)/2個字
3、節(jié),s為奇數(shù)(p+4)/2個字節(jié)。DECIMAL(p,s)的劣勢:缺點是算術(shù)運算的效率比較低,且許多變成語言不支持此種格式。??????????4)SERIAL、SERIAL8、BIGSERIAL???????????這三種類型都會自動產(chǎn)生數(shù)據(jù),并且用戶可選擇是否提供初始值.???????????不同之處在于:???????????SERIAL類型的數(shù)據(jù)占用4個字節(jié)的存儲空間;???????????SERIAL8類型的數(shù)據(jù)一般情況下占用10個字節(jié)的存儲空間(在ExtendedParallelSe
4、rver中占用8個字節(jié)的存儲空間);???????????BIGSERIAL類型的數(shù)據(jù)占用8個字節(jié)的存儲空間。????????????eg1.?創(chuàng)建一個表route_rule,它的主鍵rule_id是屬于SERIAL自增類型的,參考建表語句如下:create?table?route_rule?(???rule_id???????serial?not?null,??rule????????????varchar(128)?not?null,??action????????varchar(32)?n
5、ot?null,??route_arg?varchar(32),??primary?key?(rule_id)?constraint?PK_ROUTE_RULE);?????????eg2.?如何查詢serial型字段的當前值???????????5)DECIMAL(p,s)??????????其中p是整個數(shù)據(jù)的有效位,s是小數(shù)點后位數(shù),1
6、度類型:create?table?human_task_exp(??serviceid???VARCHAR(30)?not?null,??seconds?????INTEGER?default?0?not?null,??probability?DECIMAL(16,14)?default?0))??????????6)FLOAT、SMALLFLOAT??????????這兩種類型的數(shù)據(jù)使用于不要求精度而要求量值的場合,如科學(xué)計算,F(xiàn)LOAT雙精度數(shù),通常占8個字節(jié),有16位十進制有效位,而sma
7、llint為單精度數(shù),占4字節(jié),8位十進制有效位。但數(shù)值超出精度范圍,則都看作0處理??????????7)MONEY(p,s)??????????同decimal完全相同,但顯示money類型時候會自動顯示現(xiàn)金符號,默認是$。????2.時間相關(guān)??????????1)DATE???????????日期型,隨數(shù)據(jù)庫不同而不同.???????????eg1.?test_date表中包含一個birthday的日期字段,可以通過如下語句插入:???????????創(chuàng)建表的語句參考如下:CREATE?
8、TABLE?test_date(birthday?date);?????????插入記錄(一條生日為1982年11月21日的數(shù)據(jù))的語句參考如下:insert?into?test_date?values('11/21/1982');??????????也可通過如下語句執(zhí)行如上語句相同的結(jié)果:insert?into?test_date?values(date('11/21/1982'));??????????eg2.?將DATE類型的數(shù)據(jù)轉(zhuǎn)換為指定的字符類型???????????例如將上面的11/