posts - 297,  comments - 1618,  trackbacks - 0
          一.  內(nèi)建的數(shù)據(jù)類型
               1.  數(shù)字相關(guān)
                     1)INTEGER
                     整型,范圍為:-2147483647-2147483648
                     2)SMALLINT
                     短整型,-32767-32767
                     3)BIGINT

                     4)SERIALSERIAL8BIGSERIAL
                     這三種類型都會自動產(chǎn)生數(shù)據(jù),并且用戶可選擇是否提供初始值.
                     不同之處在于:
                     SERIAL類型的數(shù)據(jù)占用4個字節(jié)的存儲空間;
                     SERIAL8類型的數(shù)據(jù)一般情況下占用10個字節(jié)的存儲空間(在Extended Parallel Server中占用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(128not null,
            action        
          varchar(32not null,
            route_arg 
          varchar(32),
            
          primary key (rule_id) constraint PK_ROUTE_RULE
          );
                    eg2. 如何查詢serial型字段的當(dāng)前值?
                     5)DECIMAL(p,s)
                     其中p是整個數(shù)據(jù)的有效位,s是小數(shù)點后位數(shù),1<p<32,s可以為0。不指定時默認(rèn)為16位。
                     eg1:在如下實例中,創(chuàng)建了human_task_exp表,其中probability為雙精度類型:
          create table human_task_exp(
            serviceid   
          VARCHAR(30not null,
            seconds     
          INTEGER default 0 not null,
            probability 
          DECIMAL(16,14default 0)
          )
                     6)FLOAT、SMALLFLOAT
                     這兩種類型的數(shù)據(jù)使用于不要求精度而要求量值的場合,如科學(xué)計算,F(xiàn)LOAT雙精度數(shù),通常占8個字節(jié),有16位十進(jìn)制有效位,而smallint為單精度數(shù),占4字節(jié),8位十進(jìn)制有效位。但數(shù)值超出精度范圍,則都看作0處理
                     7)MONEY(p, s)
                     同decimal完全相同,但顯示money類型時候會自動顯示現(xiàn)金符號,默認(rèn)是$。

              2. 時間相關(guān)
                     1)DATE
                     日期型,隨數(shù)據(jù)庫不同而不同.
                      eg1.  test_date表中包含一個birthday的日期字段,可以通過如下語句插入:
                     創(chuàng)建表的語句參考如下:
          CREATE 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/21/1982變成1982-11-21的類型.語句如下:
          select TO_CHAR(birthday, '%Y-%m-%d'from test_date;
                     eg3. 獲得當(dāng)前日期
          select today from test_date;
                     eg4. 日期相加減,得到天數(shù),例如將test_date中的當(dāng)前日期-birthday字段,可得到出生天數(shù),語句如下:
          select to_date(to_char(today,'%Y-%m-%d'),'%Y-%m-%d'- to_date(to_char(birthday,'%Y-%m-%d'),'%Y-%m-%d'from test_date;
                     對于1982-11-21,可得到如下的返回結(jié)果(oh,my god,我已經(jīng)出生那么多天咯):
          10211 00:00:00.00000
                     2)DATETIME
                     用于記錄時間點,表示的精度可以任意指定,可以包含年份、月份、日。
                     eg1.  將表test_datetime的字段birthtime定義為DATETIME類型,建表語句參考如下:
          create table test_datetime(birthtime datetime year to fraction(2));
                     eg2. 若要在該表中插入一條1982-11-21 12:20:00的數(shù)據(jù):
          insert into test_datetime values('1982-11-21 12:20:00');
                     eg3. 插入eg2中同樣的記錄,還可以使用如下語句:
          insert into test_datetime values(datetime(1982-11-21 12:20:00.79year to fraction(2));
                     eg4. 將DATE類型的數(shù)據(jù)轉(zhuǎn)換為指定的字符類型:
          select TO_CHAR(birthtime, '%Y-%m-%d %H:%M:%S'from test_datetime;
                      上面的出生時間的如上語句的結(jié)果如下:
          1982-11-21 12:20:00
                   3)INTERVAL
                   interval類型的數(shù)值用于表示兩個時間點之間的間隔. 
                   eg1. 將表test_interval的字段interval_filed字段定義為INTERVAL類型,并且只包含“時:分:秒”,建表語句參考如下:
          create table test_interval(interval_filed interval hour to second);
                    eg2. 在上面創(chuàng)建的表中插入一條記錄,時間是12:20:05,語句參考如下:
          insert into test_interval values ('12:20:05');
                    eg3. 達(dá)到如上語句相同的結(jié)果也可以使用到interval函數(shù),語句參考如下:
          insert into test_interval values(interval(12:20:05) hour to second);
                    eg4. 將INTERVAL類型轉(zhuǎn)換為指定的字符類型(HH:MM:SS格式,直接查詢就是這個格式,嘻嘻),語句參考如下:
          select * from test_interval;
                    運行結(jié)果就是:12:20:05。

              3. 字符相關(guān)
                     1)VARCHAR(n, r)
                     存儲變長字符型,最長255字節(jié)。
                     2)CHAR(n)
                     定義寬度為n的字符字段,最長255。
                     3)NCHAR(n)
                     同char,但允許GLS應(yīng)用程序的不同排序順序。
                     4)NVARCHAR(m, r)
                     同varchar,但允許GLS應(yīng)用程序的不同排序順序。
                     5)LVARCHAR(m)
                     存儲變長字符串,最大32739個字節(jié).
                     6)CHARACTER VARYING(n, r)
                     存儲用戶定義的數(shù)據(jù)類型,其內(nèi)部結(jié)構(gòu)對于數(shù)據(jù)庫服務(wù)器不透明,即不可存取。
               4.  大對象相關(guān)
                     1)BYTE
                     二進(jìn)制數(shù)據(jù),最大2的31次方字節(jié)。byte用于存儲任意數(shù)據(jù),一般用來存儲圖片和聲音文件等。
                     2)TEXT
                     文本型,最大2的31次方字節(jié)。
                     3)BLOB
                     以隨機(jī)存取塊的形式存儲二進(jìn)制數(shù)據(jù)。
                     4)CLOB
                     以隨機(jī)存取塊的形式存儲文本數(shù)據(jù)。
               5. MISC
                     1)BOOLEAN 
                     存儲布爾值true和false。


          二.  復(fù)雜對象類型(complex data type)
               1、復(fù)雜數(shù)據(jù)類型
               由一個或多個數(shù)據(jù)類型組合而成。復(fù)雜數(shù)據(jù)類型有row數(shù)據(jù)類型、集合數(shù)據(jù)類型。
               2、Row數(shù)據(jù)類型
               由一個或多個任意的數(shù)據(jù)類型組成;
               eg1. 如下創(chuàng)建一個patient的Row數(shù)據(jù)類型,具有integer類型的num和char類型的name字段,參考語句如下:
          CREATE ROW TYPE patient
          (
          num 
          int,
          name 
          char(30)
          );
              3、集合數(shù)據(jù)類型
               由一個或多個同樣的數(shù)據(jù)類型集合組成,包括SET、LIST和MULTISET。
               1)SET(e)數(shù)據(jù)類型
               存儲元素的非排序集合,所有元素都具有同一類型e;不允許重復(fù)值.
               eg1、在如下表中將description字段定義為SET類型,參考語句如下:
          CREATE TABLE employee
          (
          name 
          CHAR(30),
          salary 
          INTEGER,
          description 
          SET(VARCHAR(100NOT NULL)
          );
              eg2. 如何插入SET類型的數(shù)據(jù)?

              eg3. 如何查詢SET類型的數(shù)據(jù)?

              2)LIST(e)數(shù)據(jù)類型
              存儲元素的排序集合,所有元素都具有同一類型e;允許重復(fù)值.
              eg1. 創(chuàng)建一個test_list的表,該表的col1是LIST(varcahr)數(shù)據(jù)類型,建表語句參考如下:
          create table test_list

          col1 list(
          varchar(30not null), 
          col2 
          DECIMAL(18,6), 
          col3 
          char(18)
          );
             eg2.  如何插入LIST類型的值?
             
             eg3. 如何查詢LIST類型的值?

             3)MULTISET(e)數(shù)據(jù)類型
              存儲元素的非排序集合,所有元素都具有同一類型e;允許重復(fù)值。

          三.  自定義對象類型(User Defined Datatypes)
              1、Distinct

              2、Opaque

          posted on 2010-11-04 17:31 阿蜜果 閱讀(11096) 評論(1)  編輯  收藏 所屬分類: database


          FeedBack:
          # re: informix的數(shù)據(jù)類型和舉例
          2014-06-13 19:28 | 姚智博
          如何刪除 row type 類型呀,在一個過程里面創(chuàng)建了row type類型,再次執(zhí)行過程的話就報已經(jīng)存在了。  回復(fù)  更多評論
            
          <2010年11月>
          31123456
          78910111213
          14151617181920
          21222324252627
          2829301234
          567891011

                生活將我們磨圓,是為了讓我們滾得更遠(yuǎn)——“圓”來如此。
                我的作品:
                玩轉(zhuǎn)Axure RP  (2015年12月出版)
                

                Power Designer系統(tǒng)分析與建模實戰(zhàn)  (2015年7月出版)
                
               Struts2+Hibernate3+Spring2   (2010年5月出版)
               

          留言簿(263)

          隨筆分類

          隨筆檔案

          文章分類

          相冊

          關(guān)注blog

          積分與排名

          • 積分 - 2295633
          • 排名 - 3

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 承德市| 白水县| 称多县| 梅河口市| 洪湖市| 宁津县| 多伦县| 石楼县| 夏津县| 临沧市| 唐山市| 新巴尔虎左旗| 鄄城县| 义马市| 万山特区| 丹凤县| 堆龙德庆县| 虎林市| 新建县| 新余市| 临猗县| 蚌埠市| 柘荣县| 横峰县| 克山县| 运城市| 南溪县| 株洲市| 安庆市| 华坪县| 阳谷县| 隆尧县| 唐河县| 灵丘县| 宁陵县| 嘉义市| 临安市| 保康县| 红河县| 尉犁县| 宁蒗|