1、MySQL 数据类型简介其中的长度以字节为单位名称长度用法TINYINT(M)BIT,BOOL,BOOLEAN1如果为无符号数,可以存储从0到255的数;否则可以存储从-128到127的数。SMALLINT(M)2如果为无符号数,可以存储从0到65535的数;否则可以存储从-32768到32767的数。MEDIUMINT(M)3如果为无符号数,可以存储从0到16777215的数;否则可以存储从-8388608到8388607的数INT(M)INTEGER(M)4如果为无符号数,可以存储从0到4294967295的数,否则可以存储从-2147483648到2147483647的数。BIGINT(
2、M)8如果为无符号数,可以存储从0到18446744073709551615的数,否则可以存储从-9223372036854775808到9223372036854775807的数。FLOAT(precision)4或8这里的 precision是可以直达53的整数。如果 precision24并且 precision=53则转换为 DOUBLE。FLOAT(M,D)4单精度浮点数。DOUBLE(M,D),DOUBLE PRECISION,REAL8双精度浮点。DECIMAL(M,D),M+1或M+2未打包的浮点数。DEC,NUMERIC,FIXEDDATE3以 YYYY-MM-DD的格式显示
3、。DATETIMEHH:MM:SS8以 YYYY-MM-DD的格式显示。TIMESTAMP4以 YYYY-MM-DD的格式显示。TIME3以 HH:MM:SS的格式显示。YEAR1以 YYYY的格式显示。CHAR(M)M定长字符串。VARCHAR(M)最大 M变长字符串。M=255.TINYBLOB,TINYTEXT最大255TINYBLOB为大小写敏感,而 TINYTEXT不是大小写敏感的。BLOB,TEXT最大64KBLOB为大小敏感的,而 TEXT不是大小写敏感的。MEDIUMBLOB,MEDIUMTEXT最大16MMEDIUMBLOB为大小写敏感的,而 MEDIUMTEXT不是大小敏感
4、的。LONGBLOB,LONGTEXT最大4GLONGBLOB为大小敏感的,而 LONGTEXT不是大小敏感的。ENUM(VALUE1,.)1或2最大可达65535个不同的值。SET(VALUE1,.)可达8最大可达64个不同的值。Oracle与 DB2数据类型的分类对应说明Oracle DB2/400Oracle数据类型 注意事项 DB2 UDB数据类型 注意事项DATE DATETIMETIMESTAMP l如果只使用MM/DD/YYY,那么使用 DATE 类型。l 如果只使用HH:MM:SS, 那么使用 TIME 类型。l 如果要使用日期和时间,则使用时间戳类型(TIMESTAMP)l
5、可以使用 Oracle 中的 TO_CHAR()函数来取 DATE 的字串来分别与 DB2/400的DATE、TIME 相匹配。VARCHAR2(n) N=4000CHAR(n)VARCHAR(n) l 若 n=32766,则使用DB2/400中的 CHAR类型、VARCHARLONGN=2GBVARCHAR(n)CLOB(n) l若 n=32K,则使用DB2/400中的 CHAR类型、VARCHAR。l 若32K= n =2GB,则使用 CLOB。ROW BIGINT 占8 byte;Oracle 中的 NUMBER类型所占用的存储空间要根据它的定义而定,例如缺省精度下的 NUMBER有38
6、个数字长,占用20 byte 的空间。具体的对应关系请参照上表。ROW and LOB 类型DB2/400提供 VARCHAR和 CLOB与 ORACLE中的 RAW和 LONG RAW相对应。ORACLE 也支持大对象:BLOB、CLOB、CLOB 和 NCLOB, ORACLE中的 BLOB和 CLOB可以提供4GB 的空间,而 DB2/400中的 BLOB和CLOB只能存放2GB 的数据;DB2/400中的 DBCLOB与 ORACLE中的 NCLOB 2GB相对应。Oracle 中的 BFILE数据类型用于管理数据库以外的二进制数据,数据库中的表将指向数据库外部的存放的 BFILE文件
7、,DB2/400也提供一个类似的数据类型 DATALINK相对应。ROWIDOracle ROWIND虚拟列用于对表中的某一列进行唯一标示,DB2/400中也有这样的数据类型 ROWID,它与ORACLE中的 ROWID的功能相似。DB2/400中的 ROWID可以存放40 byte 的数据用来唯一标示表中的每一行,它没有 ccsid属性,这些信息中没有关于 datafile、 block 或 row 的信息。例如:CREATE TABLE LIBRARYNAME/ORDERS2 (ORDERNO ROWID, SHIPPED_TO VARCHAR (36) , ORDER_DATE DATE
8、) ORDERNO的数据类型为 ROWID,用于存放订单号,每当插入一行时,系统自动生成一个值,存放进这个字段。可以用 OPERATION NAVIGATOR查看它的内容。Character typeDB2/400的 CHAR、VARCHAR 类型与 ORACLE中的 VARCHAR2(n)类型相对应,但是 ORACLE中的 VARCHAR2(n)类型仅用于存放较小的字符串,这里的 n小于4000,因此在这种情况下,最好用定长的 CHAR(N)类型与ORACLE的 VARCHAR2(n)相对应,这样不仅可以提高效率,还可以节省存储空间,若使用 VARCHAR(n)类型最好用 ALLOCATE参
9、数,这样可以提高数据库的性能,它可以减少内存和硬盘之间的输入/输出操作。要注意 DB2/400中的字符串中文输入问题,要想在 DB2/400上输入中文应用这样的 SQL创建表,这里的CCSID 935,代表简体中文。JAVA基本数据类型Java 语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型) ,一种字符类型,还有一种布尔型。1、整数:包括 int,short,byte,long2、浮点型:float,double3、字符:char4、布尔:boolean基本型别 大小 最小值 最大值boolean - - -char 16-bit Unicode 0 Unicode 216-1
10、byte 8-bit -128 +127short 16-bit -215 +215-1int 32-bit -231 +231-1long 64-bit -263 +263-1float 32-bit IEEE754 IEEE754double 64-bit IEEE754 IEEE754void 注意!:表格里的 代表的是次方哈使用 Float 类 节省开发时间作者: B2004-11-16 11:50 AM即使你可能知道 IEEE 浮点数,你可能也从来没有逐个比特地处理过这类数据。下面我将向你展示如何逐个比特地处理 IEEE 浮点数,下次在你的 Java 项目需要从比特序列创建浮点数时,
11、或者从浮点数创建比特序列时,你就知道 Float 类可以为完成这一工作。IEEE 浮点数介绍IEEE 754 浮点单精度数字格式定义了一个用于存储浮点数的比特布局。在空比特布局中,一个比特留作符号位,八个比特留作指数,23个比特留作尾数。这些比特是按最重要比特到最不重要比特进行排列的,如下例所示:31 0| | SEEEEEEEEMMMMMMMMMMMMMMMMMMMMMMM其中:S = 符号位E = 指数M = 尾数你可以从 IEEE 的站点购买一份 IEEE 浮点数的完整解释。 (如果在线搜索 IEEE 754,你应该可以找到免费的版本。 )Float 对 Java 社区的贡献下面的示例程
12、序使用 Float 的两个方法将一个浮点数转成比特,然后又将这些比特转成一个浮点数。使用 Float.floatToIntBits(float f) 方法可以将一个浮点数转成一个比特序列。这个方法返回一个32 位整数,表示你作为参数提供的浮点数的 IEEE 754 比特排列。使用 Float.intBitsToFloat(int bits) 方法可以进行反方向转换。这个方法接受传入的整数作为参数,将这些比特转成一个 IEEE 浮点数。下面是示例程序:public class BitsTip public static void main(String args) float f = Float
13、.parseFloat(args0);int bits = Float.floatToIntBits(f);System.out.println(“bits: “ + bits);System.out.println(“back to float: “ + Float.intBitsToFloat(bits);如果你曾经必须要手工进行这种转换,那么你就会很欣赏这两个简单的方法为你节省的工作。如果你正在处理64位数,那么可以选择使用 Double 包装器(wrapper)类。这个类提供同样的方法处理 IEEE 754 双精度浮点数。最好选择阅读一下 javadoc,查阅里面有关浮点数与比特序列之间的转换的部分,以便完整地了解这些方法都能为你些做什么。