Firebird数据库
Firebird语言参考-整数类型
2016-04-21 16:07:02

 

短整型,整型和长整型数字数据类型在方言3中用于各种精度的整数,Firebird不支持无符号的整数类型。

 

 

16位的短整型 数据类型是压缩存储的整数数据,它们只有一个狭窄的范围的可能值需要存储。短整型类型的数字从-216到的范围内到216 - 1,即从-32768到32767。

 

SMALLINT 例子:
         CREATE DOMAIN DFLAG AS SMALLINT DEFAULT 0 NOT NULL
              CHECK (VALUE=-1 OR VALUE=0 OR VALUE=1);
         

         CREATE DOMAIN RGB_VALUE AS SMALLINT;

 

 

整数数据类型是32位的,简写名称为INT,整型数据类型的数值范围 从 -232 到 232 - 1, 也就是, 从 -2,147,483,648 到 2,147,483,647.

 

INTEGER 例子 :

 

       CREATE TABLE CUSTOMER (
            CUST_NO INTEGER NOT NULL,
            CUSTOMER VARCHAR(25) NOT NULL,
            CONTACT_FIRST VARCHAR(15),
            CONTACT_LAST VARCHAR(20),
            ...
                 PRIMARY KEY (CUST_NO) )


 

大整型是一个SQL:99-compliant的64位的整型数据类型,仅在方言3中有效,如果客户使用方言1,由服务器发送的生成器(generator)值减少到一个 32 位整数(整数型)。当使用方言3连接时生成器的值为大整型。

 

大整型的数值范围从 -263 到 263 - 1, 或 -9,223,372,036,854,775,808 到9,223,372,036,854,775,807.



从Firebird2.5开始,三个整数类型的常数可以指定以十六进制格式的形式,9 到 16 为 BIGINT 或整数 1 到 8 位数的十六进制数字。用于书写的十六进制表示法对SMALLINT 不显式支持,但如果有必要时Firebird将透明地转换为十六进制数为SMALLINT, 在SMALLINT 提供的的正数和负数的范围内。

 

十六进制记数法中描述的更详细的讨论和数值的使用范围在题为通用语言元素的数字常量章节中。

 

使用整数型的例子:

 

      CREATE TABLE WHOLELOTTARECORDS (
          ID BIGINT NOT NULL PRIMARY KEY,
          DESCRIPTION VARCHAR(32)
       );

 

       INSERT INTO MYBIGINTS VALUES (
           -236453287458723,
           328832607832,
           22,
           -56786237632476,
           0X6F55A09D42, -- 478177959234
           0X7FFFFFFFFFFFFFFF, -- 9223372036854775807
           0XFFFFFFFFFFFFFFFF, -- -1
           0X80000000, -- -2147483648, an INTEGER
           0X080000000, -- 2147483648, a BIGINT
           0XFFFFFFFF, -- -1, an INTEGER
           0X0FFFFFFFF -- 4294967295, a BIGINT
        );

 

 

十六进制整数在上面的例子中会自动转换为BIGINT,在被插入到表中之前。不过,这种情况发生在数值被确定后,所以0x80000000(8位) 0x080000000(9位数字)将被保存为不同的BIGINT值。