`
lijuanabc
  • 浏览: 125982 次
社区版块
存档分类
最新评论

SQLServer 数据类型int、bigint、smallint 和 tinyint范围

 
阅读更多

环境:SQLServer 2008 R2

使用整数数据的精确数字数据类型。

bigint

从 -2^63 (-9223372036854775808) 到 2^63-1(9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。

int

从 -2^31 (-2,147,483,648) 到 2^31 - 1(2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节。int 的 SQL-92 同义字为 integer。

smallint

从 -2^15 (-32,768) 到 2^15 - 1 (32,767) 的整型数据。存储大小为 2 个字节。

tinyint

从 0 到 255 的整型数据。存储大小为 1 字节。

注释

在支持整数值的地方支持 bigint 数据类型。但是,bigint 用于某些特殊的情况,当整数值超过 int 数据类型支持的范围时,就可以采用 bigint。在 SQL Server 中,int 数据类型是主要的整数数据类型。

在数据类型优先次序表中,bigint 位于 smallmoney 和 int 之间。

只有当参数表达式是 bigint 数据类型时,函数才返回 bigint。SQL Server 不会自动将其它整数数据类型(tinyint、smallint 和 int)提升为 bigint。

注意

使用 +、-、*、/ 或 % 等算术运算符将 int、smallint、tinyint 或 bigint 常量值隐式或显式转换为float、real、decimal 或 numeric 数据类型时,SQL Server 计算数据类型和表达式结果的精度时应用的规则有所不同,这取决于查询是否是自动参数化的。

因此,查询中的类似表达式有时可能会生成不同的结果。 如果查询不是自动参数化的,则将常量值转换为指定的数据类型之前,首先将其转换为 numeric,该数据类型的精度很大足以保存常量的值。例如,常量值 1 转换为 numeric (1, 0),常量值 250 转换为 numeric (3, 0)。

如果查询是自动参数化的,则将常量值转换为最终数据类型之前,始终先将其转换为 numeric (10, 0)。如果涉及 / 运算符,则对于类似查询而言,不仅结果类型的精度可能不同,而且结果值也可能不同。例如,包含表达式 SELECT CAST (1.0 / 7 AS float) 的自动参数化查询的结果值将不同于非自动参数化的同一查询的结果值,因为自动参数化查询的结果将被截断以适合 numeric (10, 0) 数据类型。

转换整型数据

将整数隐式转换为字符数据类型时,如果整数太大而无法容纳到字符字段中,则 SQL Server 会输入 ASCII 字符 42,即星号 (*)。

大于 2,147,483,647 的整数常量将转换为decimal 数据类型,而不是 bigint 数据类型。下面的示例显示当超过此阈值时,结果的数据类型将从 int 变为 decimal。

SELECT2147483647 / 2 AS Result1, 2147483649 / 2 AS Result2 ;

下面是结果集:

Result1 Result2

1073741823 1073741824.500000

总结

数据类型的选择要根据实际情况而定,最好能满足需求。不要杀鸡用牛刀,因为对空间的浪费会很严重,效率也会受到一定的影响。

参考资料:http://msdn.microsoft.com/zh-cn/library/ms187745.aspx

http://www.ancher.cn/blog/article.asp?id=127

分享到:
评论

相关推荐

    SQL_Server_数据类型详解

    整数型数据类型包括 bigint 型、int 型、smallint 型和 tinyint 型。 * bigint 型数据的存储大小为 8 个字节,共 64 位,其中 63 位用于表示数值的大小,1 位用于表示符号。bigint 型数据可以存储的数值范围是-2^63...

    sql server 数据类型

    整型数据类型分为bigint、integer (或 int)、smallint和tinyint。bigint是SQL Server 2000新引入的,可存储极大或极小的整数。integer或int是最常用的整数类型,适合存储一般大小的整数。smallint适合存储较小的整数...

    SQL Server 数据类型总结

    具体来说,整型包括`bigint`, `int`, `smallint`, 和`tinyint`;浮点型则有`float`和`real`。此外,还有精确数值类型如`decimal`和`numeric`,以及用于货币计算的`money`和`smallmoney`。每种类型都有其特定的范围和...

    Microsoft Access数据类型与SQL Server数据类型的区别

    Microsoft Access 和 SQL Server 虽然都是微软旗下的产品,但由于它们分别面向不同的应用场景(Access 主要用于小型数据库应用,而 SQL Server 面向的是企业级大型数据库系统),因此在数据类型支持方面存在一定的...

    SQL SERVER数据类型表

    在SQL Server中,数据类型是定义数据库中存储的数据类型的规范,它们决定了数据的性质和范围。理解SQL Server的数据类型对于数据库设计和开发至关重要。本文将深入探讨SQL Server中常用的数据类型,帮助您更好地掌握...

    SQL Server 2005 数据类型和.Net数据类型的对应关系.doc

    SQL Server 2005 和 .NET Framework 之间的数据类型对应关系是开发数据库应用程序时的重要基础知识。理解这些对应关系有助于确保在SQL Server中存储的数据能够正确地被.NET应用程序读取和处理。以下是对两种数据类型...

    sql server 和oracle 中数据类型的区别

    本文将深入探讨SQL Server与Oracle中的数据类型区别,并通过具体的例子来说明这两种系统之间的转换方法。 ### SQL Server 数据类型 SQL Server 是微软开发的一款关系型数据库管理系统,它支持多种数据类型,可以...

    sql server 数据类型大全

    SQL Server 提供了多种字符型数据类型,包括固定长度和可变长度的数据类型。 - **`char(n)`**:固定长度字符串,`n` 表示字符的最大长度,最大值为 8000 字符。如果实际输入的数据长度小于 `n`,则会在右侧填充空格...

    SQL server数据类型

    通过对 SQL Server、Microsoft Access 和 MySQL 中的数据类型的比较分析,我们可以看到不同数据库系统之间数据类型的差异性和相似性。选择合适的数据类型对于提高数据库性能、减少存储空间需求以及简化数据处理流程...

    SQL SERVER数据类型详解

    在SQL Server中,数据类型是定义列、变量和其他数据库对象属性的关键部分。它们决定了可以存储在这些对象中的数据种类和格式。SQL Server提供了多种数据类型,以满足不同类型的存储需求。下面将对这些数据类型进行...

    SQLserver数据类型详解[整理].pdf

    SQL Server 数据类型是数据库设计和开发中的核心概念,它们决定了数据如何存储、处理和检索。在SQL Server中,数据类型的选择直接影响着数据的精确性、存储需求和性能。以下是SQL Server中常见的一些数据类型的详细...

    SQL Server 2000数据类型

    1. **bigint** 是SQL Server 2000新引入的数据类型,占用8个字节,可以存储从-9,223,372,036,854,775,808到9,223,372,036,854,775,807的整数,适用于需要大范围整数的情况。 2. **integer** 或 **int** 是最常用的...

    SQL 数据类型详细介绍

    整数型数据类型包括 bigint、int、smallint 和 tinyint 四种,分别对应 64 位、32 位、16 位和 8 位的整数。其中,bigint 型数据的存储大小为 8 个字节,数值范围是-2^63~2^63-1;int 型数据的存储大小为 4 个字节...

    sqlServer数据类型

    在SQL Server数据库管理系统中,数据类型是至关重要的概念,它定义了存储在列中的数据的种类、格式和范围。理解并正确使用SQL Server的数据类型对于创建高效、安全且符合业务需求的数据库至关重要。以下是关于SQL ...

    sql server 2005 数据类型

    SQL Server 2005 数据类型是数据库设计的基础,它决定了数据如何被存储和处理。在SQL Server 2005中,数据类型分为两大类:字符串数据类型和数值数据类型。 1. 字符串数据类型: - `char`: 定长字符串,存储1到...

    SQL SERVER与C#数据类型对应表

    在进行数据库操作时,了解 SQL Server 和 C# 之间的数据类型对应关系对于确保数据正确传递至关重要。本文将详细介绍 SQL Server 中的各种数据类型及其对应的 C# 类型,并对每种类型进行解释。 #### 1. 布尔类型...

    SQL Server常用数据类型.pdf

    整型数据类型用来存储整数,包含了四种类型,分别是BIGINT、INT、SMALLINT和TINYINT,它们各自有不同的存储空间和能表示的整数范围。数字类型用于存储精确的小数,包括DECIMAL和NUMERIC两种,它们允许用户指定小数点...

    sql数据类型说明

    ### SQL 数据类型详解 在数据库管理系统(DBMS)中,数据类型是定义表格...通过上述介绍,我们可以看到不同的数据类型在 SQL 中扮演着不同的角色,合理选择和应用这些数据类型对于构建高效稳定的数据库系统至关重要。

    SQL_Server_2008中的数据类型比较详细的 介绍

    整数类型主要有四种:bigint、int、smallint和tinyint,它们分别可以存储不同范围的整数值。选择合适的整数类型需要考虑到存储范围和磁盘空间的使用效率。例如,如果不需要存储非常大的数值,使用int而非bigint会...

Global site tag (gtag.js) - Google Analytics