《MySqlOracleSqlServer三大数据库的数据类型列表汇编 .docx》由会员分享,可在线阅读,更多相关《MySqlOracleSqlServer三大数据库的数据类型列表汇编 .docx(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品名师归纳总结MySql Oracle SqlServer三大数据库的数据类型列表MySql 数据类型数据类型描述字节举荐使用SMALLINT整数,从 -32000到2储备相对比较小的整数。INT+32000范畴整 数 , 从 -20000000004比如 :年纪,数量储备中等整数可编辑资料 - - - 欢迎下载精品名师归纳总结到 +2000000000范畴BIGINT不 能 用 SMALLINT或INT描述的超大整数。例如 :距离8储备超大的整数例如 :科学/ 数学数据可编辑资料 - - - 欢迎下载精品名师归纳总结FLOAT单精度浮点型数据4储备小数数据例如 : 测量,温度 DOUBLE
2、双精度浮点型数据8需要双精度储备的小数数据例如: 科学数据可编辑资料 - - - 欢迎下载精品名师归纳总结DECIMAL用户自定义精度的浮点型数据变量 ; 取决于精度与长度以特殊高的精度储备小数数据。例如: 货币数额,科学数据可编辑资料 - - - 欢迎下载精品名师归纳总结CHAR固定长度的字符串特定字符串长度 高达 255 字符 储备通常包含预定义字符串的变量例如 :定期航线,国家或邮编可编辑资料 - - - 欢迎下载精品名师归纳总结VARCHAR具有最大限制的可变长度的字符串TEXT没有最大长度限制的可变长度的字符串变量 ; 1 + 实际字符串长度 高达 255 字符 Variable;2
3、+ 聽actual string length储备不同长度的字符串值 高达一个特定的最大限度 .例如 : 名字,密码,短文标签储备大型文本数据例如 :新闻故事,产品描述可编辑资料 - - - 欢迎下载精品名师归纳总结BLOB二进制字符串变量。 2 +实际字符串长度储备二进制数据例如 : 图片,附件,二进制文档可编辑资料 - - - 欢迎下载精品名师归纳总结DATE以 yyyy-mm-dd格式的日期3储备日期例如 : 生日,产品满期可编辑资料 - - - 欢迎下载精品名师归纳总结TIME以 hh:mm:ss格式的时间3储备时间或时间间隔例如 : 报警声, 两时间之间的间隔,任务开头/ 终止时间可
4、编辑资料 - - - 欢迎下载精品名师归纳总结DATETIMEyyyy-mm-ddhh:mm:ss格式结合日期和时间TIMESTAMPyyyy-mm-ddhh:mm:ss格式结合日期和时间8储备包含日期和时间的数据例如 : 提示的人,大事4记录即时时间例如:大事提示器, “最终进入 ”的时间标记可编辑资料 - - - 欢迎下载精品名师归纳总结YEAR以 yyyy格式的年份1储备年份例如 : 毕业年,产生年可编辑资料 - - - 欢迎下载精品名师归纳总结ENUM一组数据, 用户可从中选择其中一个1 或 2 个字节储备字符属性,只能从中选择之一例如 : 布尔量选择,如性别可编辑资料 - - - 欢
5、迎下载精品名师归纳总结SET一组数据, 用户可从中选择其中 0 , 1 或更多。从 1 到 8 字节 ;取决于设置的大小储备字符属性,可从中选择多个字符的联合。例如 : 多项项选择,比如业余爱好和爱好。可编辑资料 - - - 欢迎下载精品名师归纳总结Oracle数据类型一、概述在 ORACLE8中定义了:标量(SCALAR)、复合( COMPOSITE)、引用( REFERENC)E 和 LOB四种数据类型,下面详细介绍它们的特性。二、标量( SCALAR)合法的标量类型与数据库的列所使用的类型相同,此外它仍有一些扩展。它又分为七个组:数字、字符、行、日期、行标识、布尔和可信。数字,它有三种基
6、本类型-NUMBER、PLS_INTEGER和 BINARY_INTENER。NUMBER 可以描述整数或实数,而PLS_INTEGER和 BINARY_INTENER只能描述整数。NUMBER,是以十进制格式进行储备 的,它便于 储备 ,但是在运算上,系统会自动的将它转换成为二进制进行运算的。它的定义方式是NUMBER( P, S), P 是精度,最大 38 位, S 是刻度范畴,可在-84.127 间取值。例如: NUMBER( 5,2)可以用来储备表示 -999.99.999.99 间的数值。 P、S 可以在定义是省略, 例如:NUMBER( 5)、NUMBER等。BINARY_INTE
7、NER用来描述不储备在数据库中,但是需要用来运算的带符号的整数值。它以 2 的补码二进制形式表述。循环计数器经常使用这种类型。PLS_INTEGER和 BINARY_INTENER唯独区分是在运算当中发生溢出时,BINARY_INTENER型的变量会被自动指派给一个 NUMBER 型而不会出错, PLS_INTEGER型的变量将会发生错误。字符,包括 CHAR、VARCHAR2( VARCHAR)、LONG、NCHAR和 NVARCHAR2几种类型。 CHAR,描述定长的字符串,假照实际值不够定义的长度,系统将以空格填充。它的声明方式如下CHAR( L),L为字符串长度,缺省为1,作为变量最大
8、 32767 个字符,作为数据储备在ORACLE8中最大为 2000。VARCHAR2(VARCHAR),描述变长字符串。它的声明方式如下VARCHAR2( L), L 为字符串长度,没有缺省值,作为变量最大 32767 个字节,作为数据储备在ORACLE8中最大为 4000。在多字节语言环境中,实际储备的字符个数可能小于 L 值,例如:当语言环境为中文(SIMPLIFIED CHINESE_CHINA.ZHS16G)BK时,一个 VARCHAR2( 200)的数据列可以储存 200 个英文字符或者 100 个汉字字符。LONG,在数据库储备中可以用来储存高达2G 的数据,作为变量,可以表示一
9、个最大长度为32760 字节的可变字符串。NCHAR、NVARCHAR2,国家字符集,与环境变量NLS指定的语言集亲热相关,使用方法和CHAR、VARCHAR2相同。行,包括 RAW 和 LONG RAW两种类型。用来储备二进制数据,不会在字符集间转换。RAW,类似于 CHAR,声明方式RAW( L), L 为长度,以字节为单位,作为数据库列最大2000 ,作为变量最大32767 字节。LONG RAW,类似于 LONG,作为数据库列最大储备2G 字节的数据,作为变量最大32760 字节。日期,只有一种类型 -DATE,用来储备时间信息,站用7 个字节(从世纪到秒) ,确定没有 “千年虫 ”问
10、题。行标识,只有一种类型 -ROWID,用来储备 “行标识符 ”,可以利用 ROWIDTOCHAR函数来将行标识转换成为字符。布尔,只有一种类型 -BOOLEAN,仅仅可以表示 TRUE、FALSE或者 NULL。可信,只有一种类型 -MLSLABEL,可以在 TRUSTED ORACL中E 用来储存可变长度的二进制标签。在标准ORACLE中,只能储备 NULL 值。三、复合( COMPOSITE)标量类型是经过预定义的,利用这些类型可以衍生出一些复合类型。主要有记录、表。记录,可以看作是一组标量的组合结构,它的声明方式如下:TYPE record_type_name IS RECORD fi
11、led1 type1 NOT NULL : =expr1.filedn typen NOT NULL : =exprn)其中, record_type_name 是记录类型的名字。 (是不是看着象 CREATE TABL?E )引用时必需定义相关的变量,记录只是 TYPE,不是 VARIABLE。表,不是物理储备数据的表,在这里是一种变量类型,也称为PL/SQL 表,它类似于 C 语言中的数组,在处理方式上也相像。它的声明方式如下:可编辑资料 - - - 欢迎下载精品名师归纳总结TYPE table_type_name IS TABLE OF scalar_type INDEX BY BINA
12、RY_INTEN。ER其中,table_type_name 是类型的名字, scalar_type 是一种标量类型的类型声明。引用时也必需定义相关的变量。可编辑资料 - - - 欢迎下载精品名师归纳总结表和数组不同,表有两列,KEY 和 VALUE, KEY 就是定义时声明的BINARY_INTENE,Rscalar_type 。VALUE 就是定义时声明的可编辑资料 - - - 欢迎下载精品名师归纳总结除了记录和表之外,仍有对象类型、集合(嵌套表和VARRAYS)等类型,这些将特的讲解。四、引用( REFERENC)E在 PL/SQL8.0之前,只有一种类型 -REF CURSO,R也就是游
13、标。它的定义较为简洁, CURSOR cursor_name IS select .from. 。.在 PL/SQL8.0之后,引入了REF类型,它指向一个对象。这种类型将单独讲解。(等我弄明白再说,免得在高人面前)五、 LOB型LOB变量主要是用来储备大量数据的数据库字段,最大可以储备4G 字节的内容(这么大,存VCD?,铺张!)。主要有:CLOB:和 ORACLE7中的 LONG 类型相像,储备单字节字符数据。(别用来存中文喔。 。)NCLOB:用来储备定宽多字节字符数据。(例如:存啸傲江湖就挺好)BLOB:和 LONG RAW相像,用来储备无结构的二进制数据。BFILE:它用来答应 OR
14、ACLE对数据库外储备的大型二进制文本进行只读形式的拜望。六、其他其实在完成对标量变量的懂得之后,基本上可以应对 C/S 模式下的常规数据库应用所需了,后续的类型说实话, 我玩了 5 年 ORACLE,都很少用到。附:参考书 ORACLE8 PL/SQL程序设计( ORACLE8 PL/SQL PROGRAMMING) ORACLE技术系列丛书机械工业出版社注:本文所列举的是PL/SQL 当中可以定义的数据类型,并不是全部的类型都可以在建表时指定为列的数据类型SqlServer数据类型数据类型bigint说明整数数据,从 263 9,223,372,036,854,775,808储备大小为 8
15、 字节。到 263 1 9,223,372,036,854,775,807。整数数据,从 231 -2,147,483,648到 2311 2,147,483,647。integer储备大小为 4 字节。smallint整数数据,从 32,768到 32,767 。储备大小为 2 字节。tinyint整数数据,从 0 到 255 。储备大小为 1 字节。整数数据,值为1 或 0 。bit储备大小为 1 位。固定精度和小数的数字数据, 取值范畴从 1038+1到 10381 。p 变量指定精度, 取值范畴从 1 到numeric p, s38 。s 变量指定小数位数,取值范畴从0 到 p 。储备
16、大小为 19 字节。money货币数据值,从263/10000 922,337,203,685,477.5807922,337,203,685,477.5808到 2631,精确度为货币单位的万分之一。储备大小为8 字节。可编辑资料 - - - 欢迎下载精品名师归纳总结float浮点数数据,从1.79E +308到 1.79E+308储备大小为 8 字节。可编辑资料 - - - 欢迎下载精品名师归纳总结可编辑资料 - - - 欢迎下载精品名师归纳总结real浮点精度数字数据,从3.40E+38到 3.40E+38。储备大小为 4 字节。可编辑资料 - - - 欢迎下载精品名师归纳总结日期和时间
17、数据, 从 1753年 1 月 1 日到 9999年 12月 31日,精确度为三百分之一秒或3.33毫秒。值被圆整到 .000、.003或 .007毫秒增量。可编辑资料 - - - 欢迎下载精品名师归纳总结datetime储备为两个 4 字节整数。前 4 个字节储备早于或晚于 基日期 1900年 1 月 1 日的天数。基日期是系统的参照日期。不答应datetime的值早于1753年 1 月 1 日。后 4 个字节储备一天之中的详细时间,被表示为从午夜算起的毫秒数。秒数的有效范畴是0 59 。可编辑资料 - - - 欢迎下载精品名师归纳总结可编辑资料 - - - 欢迎下载精品名师归纳总结nati
18、onal characternSynonym:ncharn固定长度的 Unicode数据,最大长度为4000个字符。默认长度= 1 。储备大小(以字节计)是输入的字符数的两倍。可编辑资料 - - - 欢迎下载精品名师归纳总结可编辑资料 - - - 欢迎下载精品名师归纳总结national character varyingnSynonym:nvarcharn可变长度的 Unicode数据, 长度值范畴为从1 到 4000个字符。 默认长度= 1 。储备大小 (以字节计) 是输入的字符数的两倍。可编辑资料 - - - 欢迎下载精品名师归纳总结可编辑资料 - - - 欢迎下载精品名师归纳总结nte
19、xtbinaryn可变长度的 Unicode数据,最大长度为2302/2 536,870,911个字符。储备大小(以字节计)是输入的字符数的两倍。留意:字符串函数中不再支持ntext。固定长度的二进制数据,最大长度为8000字节。默认长度= 1 。储备大小是固定的,是在类型中声明的以字节为单位的长度。可编辑资料 - - - 欢迎下载精品名师归纳总结varbinaryn可变长度的二进制数据,最大长度为8000字节。默认长度= 1 。储备大小可变。它表示值的长度(以字节为单位)。可编辑资料 - - - 欢迎下载精品名师归纳总结可编辑资料 - - - 欢迎下载精品名师归纳总结image可变长度的二进
20、制数据,最大长度为2301 1,073,741,823字节。储备大小是值的以字节为单位的长度。可编辑资料 - - - 欢迎下载精品名师归纳总结uniqueidentifier全局唯独标识符GUID 。储备大小为 16 字节。这是数据列的一个属性,而不是一个特殊的数据类型。可编辑资料 - - - 欢迎下载精品名师归纳总结IDENTITY s, i只有整数数据类型的数据列可用于标识列。一个表只能有一个标识列。可以指定种子和增量,但不能更新列。s seed =起始值iincrement =增量值可编辑资料 - - - 欢迎下载精品名师归纳总结ROWGUIDCOL这是数据列的一个属性,而不是一个特殊的
21、数据类型。它是一个表中使用uniqueidentifier数据类型定义的列。一个表只能有一个ROWGUIDCOL列可编辑资料 - - - 欢迎下载精品名师归纳总结表 SQL 到 Java 数据类型影射表SQL数据类型JAVA数据类型CHARStringVARCHARStringLONGVARCHARStringNUMERICjava.math.BigDecimalDECIMALjava.math.BigDecimal BITBooleanTINYINTByteSMALLINTShortINTEGERIntBIGINTLongREALFloatFLOATDoubleDOUBLEDoubleBIN
22、ARYbyteVARBINARYbyteLONGVARBINARYbyteDATEjava.sql.DateTIMEjava.sql.TimeTIMESTAMPjava.sql.TimestampJava 到 SQL 数据类型影射表JAVA数据类型SQL数据类型StringVARCHAR or LONGVARCHARjava.math.BigDecimalNUMERICBooleanBITByteTINYINT可编辑资料 - - - 欢迎下载精品名师归纳总结ShortSMALLINTIntINTEGERLongBIGINTFloatREALDoubleDOUBLEbyteVARBINARY o
23、r LONGVARBINARYjava.sql.DateDATEjava.sql.TimeTIMEjava.sql.TimestampTIMESTAMP这里,大伙要留意了,并不是全部的数据类型在各种数据库治理系统中都被支持。下面,就几种常用的数据类型之间的转化进行说明:( 1)CHAR, VARCHAR,和 LONGVARCHAR在 SQL 语言中,有三种分别表示不同长度的字符类型CHAR,VARCHAR,和 LONGVARCHAR,在 Java/Jsp 中并没有相应的三种 不同的数据类型与之一一对应,JDBC 的处理方法是将其与 String 或者 char 对应起来。在实际编程中不必对着三
24、种SQL 数据类型进行区分,全部将他们转化为Sting 或者 char 就可以了。而且通常使用应用的特殊普遍的String 类型。我们仍可以利用String 类供应的方法将一个String 对象转化为 char, 或者用 char 为参数构造一个 Stirng 对象。对于定长度的SQL数据类型 CHARn,当从数据库治理系统中获得的结果集提取该类型的数据时,JDBC会为其构造一个长度为n 的 St ring对象来代表他,假照实际的字符个数不足n , 系统会自动为 String对象补上空格。当向数据库治理系统写入的数据类型应当是 CHARn时, JDBC也会将该 String对象的末尾补上相应数
25、量的空格。一般情形下, CHAR,VARCHAR,LONGVARCHAR和 String 之间可以无差错的进行转换。但特殊值得留意的是LONGVARCHAR, 这种 SQL 的数据类型有时在数据库中代表的数据可能有几兆字节的大小,超过了String 对象的承担范畴。 JDBC 解决的方法是用 Java 的 InputStream 来接受这种类型的数据 以后我们回涉及到 。InputStream 不仅支持 ASCII, 而且支持 Unicode ,我们可以依据需要进行选择。( 2)DECIMAL 和 NUMERICSQL 的 DECIMAL和 NUMERIC通常用来表示需要确定精度的定点数。在J
26、ava 的简洁数据类型中,没有一种类型与之相对应。但从JDK1.1 开头, Sun 公司在 java.math.* 包中加入了一个新的类BigDecimal ,该类的对象可以与DECIMAL、NUMERIC进行转换。 另外,当从数据库治理系统中读取数据时,仍可以用getString方法来猎取 DECIMAL和 NUMERIC。( 3)BINARY, VARBINARY, 和 LONGVARBINARY在编程时无须精确区分这三种SQL 数据类型, JDBC 将他们统一影射为 byte 。其中 LONGVARBINAR和Y LONGVARCHA相R似,可以代表几兆字节的数据,超出数组的承担范畴。解
27、决的方法照旧是用Input Stream来接受数据。( 4)BIT代表一个二进制位的 BIT 类型被 JDBC 影射为 boolean 型。( 5)TINYINT, SMALLINT, INTEGER,和 BIGINTSQL 语言的 TINYINT,SMALLINT,INTEGER,和 BIGINT 分别代表 8 位、 16 位、 32 位、 64 位的数据。他们分别被影射为Java 的byte,short,int, 和 long( 6)REAL,FLOAT,和 DOUBLESQL 定义了 REAL,FLOAT,DOUBLE 来支持浮点数。 JDBC 将 REAL 影射到 Java 的 flo
28、at, 将 FLOAT,DOUBLE影射到 java 的 dou ble 。( 7)DATE,TIME,和 TIMESTAMPSQL 定义了三种和日期相关的数据类型。 DATE 代表年、月、日, TIME 代表时、分、秒, TIMESTAMP 结合了 DATE 和 TIME 的全部信息,而且增加了更加精确的时间计量单位。在 java 的标准类库中, java.util.* 包中的 Date 类用来表示日期和时间。但是该类和 SQL 中的 DATE, TIME, 和 TIMESTAMP 直接影射关系并不清晰。并且,该类也不支持 TIMESTAMP 的精确时间计量单位。因此, Sun 公司在 java.sql.* 中为 java.util.Date 增加了三个子类: java.sql.Date ,java.sql.Time ,java.sql.Timestamp ,分别与 SQL 中的三个日期数据类型相对应。可编辑资料 - - - 欢迎下载精品名师归纳总结可编辑资料 - - - 欢迎下载