文档库 最新最全的文档下载
当前位置:文档库 › 数据库常用数据类型

数据库常用数据类型

数据库常用数据类型
数据库常用数据类型

(1) 整数型

整数包括bigint、int、smallint和tinyint,从标识符的含义就可以看出,它们的表示数范围逐渐缩小。

l bigint:大整数,数范围为-263 (-9223372036854775808)~263-1 (9223372036854775807) ,其精度为19,小数位数为0,长度为8字节。

l int:整数,数范围为-231 (-2,147,483,648) ~231 - 1 (2,147,483,647) ,其精度为10,小数位数为0,长度为4字节。

l smallint:短整数,数范围为-215 (-32768) ~215 - 1 (32767) ,其精度为5,小数位数为0,长度为2字节。

l tinyint:微短整数,数范围为0~255,长度为1字节,其精度为3,小数位数为0,长度为1字节。

(2) 精确整数型

精确整数型数据由整数部分和小数部分构成,其所有的数字都是有效位,能够以完整的精度存储十进制数。精确整数型包括decimal 和numeric两类。从功能上说两者完全等价,两者的唯一区别在于decimal不能用于带有identity关键字的列。

声明精确整数型数据的格式是numeric | decimal(p[,s]),其中p为精度,s为小数位数,s的缺省值为0。例如指定某列为精确整数型,精度为6,小数位数为3,即decimal(6,3),那么若向某记录的该列赋值56.342689时,该列实际存储的是56.3427。

decimal和numeric可存储从-1038 +1 到1038 –1 的固定精度和小数位的数字数据,它们的存储长度随精度变化而变化,最少为5字节,最多为17字节。

l 精度为1~9时,存储字节长度为5;

l 精度为10~19时,存储字节长度为9;

l 精度为20~28时,存储字节长度为13;

l 精度为29~38时,存储字节长度为17。

例如若有声明numeric(8,3),则存储该类型数据需5字节,而若有声明numeric(22,5),则存储该类型数据需13字节。

注意:声明精确整数型数据时,其小数位数必须小于精度;在给精确整数型数据赋值时,必须使所赋数据的整数部分位数不大于列的整数部分的长度。

(3) 浮点型

浮点型也称近似数值型。顾名思义,这种类型不能提供精确表示数据的精度,使用这种类型来存储某些数值时,有可能会损失一些精度,所以它可用于处理取值范围非常大且对精确度要求不是十分高的数值量,如一些统计量。

有两种近似数值数据类型:float[(n)]和real,两者通常都使用科学计数法表示数据,即形为:尾数E阶数,如5.6432E20,-2.98E10,1.287659E-9等。

l real:使用4字节存储数据,表数范围为-3.40E + 38 到3.40E + 38,数据精度为7位有效数字。

l float:定义中的n取值范围是1~53,用于指示其精度和存储大小。当n在1~24之间时,实际上是定义了一个real型数据,存储长度为4字节,精度为7位有效数字;当n在25~53之间时,存储长度为8字节,精度为15位有效数字。当缺省n时,代表n在25~53之间。float型数据的数范围为- 1.79E+308 到1.79E+308。

(4) 货币型

SQL Server提供了两个专门用于处理货币的数据类型:money和smallmoney,它们用十进制数表示货币值。

l money:数据的数范围为-263 (-922337203685477.5808)~263-1 (922337203685477.5807) ,其精度为19,小数位数为4,长度为8字节。money 的数的范围与bigint相同,不同的只是money型有4位小数,实际上,money 就是按照整数进行运算的,只是将小数点固定在末4位。

l smallmoney:数范围为–231 (-2,147,48.3648) ~231 - 1 (2,147,48.3647) ,其精度为10,小数位数为4,长度为4字节。可见smallmoney与int的关系就如同money与bigint的关系。

当向表中插入money或smallmoney类型的值时,必须在数据前面加上货币表示符号($),并且数据中间不能有逗号(,);若货币值为负数,需要在符号$的后面加上负号(-)。例如:$15000.32,$680,$-20000.9088都是正确的货币数据表示形式。

(5) 位型

SQL Server中的位(bit)型数据相当于其他语言中的逻辑型数据,它只存储0和1,长度为一个字节。但要注意,SQL Server对表中bit类型列的存储作了优化:如果一个表中有不多于8 个的bit列,这些列将作为一个字节存储,如果表中有9 到16 个bit 列,这些列将作为两个字节存储,更多列的情况依此类推。

当为bit类型数据赋0时,其值为0,而赋非0(如100)时,其值为1。

若表中某列为bit类型数据,那么该列不允许为空值(有关空值概念本节稍后即做介绍),并且不允许对其建立索引。

(6) 字符型

