SQL Server 2005 常用数据类型详解

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介:
[b]1. 字符串数据类型[/b]

char
此数据类型可存储1~8000个定长字符串,字符串长度在创建时指定;如未指定,默认为char(1)。每个字符占用1byte存储空间。

nchar
此数据类型可存储1~4000个定长Unicode字符串,字符串长度在创建时指定;如未指定,默认为nchar(1)。每个字符占用2bytes存储空间。

varchar
此数据类型可存储最大值为8000个字符的可变长字符串。可变长字符串的最大长度在创建时指定,如varchar(50),每个字符占用1byte存储空间。

nvarchar
此数据类型可存储最大值为4000个字符可变长Unicode字符串。可变长Unicode字符串的最大长度在创建时指定,如nvarchar(50),每个字符占用2bytes存储空间。

text
此数据类型可存储最大值为2147483647个字符的变长文本,并且无需指定其初始值,每个字符占用1byte存储空间,一般用来存储大段的文章。text数据类型实际上是一个Large Object数据类型,默认情况下,此类型的数据不是存储在数据行内,而是存储于独立的Large Object数据页上。另外,text数据类型不能做为函数、存储过程或触发器中的参数来用。

ntext
同text数据类型,只不过存储的是最大值为1073741823个字符的Unicode变长文本,每个字符占用1byte存储空间。

说明:无论使用哪种字符串数据类型,字符串值必须放在引号内,推荐使用单引号。

[b]2. 数值数据类型[/b]

bit
此数据类型存储值为0或1的二进制字段。占用1byte存储空间。

tinyint
此数据类型存储0~255的整数,占用1byte存储空间。

smallint
此数据类型存储-32768~32767的整数,占用2bytes存储空间。

int
此数据类型存储-2147483648~2147483647的整数,占用4bytes存储空间。

bigint
此数据类型存储-9223372036854775808~9223372036854775807的整数,占用8bytes存储空间。

decimal/numeric
这两个数据类型功能相同,均为存储精度可变的浮点值。但推荐采用decimal,因其存储的数据“更有说明性”。此种数据类型由两个值来确定decimal(p,s),p为精度,s为标量,如decimal(3,2),其中数值2为小数的位数,那么decimal(3,2)可用来存储如1.28这样的浮点数。此种数据类型占用的存储空间取决于精度值p。p为1~9,占用5bytes存储空间;p为10~19,占用9bytes存储空间;p为20~28,占用13bytes存储空间;p为29~38,占用17bytes存储空间。

float
此数据类型存储1~53的可变精度的浮点值,精度表示为float(n),n表示科学记数法的尾数,取值范围为-1.79E+308~-2.23E-308的负数和2.23E-308~1.79E+308的正数。其存储空间由精度值决定,n为1~24,占用4bytes存储空间;n为25~53,占用8bytes存储空间。

real
此数据类型存储-3.40E+38~-1.18E-38的负数和1.18E~3.40E+38的正数。占用4bytes存储空间。

smallmoney
此数据类型存储-214748.3648~214748.3647的货币值,精确到小数后4位。占用4bytes存储空间。

money
此数据类型存储-922337203685477.5808~922337203685477.5807的货币值,精确到小数后4位。占用8bytes存储空间。

[b]3. 日期和时间数据类型[/b]

smalldatetime
此数据类型存储从1900年1月1日到2079年6月6日的日期。占用4btyes存储空间。

datetime
此数据类型存储从1753年1月1日到9999年12月31日的日期。占用8bytes存储空间。

[b]4. 二进制数据类型[/b]

binary
此数据类型存储1~8000个字符的二进制数据,其指定长度即为占用的存储空间。

varbinary
此数据类型存储可变长的二进制数据,可在创建时指定其具体长度,也可不指定。

[b]5. 其它数据类型[/b]

rowversion/timestamp
这两种数据类型功能一样,但Microsoft建议在任何情况下尽可能地指明rowversion而不是timestamp,因为rowversion更加准确地反应了数据类型的真实性质。timestamp数据类型跟时间完全无关,它表明数据库中的数据修改发生的相对顺序。不要在键(尤其是主键)中使用timestamp列,因为每次修改行时,timestamp值都会更改。当指定数据类型为rowversion或timestamp,那么SQL Server会在对表的插入或删除等更新操作时自动生成一个新值,并把这个新值放在合适的字段里。此类型数据占用8bytes存储空间。

uniqueidentifier
此类型数据存储二进制值,其作用与全局唯一标识符(GUID)一样。GUID 主要用于在有多个节点、多台计算机的网络中,分配必须具有唯一性的标识符。占用16bytes存储空间。
欢迎加群互相学习,共同进步。QQ群:iOS: 58099570 | Android: 330987132 | Go:217696290 | Python:336880185 | 做人要厚道,转载请注明出处!http://www.cnblogs.com/sunshine-anycall/archive/2009/02/09/1386673.html
相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
2月前
|
SQL 存储
SQL Server基本函数
SQL Server基本函数
|
10月前
|
存储 SQL 数据库
sql serve中的数据类型(详解)
sql serve中的数据类型(详解)
109 0
|
SQL
用于 SQL Server 的语法
用于 SQL Server 的语法
46 0
|
SQL 存储 Java
使用 SQL Server 的 uniqueidentifier 字段类型
原文:使用 SQL Server 的 uniqueidentifier 字段类型 SQL Server 自 2008 版起引入了 uniqueidentifier 字段,它存储的是一个 UUID, 或者叫 GUID,内部存储为 16 个字节。
1626 0
|
SQL 存储 机器学习/深度学习