SQL Server中开发常用的数据类型

我们在日常开发过程中,在进行数据库设计的时候,经常会遇到如果选择数据类型的问题,选择什么样的数据类型最合适,然后当我们在项目中建立对应实体的时候,如何选择对应的CLR类型。针对这些问题,于是这篇文章诞生了。

SQL Server数据类型 占用字节数 表示范围 对应的CLR类型 數據類型選擇 适用场景
char char(n)   System.String char(2) 使用char(2)来表示类型或状态(建议用tinyint代替)
varchar varchar(n) 1~8000 System.String varchar(20) 只包含英文字符的字符串
nvarchar nvarchar(n) 1~4000 System.String nvarchar(20) 包含中文字符的字符串
int 4个字节 -2,147,483,648 到 2,147,483,647 System.Int32 int 表示整型,比如自增ID和表示數量
bigint 8个字节 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 System.Int64(Long) bigint 表示长整型,比如自增ID(数量比较大的情况下)
decimal 5~17字节   System.Decimal decimal(18,2) 金额和價格(和錢相關的)
tinyint 1字节 0~255 System.Byte tinyint 类型和状态,比char(2)扩展性好
bit   0,1或NULL System.Boolean bit 一般用来表示是和否两种情形,比如IsStop
datetime 8字节 1753 年 1 月 1 日到 9999 年 12 月 31 日 System.DateTime datetime 表示日期和时间
time     System.TimeSpan time(7) 表示时间间隔,比如计时和耗時
varbinary     System.Byte varbinary(max) 表示二进制数据

varchar 与 nvarchar 的区别

varchar(n)
长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。

nvarchar(n)
包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。

两字段分别有字段值:我和coffee
那么varchar字段占2×2+6=10个字节的存储空间,而nvarchar字段占8×2=16个字节的存储空间。

如字段值只是英文可选择varchar,而字段值存在较多的双字节(中文、韩文等)字符时用nvarchar

上面是一个总结介绍,通过上面的介绍,可以知道。

varchar(4) 可以输入4个字线,也可以输入两个汉字

nvarchar(4) 可以输四个汉字,也可以输4个字母,但最多四个

转载自:http://www.cnblogs.com/mcgrady/p/3840812.html

原文地址:https://www.cnblogs.com/Akeke/p/6687936.html