字符型数据用于存储字符串,字符串中可包括字母、数字和其它特殊符号(如#、@、&等等)。在输入字符串时,需将串中的符号用单引号或双引号括起来,如’abc’、‖Abc

SQL Server字符型包括两类:固定长度(char) 或可变长度(varchar) 字符数据类型。

l char[(n)]

定长字符数据类型,其中n定义字符型数据的长度,n在1到8000之间,缺省为1。当表中的列定义为char(n)类型时,若实际要存储的串长度不足n时,则在串的尾部添加空格以达到长度n,所以char(n)的长度为n。例如某列的数据类型为char(20),而输入的字符串为‖ahjm1922‖,则存储的是字符ahjm1922和12个空格。若输入的字符个数超出了n,则超出的部分被截断。

l varchar[(n)]

变长字符数据类型,其中n的规定与定长字符型char中n完全相同,但这里n 表示的是字符串可达到的最大长度。varchar(n)的长度为输入的字符串的实际字符个数,而不一定是n。例如,表中某列的数据类型为varchar(100),而输入的字符串为‖ahjm1922‖,则存储的就是字符ahjm1922,其长度为8字节。

当列中的字符数据值长度接近一致时,例如姓名,此时可使用char;而当列中的数据值长度显著不同时,使用varchar较为恰当,可以节省存储空间。

(7) Unicode字符型

Unicode是―统一字符编码标准‖,用于支持国际上非英语语种的字符数据的存储和处理。SQL Server的Unicode字符型可以存储Unicode标准字符集定义的各种字符。

Unicode字符型包括nchar[(n)]和nvarchar[(n)]两类。nchar是固定长度Unicode 数据的数据类型,nvarchar 是可变长度Unicode 数据的数据类型,二者均使用UNICODE UCS-2 字符集。

l nchar[(n)]:nchar[(n)]为包含n个字符的固定长度Unicode 字符型数据,n 的值在1 与4,000 之间,缺省为1。长度为2n字节。若输入的字符串长度不足n,将以空白字符补足。

l nvarchar[(n)]:nvarchar[(n)]为最多包含n个字符的可变长度Unicode 字符型数据,n 的值在 1 与4,000之间,缺省为1。长度是所输入字符个数的两倍。

实际上,nchar、nvarchar与char、varchar的使用非常相似,只是字符集不同(前者使用Unicode字符集,后者使用ASCII字符集)。

(8) 文本型

当需要存储大量的字符数据,如较长的备注、日志信息等等,字符型数据的最长8000个字符的限制可能使它们不能满足这种应用需求,此时可使用文本型数据。

文本型包括text和ntext两类,分别对应ASCII字符和Unicode字符。text类型可以表示最大长度为231-1 (2,147,483,647) 个字符,其数据的存储长度为实际

字符数个字节。ntext可表示最大长度为230 - 1 (1,073,741,823) 个Unicode

字符,其数据的存储长度是实际字符个数的两倍(以字节为单位)。

(9) 二进制型

二进制数据类型表示的是位数据流,包括binary(固定长度)和varbinary(可变长度)两种。

l binary [(n) ]:固定长度的n个字节二进制数据。n取值范围为1 到8,000,缺省为1。binary(n)数据的存储长度为n+4 字节。若输入的数据长度小于n,则不足部分用0填充;若输入的数据长度大于n,则多余部分被截断。

输入二进制值时,在数据前面要加上0x,可以用的数字符号为0—9、A—F(字母大小写均可)。因此,二进制数据有时也被称为十六进制数据。例如0xFF、0x12A0分别表示值FF和12A0。因为每字节的数最大为FF,故在―0x‖格式的数据每两位占1个字节。

l varbinary [(n) ]:n个字节变长二进制数据。n取值范围为1 到8,000,缺省为1。varbinary(n)数据的存储长度为实际输入数据长度+4个字节。

(10) 日期时间类型

日期时间类型数据用于存储日期和时间信息,包括datetime和smalldatetime两类。

l datetime:datetime类型可表示的日期范围从1753 年1 月1 日到9999 年12 月31 日的日期和时间数据,精确度为百分之三秒(3.33 毫秒或0.00333 秒),例如1到3毫秒的值都表示为0毫秒,4到6毫秒的值都表示为4毫秒。

datetime类型数据长度为8字节,日期和时间分别使用4个字节存储。前4 字节用于存储datetime类型数据中距1900 年1 月 1 日的天数,为正数表示日期在1900年1月1日之后,为负数则表示日期在1900年1月1日之前。后4个字节用于存储datetime类型数据中距12:00(24小时制)的毫秒数。

用户以字符串形式输入datetime类型数据,系统也以字符串形式输出datetime 类型数据,将用户输入到系统以及系统输出的datetime类型数据的字符串形式称为datetime类型数据的―外部形式‖,而将datetime在系统内的存储形式称为―内部形式‖,SQL Server负责datetime类型数据的两种表现形式之间的转换,包括合法性检查。

用户给出datetime类型数据值时,日期部分和时间部分分别给出。

日期部分的表示形式常用的格式如下:

年月日2001 Jan 20、2001 Janary 20

年日月2001 20 Jan

月日[,]年Jan 20 2001、Jan 20,2001、Jan 20,01

月年日Jan 2001 20

日月[,]年20 Jan 2001、20 Jan,2001

日年月20 2001 Jan

年(4位数) 2001表示2001年1月1日

年月日20010120、010120

月/日/年01/20/01、1/20/01、01/20/2001、1/20/2001

月-日-年01-20-01、1-20-01、01-20-2001、1-20-2001

月.日.年01.20.01、1.20.01、01.20.2001、1.20.2001

说明:年可用4位或2位表示,月和日可用1位或2位表示。

时间部分常用的表示格式如下:

时:分10:20、08:05

时:分:秒20:15:18、20:15:18.2

时:分:秒:毫秒20:15:18:200

时:分AM|PM 10:10AM、10:10PM

l smalldatetime:smalldatetime类型数据可表示从1900 年1 月1 日到2079 年6 月6 日的日期和时间,数据精确到分钟,即29.998 秒或更低的值向下舍入为最接近的分钟,29.999 秒或更高的值向上舍入为最接近的分钟。Smalldatetime类型数据的存储长度为4字节,前2个字节用来存储smalldatetime类型数据中日期部分距1900年1月1日之后的天数;后2个字节用来存储smalldatetime类型数据中时间部分距中午12点的分钟数。

用户输入smalldatetime类型数据的格式与datetime类型数据完全相同,只是它们的内部存储可能不相同。

(11) 时间戳型

标识符是timestamp。若创建表时定义一个列的数据类型为时间戳类型,那么每当对该表加入新行或修改已有行时,都由系统自动将一个计数器值加到该列,即将原来的时间戳值加上一个增量。记录timestamp列的值实际上反映了系统对该记录修改的相对(相对于其他记录)顺序。一个表只能有一个timestamp 列。Timestamp类型数据的值实际上是二进制格式数据,其长度为8字节。

(12) 图象数据类型

标识符是image,它用于存储图片、照片等。实际存储的是可变长度二进制数据,介于0 与231-1 (2,147,483,647) 字节之间。

(13) 其它数据类型

除了上面所介绍的常用数据类型外,SQL Server 2000还提供了其它几种数据类型:cursor、sql_variant、table和uniqueidentifier。

Cursor:是游标数据类型,用于创建游标变量或定义存储过程的输出参数。

Sql_variant:是一种存储SQL Server 支持的各种数据类型(除text、ntext、image、timestamp 和sql_variant 外)值的数据类型。Sql_variant的最大长度可达8016 字节。

Table:是用于存储结果集的数据类型,结果集可以供后续处理。

Uniqueidentifier:是唯一标识符类型。系统将为这种类型的数据产生唯一标识值,它是一个16字节长的二进制数据。

数据库数据类型

MySQL 数据类型在MySQL 中,有三种主要的类型:文本、数字和日期/时间类型。 Text类型 数据类型描述 CHAR(size) 保存固定长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的长度。最多255 个字符。 VARCHAR(size) 保存可变长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的最大长度。最多255 个字符。注释:如果值的长度大于255,则被转换为TEXT 类型。 TINYTEXT 存放最大长度为255 个字符的字符串。 TEXT 存放最大长度为65,535 个字符的字符串。 BLOB 用于BLOBs (Binary Large OBjects)。存放最多65,535 字节的数据。MEDIUMTEXT 存放最大长度为16,777,215 个字符的字符串。 MEDIUMBLOB 用于BLOBs (Binary Large OBjects)。存放最多16,777,215 字节的数据。LONGTEXT 存放最大长度为4,294,967,295 个字符的字符串。 LONGBLOB 用于BLOBs (Binary Large OBjects)。存放最多4,294,967,295 字节的数据。 ENUM(x,y,z,etc.) 允许你输入可能值的列表。可以在ENUM 列表中列出最大65535 个值。如果列表中不存在插入的值,则插入空值。 注释:这些值是按照你输入的顺序存储的。可以按照此格式输入可能的值:ENUM('X','Y','Z') SET 与ENUM 类似,SET 最多只能包含64 个列表项,不过SET 可存储一个以上的值。 Number类型: 数据类型描述 TINYINT(size) -128 到127 常规。0 到255 无符号*。在括号中规定最大位数。 SMALLINT(size) -32768 到32767 常规。0 到65535 无符号*。在括号中规定最大位数。 MEDIUMINT(size) -8388608 到8388607 普通。0 to 16777215 无符号*。在括号中规定最大位数。 INT(size) -2147483648 到2147483647 常规。0 到4294967295 无符号*。在括号中规定最大位数。 BIGINT(size) -9223372036854775808 到9223372036854775807 常规。0 到18446744073709551615 无符号*。在括号中规定最大位数。 FLOAT(size,d) 带有浮动小数点的小数字。在括号中规定最大位数。在d 参数中规定小数点右侧的最大位数。DOUBLE(size,d) 带有浮动小数点的大数字。在括号中规定最大位数。在d 参数中规定小数点右侧的最大位数。DECIMAL(size,d) 作为字符串存储的DOUBLE 类型,允许固定的小数点。 这些整数类型拥有额外的选项UNSIGNED。通常,整数可以是负数或正数。如果添加UNSIGNED 属性,那么范围将从0 开始,而不是某个负数。

数据库常用数据类型

(1) 整数型 整数包括bigint、int、smallint和tinyint,从标识符的含义就可以看出,它们的表示数范围逐渐缩小。 l bigint:大整数,数范围为-263 (-9223372036854775808)~263-1 (9223372036854775807) ,其精度为19,小数位数为0,长度为8字节。 l int:整数,数范围为-231 (-2,147,483,648) ~231 - 1 (2,147,483,647) ,其精度为10,小数位数为0,长度为4字节。 l smallint:短整数,数范围为-215 (-32768) ~215 - 1 (32767) ,其精度为5,小数位数为0,长度为2字节。 l tinyint:微短整数,数范围为0~255,长度为1字节,其精度为3,小数位数为0,长度为1字节。 (2) 精确整数型 精确整数型数据由整数部分和小数部分构成,其所有的数字都是有效位,能够以完整的精度存储十进制数。精确整数型包括decimal 和numeric两类。从功能上说两者完全等价,两者的唯一区别在于decimal不能用于带有identity关键字的列。 声明精确整数型数据的格式是numeric | decimal(p[,s]),其中p为精度,s为小数位数,s的缺省值为0。例如指定某列为精确整数型,精度为6,小数位数为3,即decimal(6,3),那么若向某记录的该列赋值56.342689时,该列实际存储的是56.3427。 decimal和numeric可存储从-1038 +1 到1038 –1 的固定精度和小数位的数字数据,它们的存储长度随精度变化而变化,最少为5字节,最多为17字节。 l 精度为1~9时,存储字节长度为5; l 精度为10~19时,存储字节长度为9; l 精度为20~28时,存储字节长度为13; l 精度为29~38时,存储字节长度为17。 例如若有声明numeric(8,3),则存储该类型数据需5字节,而若有声明numeric(22,5),则存储该类型数据需13字节。 注意:声明精确整数型数据时,其小数位数必须小于精度;在给精确整数型数据赋值时,必须使所赋数据的整数部分位数不大于列的整数部分的长度。 (3) 浮点型 浮点型也称近似数值型。顾名思义,这种类型不能提供精确表示数据的精度,使用这种类型来存储某些数值时,有可能会损失一些精度,所以它可用于处理取值范围非常大且对精确度要求不是十分高的数值量,如一些统计量。

Oracle数据库的空间数据类型

Oracle数据库中空间数据类型随着GIS、CAD/CAM的广泛应用,对数据库系统提出了更高的要求,不仅要存储大量空间几何数据,且以事物的空间关系作为查询或处理的主要内容。Oracle数据库从9i开始对空间数据提供了较为完备的支持,增加了空间数据类型和相关的操作,以及提供了空间索引功能。 Oracle的空间数据库提供了一组关于如何存储,修改和查询空间数据集的SQL schema与函数。通过MDSYS schema规定了所支持的地理数据类型的存储、语法和语义,提供了R-tree空间数据索引机制,定义了关于空间的相交查询、联合查询和其他分析操作的操作符、函数和过程,并提供了处理点,边和面的拓扑数据模型及表现网络的点线的网络数据模型。 Oracle中各种关于空间数据库功能主要是通过Spatial组件来实现。从9i版本开始,Oracle Spatial空间数据库组件对存储和管理空间数据提供了较为完备的支持。其主要通过元数据表、空间数据字段(即SDO_GEOMETRY字段)和空间索引来管理空间数据,并在此基础上提供一系列空间查询和空间分析的函数,让用户进行更深层次的GIS应用开发。Oracle Spatial使用空间字段SDO_GEOMETRY存储空间数据,用元数据表来管理具有SDO_GEOMETRY字段的空间数据表,并采用R树索引和四叉树索引技术来提高空间查询和空间分析的速度。 1、元数据表说明。 Oracle Spatial的元数据表存储了有空间数据的数据表名称、空间字段名称、空间数据的坐标范围、坐标参考信息以及坐标维数说明等信息。用户必须通过元数据表才能知道ORACLE数据库中是否有Oracle Spatial的空间数据信息。一般可以通过元数据视图(USER_SDO_GEOM_METADATA)访问元数据表。元数据视图的基本定义为: ( TABLE_NAME V ARCHAR2(32), COLUMN_NAME V ARCHAR2(32), DIMINFO MDSYS.SDO_DIM_ARRAY, SRID NUMBER

sqlserver2008数据类型说明

sqlserver2008数据类型说明 SQL Server 2008数据类型(1) 在创建表时,必须为表中的每列指派一种数据类型。本节将介绍SQL Server中最常用的一些数据类型。即使创建自定义数据类型,它也必须基于一种标准的SQL Server数据类型。例如,可以使用如下语法创建一种自定义数据类型(Address),但要注意,它基于SQL Server标准的varchar数据类型。 1.CREATE TYPE Address 2.FROM varchar(35) NOT NULL 如果在SQL Server Management Studio的表设计界面中更改一个大型表中某列的数据类型,那么该操作可能需要很长时间。可以通过在Management Studio界面中脚本化这种改变来观察其原因。Management Studio再创建一个临时表,采用像tmpTableName这样的名称,然后将数据复制到该表中。最后,界面删除旧表并用新的数据类型重命名新表。当然,此过程中还涉及其他一些用于处理表中索引和其他任何关系的步骤。 如果有一个包含数百万条记录的大型表,则该过程可能需要花费十分钟,有时可能是数小时。为避免这种情况,可在查询窗口中使用简单的单行T-SQL语句来更改该列的数据类型。例如,要将Employees表中JobTitle列的数据类型改为varchar(70),可以使用如下语法。 1.ALTER TABLE HumanResources.Employee ALTER COLUMN JobTitle Varchar(70 ) 说明: 在转换为与当前数据不兼容的数据类型时,可能丢失重要数据。例如,如果要将包含一些数据(如15.415)的numeric数据类型转换为integer数据类型,那么15.415这个数据将四舍五入为整数。 您可能想对SQL Server表编写一个报表,显示表中每列的数据类型。完成这项任务的方法有很多种,但最常见的一种方法是连接sys.objects表和sys.columns表。在下面的代码中,有两个函数可能不太为您所熟悉。函数TYPE_NAME()将数据类型id转换为适当的名称。要进行反向操作,可使用TYPE_ID()函数。需要注意的另一个函数是SCHEMA_ID(),它用于返回架构的标识值。在需要编写有关SQL Server元数据的报表时,这是特别有用的。 1.SELECT https://www.wendangku.net/doc/173155632.html, AS ObjectName, 2. https://www.wendangku.net/doc/173155632.html, AS ColumnName, 3.TYPE_NAME(https://www.wendangku.net/doc/173155632.html,er_type_id) as DataType 4.FROM sys.objects o JOIN sys.columns c 5.ON o.object_id = c.object_id

数据库设计基本数据类型说明

一. 基本类型 数据库设计,在数据库设计文档中,统一用内存类型作为数据库库设计文档,至于内存类型和数据库之间的对应关系统一由工具来处理 数据库设计文档类型 现用 原用 Orcal 内存类型 size SQL Server Oracle varchar varchar VARCHAR2 String 需要填写长度 4000以内 varchar VARCHAR2 Smallint 2 smallint NUMBER(2,0) bigint Integer 4 int NUMBER(4,0) bit decimal NUMBER Boolean tinyint NUMBER(1,0) float Float 需要填写长度 float NUMBER() int NUMBERIC money Currency 默认4位 money NUMBER(19,4) real DateTime datetime date smallint Blob image BLOB tinyint Guid Unique.. VARCHAR2(40) smallmoney Int64 8 Int64 NUMBER(8,0) numeric datetime datetime date SmallDatetime varchar(40) uniqueidentifier varchar2(40) image image BLOB S U N L I G H T

二.表结构通用字段 类别字段说明 台帐单据objid 单据ID EnterCode 企业Code BrandCode 品牌Code 其他业务字 段 静态单据主单 objid 单据ID Code 单据编号 EnterCode 企业Code BrandCode 品牌Code ModifyCode 最近更新人Code ModifyTime 更新时间 Status 状态 Verinfo 版本号 业务字段 静态单据日志表 objid 单据ID parentid 父单据 LogData 更新日志 ModifyCode 最近更新人 Code S U N L I G H T

数据库数据类型的使用与区别

数据库数据类型的使用与区别 整型数据类型: 1、INT (INTEGER) INT (或INTEGER)数据类型存储从-2的31次方(-2 ,147 ,483 ,648)到2的31次方-1 (2 ,147 ,483,647)之间的所有正负整数。每个INT 类型的数据按4 个字节存储,其中1 位表示整数值的正负号,其它31 位表示整数值的长度和大小。 2、SMALLINT SMALLINT 数据类型存储从-2的15次方( -32, 768)到2的15次方-1( 32 ,767 )之间的所有正负整数。每个SMALLINT 类型的数据占用2 个字节的存储空间,其中1 位表示整数值的正负号,其它15 位表示整数值的长度和大小。 3、TINYINT TINYINT数据类型存储从0 到255 之间的所有正整数。每个TINYINT类型的数据占用1 个字节的存储空间。 4、BIGINT BIGINT 数据类型存储从-2^63 (-9 ,223, 372, 036, 854, 775, 807)到2^63-1( 9, 223, 372, 036 ,854 ,775, 807)之间的所有正负整数。每个BIGINT 类型的数据占用8个字节的存储空间。 浮点数据类型: 浮点数据类型用于存储十进制小数。浮点数值的数据在SQL Server 中采用上舍入(Round up 或称为只入不舍)方式进行存储。所谓上舍入是指,当(且仅当)要舍入的数是一个非零数时,对其保留数字部分的最低有效位上的数值加1 ,并进行必要的进位。若一个数是上舍入数,其绝对值不会减少。如:对3.14159265358979 分别进行 2 位和12位舍入,结果为 3.15 和3.141592653590。 1、REAL 数据类型 REAL数据类型可精确到第7 位小数,其范围为从-3.40E -38 到3.40E +38。每个REAL类型的数据占用4 个字节的存储空间。 2、FLOAT FLOAT数据类型可精确到第15 位小数,其范围为从-1.79E -308 到1.79E +308。每个FLOAT 类型的数据占用8 个字节的存储空间。 FLOAT数据类型可写为FLOAT[ n ]的形式。n 指定FLOAT 数据的精度。n 为1到15 之间的整数值。当n 取1 到7 时,实际上是定义了一个REAL 类型的数据,系统用4 个字节存储它;当n 取8 到15 时,系统认为其是FLOAT 类型,用8 个字节存储它。 3、DECIMAL DECIMAL数据类型可以提供小数所需要的实际存储空间,但也有一定的限制,您可以用2 到17 个字节来存储从-10的38次方-1 到10的38次方-1 之间的数值。可将其写为DECIMAL[ p [s] ]的形式,p 和s 确定了精确的比例和数位。

关于数据库建表时字段数据类型

char、varchar、text、ntext、bigint、int、smallint、tinyint 和bit的区别及数据库的数据类型 基础: char、varchar、text和nchar、nvarchar、ntext的区别 1、CHAR。CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间,不足的自动用空格填充。 2、VARCHAR。存储变长数据,但存储效率没有CHAR高。如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为 VARCHAR(10)是最合算的。VARCHAR类型的实际长度是它的值的实际长度+1。为什么“+1”呢?这一个字节用于保存实际使用了多大的长度。从空间上考虑,用varchar合适;从效率上考虑,用char合适,关键是根据实际情况找到权衡点。 3、TEXT。text存储可变长度的非Unicode数据,最大长度为2^31-1(2,147,483,647)个字符。 4、NCHAR、NVARCHAR、NTEXT。这三种从名字上看比前面三种多了个“N”。它表示存储的是Unicode数据类型的字符。我们知道字符中,英文字符只需要一个字节存储就足够了,但汉字众多,需要两个字节

存储,英文与汉字同时存在时容易造成混乱,Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。nchar、nvarchar的长度是在1到4000之间。和char、varchar比较起来,nchar、nvarchar 则最多存储4000个字符,不论是英文还是汉字;而char、varchar 最多能存储8000个英文,4000个汉字。可以看出使用nchar、nvarchar 数据类型时不用担心输入的字符是英文还是汉字,较为方便,但在存储英文时数量上有些损失。 进一步学习: char、varchar、text、ntext、bigint、int、smallint、tinyint 和bit的区别及数据库的数据类型 Varchar 对每个英文(ASCII)字符都占用2个字节,对一个汉字也只占用两个字节 char 对英文(ASCII)字符占用1个字节,对一个汉字占用2个字节Varchar 的类型不以空格填满,比如varchar(100),但它的值只是"qian",则它的值就是"qian"而char 不一样,比如char(100),它的值是"qian",而实际上它在数据库中是"qian "(qian后共有96个空格,就是把它填满为100个字节)。由于char是以固定长度的,所以它的速度会比varchar快得多!但程序处理起来要麻烦一点,要用trim之类的函数把两边的空格去掉!

Oracle数据库基本数据类型

oracle基本数据类型

oracle 数据库中讨论char ,varchar ,varchar2 数据类型! 这3种字符串数据类型是我们使用最多的,我们在数据库设计时到底该怎么使用了? 首先我们先来分析3个数据类型的说明: 1。char CHAR的长度是固定的,最长2000个字符。 2。varchar 和 varchar2 可以肯定的是oracle中目前是可以使用varchar数据类型的,但他们的区别我查了不少资料也没有找到一个准确的答案最常见的说话是说oracle中的varchar只是varchar2的别名也就是同义词。 其次也有人认为varchar是最大长度为2000的可变字符串(和sql server中的varchar一致),而varchar2最大长度为4000。 知道了他们的特点我们就来讨论下使用区别 1.char和varchar、varchar2 由于varchar和varchar2用途类似,我们先来讨论char和他们的使用区别: varchar和varchar2比char节省空间,在效率上比char会稍微差一些,即要想获得效率,就必须牺牲一定的空间,这也就是我们在数据库设计上常说的

‘以空间换效率’。 varchar和varchar2虽然比char节省空间,但是如果一个varchar和varchar2列经常被修改,而且每次被修改的数据的长度不同,这会引起‘行迁移’(Row Migration)现象,而这造成多余的I/O,是数据库设计和调整中要尽力避免的,在这种情况下用char代替varchar和varchar2会更好一些。 当然还有一种情况就是象身份证这种长度几乎不变的字段可以考虑使用char,以获得更高的效率。 2。varchar和varchar2 这里就进入重点了,前面的区别我们在sql server中我们已经基本了解了,大家可能都知道,最多也就是复习下,但oracle增加了一个varchar2类型,是大家以前所没有用到过的。 因为oracle保证在任何版本中该数据类型向上和向下兼容,但不保证varchar,还有其他数据中一般都有varchar这个数据类型。 所以我得出了以下结论: 如果想在oracle新版本的数据库兼容就不要用varchar,如果想和oracle 之外其他数据库兼容就不要用varchar2。 ORACLE中的数据类型分类 ORACLE中的数据类型不可谓不多,下面把我这两天来的学习体会写一下吧! 1、字符数据类型:包括我CHAR,VARCHAR2,LONG。 CHAR型可以存储字母数字值,这种数据类型的 列长度可以是1到2000个字节。如果未指明,则默认其占用一个字节,如果用户输入的值小于指定的长度,数据库则用空格填充至固定长度。 VARCHAR2型其实就是VARCHAR,只不过后面多了一个数字2,VARCHAR2就是VARCHAR的同义词,也称别名。数据类型大小在1至4000个字节,但是和CHAR不同的一点是:当你定义了VARCHAR2长度为30,但是你只输入了10个字符,这时VARCHAR2不会像CHAR一样填充,在数据库中只有10具字节。

SQL数据库的数据类型详细解释

SQL数据库的数据类型详细解释 (1)二进制数据类型 二进制数据包括 Binary、Varbinary 和 Image Binary 数据类型既可以是固定长度的(Binary),也可以是 变长度的。 Binary[(n)] 是 n 位固定的二进制数据。其中,n 的取值范围是从 1 到 8000。其存储窨的大小是 n + 4 个字节。 Varbinary[(n)] 是 n 位变长度的二进制数据。其中,n 的取值范围是从 1 到 8000。其存储窨的大小是 n + 4个字节,不是n 个字节。 在 Image 数据类型中存储的数据是以位字符串存储的,不是由 SQL Server 解释的,必须由应用程序来解释。例如,应用程序可以使用BMP、TIEF、GIF 和 JPEG 格式把数据存储在 Image 数据类型中。 (2)字符数据类型 字符数据的类型包括 Char,Varchar 和 Text 字符数据是由任何字母、符号和数字任意组合而成的数据。 Varchar 是变长字符数据,其长度不超过 8KB。Char 是定长字符数据,其长度最多为 8KB。超过 8KB 的ASCII 数据可以使用Text数据类型存储。例如,因为 Html 文档全部都是 ASCII 字符,并且在一般情况下长度超过 8KB,所以这些文档可以 Text 数据类型

存储在SQL Server 中。 (3)Unicode 数据类型 Unicode 数据类型包括 Nchar,Nvarchar 和Ntext 在 Microsoft SQL Server 中,传统的非 Unicode 数据类型允许使用由特定字符集定义的字符。在 SQL Server安装过程中,允许选择一种字符集。使用 Unicode 数据类型,列中可以存储任何由Unicode 标准定义的字符。在 Unicode 标准中,包括了以各种字符集定义的全部字符。使用Unicode数据类型,所战胜的窨是使用非Unicode 数据类型所占用的窨大小的两倍。 在 SQL Server 中,Unicode 数据以 Nchar、Nvarchar 和Ntext 数据类型存储。使用这种字符类型存储的列可以存储多个字符集中的字符。当列的长度变化时,应该使用Nvarchar 字符类型,这时最多可以存储 4000 个字符。当列的长度固定不变时,应该使用Nchar 字符类型,同样,这时最多可以存储4000 个字符。当使用Ntext 数据类型时,该列可以存储多于 4000 个字符。 (4)日期和时间数据类型 日期和时间数据类型包括 Datetime 和 Smalldatetime两种类型 日期和时间数据类型由有效的日期和时间组成。例如,有效的日期和时间数据包括“4/01/98 12:15:00:00:00 PM”和

数据库种类及其特点

大型数据库 一、Microsoft SQL Server 适用于入门者。 1、开放性:只能在windows上运行,没有开放性,操作系统的系统的稳定对数 据库是十分重要的,Windows9X系列产品是偏重于桌面应用。 2、伸缩性:并行实施和共存模型并不成熟,很难处理日益增多的用户数和数据 卷,伸缩性有限。 3、安全性:没有获得任何安全证书。 4、性能:多用户时性能不佳 5、客户端支持及应用模式:C/S结构,只支持windows客户,可以用ADO、DAO、 OLEDB、ODBC连接 6、操作性:操作简单,但只有图形界面。 7、使用风险:完全重写的代码,经历了长期的测试,不断延迟,许多功能需要 时间来证明。并不十分兼容。 二、Oracle 强大的功能和可配置、可管理能力。 1、开放性:能在所有主流平台上运行(包括 windows)。完全支持所有的工业 标准。采用完全开放策略。可以使客户选择最适合的解决方案。对开发商全力支持。 2、伸缩性与并行性:并行服务器通过使一组结点共享同一簇中的工作来扩展 windows NT的能力,提供高可用性和高伸缩性的簇的解决方案。如果windows NT不能满足需要,用户可以把数据库移到UNIX中。Oracle的并行服务器对各种UNIX平台的集群机制都有着相当高的集成度。 3、安全性:获得最高认证级别的ISO标准认证。 4、性能:性能最高,保持开放平台下的TPC-D和TPC-C的世界记录。 5、客户端支持及应用模式:多层次网络计算,支持多种工业标准,可以用ODBC、 JDBC、OCI等网络客户连接。 6、操作性:较复杂,同时提供GUI和命令行,在windows NT和unix下操作相

不同数据库的数据类型对照

下表中显示了Access,Sql Server和Oracle之间数据类型之间对应关系。 数据类型 常值 Access SQLServer Oracle adBigInt 20 BigInt (SQL Server 2000 +) adBinary 128 Binary TimeStamp Raw * adBoolean 11 YesNo Bit adChar 129 Char Char adCurrency 6 Currency Money SmallMoney adDate 7 Date DateTime adDBTimeStamp 135 DateTime (Access 97 (ODBC)) DateTime SmallDateTime Date adDecimal 14 Decimal * adDouble 5 Double Float Float adGUID 72 ReplicationID (Access 97 (OLEDB)), (Access 2000 (OLEDB)) UniqueIdentifier (SQL Server 7.0 +) adIDispatch 9 adInteger 3 AutoNumber Integer Long Identity (SQL Server 6.5) Int Int * adLongVarBinary 205 OLEObject Image Long Raw * Blob (Oracle 8.1.x) adLongVarChar 201 Memo (Access 97) Hyperlink (Access 97) Text Long * Clob (Oracle 8.1.x) adLongVarWChar 203 Memo (Access 2000 (OLEDB)) Hyperlink (Access 2000 NText (SQL Server 7.0 +) NClob (Oracle 8.1.x)

SQL Server 2008中的数据类型

SQL Server 2008中的数据类型 SQL Server表中的每一个字段都只能包含一个预先指定的特定数据类型,例如字符或数字。这个声明叫做数据类型。在这篇文章里,我们将比较和对照SQL Server 2008的各种数据类型。此外,我们还将展示各种特定环境下哪种数据类型是最好的解决方法。在SQL Server 2008中有超过35种的不同数据类型。 分类 Microsoft将各种数据类型分为以下7种大的分类:精确数字、大约数字、日期和时间、字符串、Unicode字符串、二进制字符串和其它数据类型。 数字 有两种数字分类:精确数字和大约数字。 精确数字包括Real和Float类型。在一般情况下,当需要科学符号时使用精确数字。科学符号是一种使用10的幂数来描述非常大或非常小的数字的方法(也称作指数符号)。 精确数字包括Decimals(小数)、Integers(整数)和Money amounts(货币值)。 一个Integer是一个没有小数或分数的计算数值。所有的负数、正数和零都是整数。SQL Server将整数分为四个部分:

BigInt:从-9,223,372,036,854,775,808到9,223,372,036,854,775,807 Int:从-2,147,483,648到2,147,483,648 SmallInt:从-32,768到32,767 TinyInt:从0到255 正确地设置大小为Int类型而不是将所有都设置为BigInt是有两个主要的原因的。首先是物理磁盘空间。对于BigInt来说每条记录占据8个字节,而Int只使用两个字节。另一个原因是确保你的应用程序只接收到它所预期的数据大小,从而避免了出现缓冲溢出的现象。 具有小数的精确数字包括Decimal、Numeric、Money和SmallMoney 数据类型。Decimal和Numeric类型功能上是一样的。就是说,它们的使用、计算和行为都是一样的,唯一的不同就是在数学定义上而不是SQL Server使用它们的方法上。大多数SQL Server应用程序使用Decimal。一个Decimal的长度最多可以达到38位。当定义了Decimal,它的总长度和右侧的小数点部分的最大长度也就被配置了。定义的位数越多,每条记录上使用的物理磁盘空间就越多。 Money和SmallMoney是小数点后固定的有四位的小数。SmallMoney的值可以从- 214,748.3648到214,748.3647,而Money值的范围是从-922,337,203,685,477.5808到922,337,203,685,477.5807。使用Money而不是一个Decimal的一个原因是可以选择在三位数后显示美元符号和逗号。

各数据库的数据类型的区别

Oracle、MySQL、SQL Server数据库的数据类型的差异 1.Oracle数据库的各种数据类型 CHAR 定长的字符型数据,长度<=2000字节 VARCHAR2 变长的字符型数据,长度<=4000字节 N CHAR 用来存储Unicode字符集的定长字符型数据,长度<=1000字节注意:N字打头的是存储Unicode字符集 NVARCHAR2 Unicode字符集的变长字符型数据,长度<=1000字节 NUMBER 整型或者浮点型数值 DATE 日期数据 LONG 2GB的变长字符数据 RAW 用来存储非结构化数据的变长字符数据,长度<=2000字节 LONG RAW 用来存储非结构化数据的变长字符数据,长度<=2GB ROWID 用来存储表中列的物理地址的二进制数据,占用固定的10个字节 BLOB 4GB的非结构化的二进制数据 CLOB 4GB的字符数据 NCLOB 4GB的Unicode字符数据 BFILE 把非结构化的二进制数据存储在数据库以外的操作系统文件中 UROWID 表示任何类型列地址的二进制数据 FLOAT 浮点数 2.MySQL数据库的各种数据类型 CHAR (M) CHAR数据类型用于表示M长度的字符串。 VARCHAR (M) VARCHAR可以保存可变长度的字符串, VARCHAR数据类型所支持的最大长度也是255个字符。

INT (M) [Unsigned] INT数据类型用于保存从- 到范围之内的任意整数数据。如果用户使用Unsigned选项,则有效数据范围调整为0-。 FLOAT [(M,D)] FLOAT数据类型用于表示数值较小的浮点数据,可以提供更加准确的数据精度。其中,M代表浮点数据的长度(即小数点左右数据长度的总和),D表示浮点数据位于小数点右边的数值位数。 DATE DATE数据类型用于保存日期数据,默认格式为YYYY-MM-DD。 TEXT / BLOB TEXT和BLOB数据类型可以用来保存255 到65535个字符,TEXT不区分大小写,而BLOB对字符的大小写敏感。 SET SET数据类型是多个数据值的组合,任何部分或全部数据值都是该数据类型的有效数据。SET数据类型最大可以包含64个指定数据值。 ENUM ENUM数据类型和SET基本相同,唯一的区别在于ENUM只允许选择一个有效数据值。 int是32位整数bigint就是long,64为整数float是单精度的,32位 double是双精度,64位 DECIMAL与FLOAT和DOUBLE的区别是:DECIMAL类型的值是以字符串的形式被储存起来 3.MS SQLServer数据库的各种数据类型 bit 整型bit 数据类型是整型,其值只能是0、1或空值。 int 整型int 数据类型可以存储从- 231(-)到231 ( 647)之间的整数。这种数据类型在数据库里占用4个字节 smallint 整型smallint 数据类型可以存储从-215(-32768)到215(32767)之间的整数。这种数据类型在数据库里占用2字节空间 tinyint 整型tinyint 数据类型能存储从0到255 之间的整数。这种数据类型在数据库中占用1 个字节numeric 精确数值型numeric数据类型与decimal型相同 decimal 精确数值型decimal 数据类型能用来存储从-1038-1到1038-1的固定精度和范围的数值型数据。使用这种数据类型时,必须指定范围和精度。范围是小数点左右所能存储的数字的总位数。精度是小数点右边存储的数字的位数 money 货币型money 数据类型用来表示钱和货币值。这种数据类型能存储从-9220亿到9220 亿之间的数据,精确到货币单位的万分之一 smallmoney 货币型smallmoney 数据类型用来表示钱和货币值。这种数据类型能存储从-.3648 到.3647 之间的数据,精确到货币单位的万分之一

SQL数据库字段类型详解

本文由liuhaiji贡献 doc1。 SQL 数据库字段类型详解 数据类型 类型 描 述 bit 数据类型是整型,其值只能是 0、1 或空值。 bit 整型 这种数据类型用于存储只有两种可能值的数据, 如 Yes 或 No、True 或 Fa lse 、On 或 Off int 数据类型可以存储从- 231(-2147483648)到 231 int 整型 (2147483 647)之间的整数。 存储到数据库的几乎所 有数值型的数据都可以用这种数据类型。这种数 据类型在数据库里占用 4 个字节 smallint 数据类型可以存储从- 215(-32768)到 smallint 整型 215(32767)之间的整数。这种数据类型对存储一些 常限定在特定范围内的数值型数据非常有用。这 种数据类型在数据库里占用 2 字节空间 tinyint 数据类型能存储从 0 到 255 之间的整数。 tinyint 整型 它在你只打算存储有限数目的数值时很有用。 这 种数据类型在数据库中占用 1 个字节 numeric 精确数值型 numeric 数据类型与 decimal 型相同 decimal 数据类型能用来存储从-1038-1 到 1038-1 的 固定精度和范围的数值型数据。使用这种数据类 decimal 精确数值型 型时,必须指定范围和精度。 范围是小数点左右 所能存储的数字的总位数。精度是小数点右边存 储的数字的位数 money 数据类型用来表示钱和货币值。这种数据 money 货币型 类型能存储从-9220 亿到 9220 亿之间的数据,精 确到货币单位的万分之一 smallmoney 数据类型用来表示钱和货币值。这种 smallmoney 货币型 数据类型能存储从-214748.3648 到 214748.3647 之间的数据,精确到货币单位的万分之一 float 数据类型是一种近似数值类型,供浮点数使 float 近似数值型 用。说浮点数是近似的,是因为在其范围内不是 所有的数都能精确表示。浮点数可以是从 -1.79E+308 到 1.79E+308 之间的任意数 real 数据类型像浮点数一样,是近似数值类型。 real 近似数值型 它可以表示数值在-3.40E+38 到 3.40E+38 之间的 浮点数 datetime 数据类型用来表示日期和时间。 这种数据 datetime 日期时间型 类型存储从 1753 年 1 月 1 日到 9999 年 12 月 3 1 日间所有的日期和时间数据, 精确到三百分之一 秒或 3.33 毫秒 smalldatetime 数据类型用来表示从 1900 年 1 月 1 Smalldatetime 日期时间型 日到 2079 年 6 月 6 日间的日期和时间,精确到一 分钟 cursor 数据类型是一种特殊的数据类型,它包含 cursor 特殊数据型 一个对游标的引用。这种数据类型用在存储过程 中,而且创建表时不能用 timestamp 数据类型是一种特殊的数据类型,用来 创建一个数据库范围内的唯一数码。 一个表中只 timestamp 特殊数据型 能有一个 timestamp 列。每次插入或修改一行时, timestamp 列的值都会改变。尽管它的名字中有 “time”, 但 timestamp 列不是人们可识别的日期。 在一个数据库里,timestamp 值是唯一的 Uniqueidentifier 数据类型用来存储一个全局唯一 标识符,即 GUID。GUID 确实是全局唯一的。这 Uniqueidentifier 特殊数据型 个数几乎没有机会在另一个系统中被重建。可以 使用 NEWID 函数或转换一个字符串为唯一标识 符来初始化具有唯一标识符的列 char 数据类型用来存储指定长度的定长非统一编 码型的数据。当定义一列为此类型时,你必须指 char 字符型 定列长。当你总能知道要存储的数据的长度时, 此数据类型很有用。例如,当你按邮政编码加 4 个字符格式来存储数据时,你知道总要用到 10 个 字符。此数据类型的列宽最大为 8000 个字符 varchar 数据类型,同 char 类型一样,用来存储非 统一编码型字符数据。与 char 型不一样,此数据 varchar 字符型 类型为变长。当定义一列为该数据类型时,你要 指定该列的最大长度。 它与 char 数据类型最大的 区别是,存储的长度不是列长,而是数据的长度 text 数据类型用来存储大量的非统一编码型字符 text 字符型 数据。这种数据类型最多可以有 231-1 或 20 亿个 字符 nchar 数据类型用来存储定长统一编码字符型数 据。统一编码用双字节结构来存储每个字符,而 nchar 统一编码字符型 不是用单字节(普通文本中的情况)。它允许大量的 扩展字符。此数据类型能存储 4000 种字符,使用 的字节空间上增加了一倍 nvarchar 数据类型用作变长的统一编码字符型数 nvarchar 统一编码字符型 据。此数据类型能存储 4000 种字符,使用的字节 空间增加了一倍 ntext 统一编码字符型 ntext 数据类型用来存储大量的统一编码字符型 数据。这种数据类型能存储 230 -1 或将近 10 亿个 字符,且使用的字节空间增加了一倍 binary 数据类型用来存储可达 8000 字节

Oracle数据库基本数据类型

本文由horoscopec贡献 doc1。 oracle 基本数据类型 数据类型 char(n) 参数 n=1 to 2000 字节 描述 定长字符串,n 字节长,如果不指定长度,缺省 为 1 个字节长(一个汉字为 2 字节) 可变长的字符串,具体定义时指明最大长度 n, 这种数据类型可以放数字、字母以及 ASCII 码字 符集(或者 EBCDIC 等数据库系统接受的字符集标 准)中的所有符号。 varchar2(n) n=1 to 4000 字节 如果数据长度没有达到最大值 n,Oracle 8i 会 根据数据大小自动调节字段长度, 如果你的数据前后有空格,Oracle 8i 会自动将 其删去。VARCHAR2 是最常用的数据类型。 可做索引的最大长度 3209。 可变长的数值列,允许 0、正值及负值,m 是所 有有效数字的位数,n 是小数点以后的位数。 如:number(5,2),则这个字段的最大值是 99,999,如果数值超出了位数限制就会被截取多 number(m,n) m=1 to 38 n=-84 to 127 余的位数。 如:number(5,2),但在一行数据中的这个字段 输入 575.316,则真正保存到字段中的数值是 575.32。 如:number(3,0),输入 575.316,真正保存的数 据是 575。 从公元前 4712 年 1 月 1 日到公元 4712 年 12 月 date 无 31 日的所有合法日期, Oracle 8i 其实在内部是按 7 个字节来保存日期 数据,在定义中还包括小时、分、秒。 缺省格式为 DD-MON-YY,如 07-11 月-00 表示 2000 年 11 月 7 日。 可变长字符列,最大长度限制是 2GB,用于不需 要作字符串搜索的长串数据,如果要进行字符搜 long 无 索就要用 varchar2 类型。 long 是一种较老的数据类型,将来会逐渐被 BLOB、CLOB、NCLOB 等大的对象数据类型所取代。 可变长二进制数据,在具体定义字段的时候必须 指明最大长度 n,Oracle 8i 用这种格式来保存 raw(n) n=1 to 2000 较小的图形文件或带格式的文本文件,如 Miceosoft Word 文档。 raw 是一种较老的数据类型, 将来会逐渐被 BLOB、 CLOB、NCLOB 等大的对象数据类型所取代。 可变长二进制数据,最大长度是 2GB。Oracle 8i 用这种格式来保存较大的图形文件或带格式的 文本文件,如 Miceosoft Word 文档,以及音频、 long raw 无 视频等非文本文件。 在同一张表中不能同时有 long 类型和 long raw 类型,long raw 也是一种较老的数据类型,将来 会逐渐被 BLOB、CLOB、NCLOB 等大的对象数据类 型所取代。 三种大型对象(LOB),用来保存较大的图形文件 或带格式的文本文件,如 Miceosoft Word 文档, blob clob nclob 无 以及音频、视频等非文本文件,最大长度是 4GB。 LOB 有几种类型,取决于你使用的字节的类型, Oracle 8i 实实在在地将这些数据存储在数据库 内部保存。 可以执行读取、存储、写入等特殊操作。 bfile 无 在数据库外部保存的大型二进制对象文件,最大 长度是 4GB。 这种外部的 LOB 类型, 通过数据库记录变化情况, 但是数据的具体保存是在数据库外部进行的。 Oracle 8i 可以读取、查询 BFILE,但是不能写 入。 大小由操作系统决定。 oracle 数据库中讨论 char ,varchar ,varchar2 数据类型! 这 3 种字符串数据类型是我们使用最多的, 我们在数据库设计时到底该怎么使用 了? 首先我们先来分析 3 个数据类型的说明: 1。char CHAR 的长度是固定的,最长 2000 个字符。 2。varchar 和 varchar2 可以肯定的是 oracle 中目前是可以使用 varchar 数据类型的, 但他们 的区别我查了不少资料也没有找到一个准确的答案 oracle 中的 varchar 只是 varchar2 的别名也就是同义词。 其次也有人认为 varchar 是最大长度为 2000 的可变字符串(和 sql server 中的 varchar 一致),而 varchar2 最大长度为 4000。 知道了他们的特点我们就来讨论下使用区别 1.char 和 varchar、varchar2 由于 varchar 和 varchar2 用途类似,我们先来讨论 char 和他们的使 用区别: varchar 和 varchar2 比 char 节省空间,在效率上比 char 会稍微差一些, 即要想获得效率,就必须牺牲一定的空间,这也就是我们在数据库设计上常说的 最常见的说话是说 ‘以空间换效率’。 varchar 和 varchar2 虽然比 char 节省空间,但是如果一个 varchar 和 varchar2 列经常被修改,而且每次被修改的数据的长度不同,这会

相关文档