我有点困惑,因为在sql server(ntext,varchar,nvarchar等)中有很多变量类型,所以如果你给我以下字段使用的数据类型,我会更好地理解这一点.如果我错过了常见的字段类型,请告诉我.
身份证
电话号码
电邮
说明(一段文字)
姓名
SSN
价格
出货日期
性别(月/日)
已停产(是/否)
数量
邮编
mar*_*c_s 10
简要推荐:
TEXT, NTEXT, IMAGE:所有这些类型都已弃用并计划在SQL Server的未来版本中删除 - 请勿使用这些类型!
CHAR对比VARCHAR:CHAR是固定长度的,并且它会随着空间所定义的长度填充输入.最适合短字符串(<5个字符),例如代码,如货币(几乎总是3个字符),美国状态(2个字符)等VARCHAR,另一方面最适合较长的字符串,并且只存储插入的字符数/更新.如果您在字段中定义VARCHAR(200)并且仅插入Christmas,则您的字段占用9个字符(并且有一点点开销)
NCHAR/NVARCHAR:以上的Unicode版本; 始终每个字符存储2个字节,因此您的字段Christmas将存储9个字符并使用18个字节来执行此操作.如果您有非西欧语言字符,例如西里尔语,阿拉伯语,希伯来语,亚洲语或其他字母,则需要这些字符.
VARCHAR(MAX) / NVARCHAR(MAX)更新TEXT和NTEXT- 存储多达2 GByte(20亿字节)的数据 - 这是Tolstoi内容的300多倍War and Peace- 应该足以满足绝大多数情况:-)
所以你的决策树可能是这样的:
我需要非西欧角色吗?如果是 - >使用NCHAR/NVARCHAR类型,否则CHAR/VARCHAR
我的字符串是否很短(<5个字符)并且通常总是相同的长度?如果是:使用CHAR,否则使用VARCHAR
我真的需要非常大量的文本吗?如果是这样,请使用VARCHAR(MAX),否则请根据您的需要调整大小
Field -> Data Type
----- ---------
Id int
Phone # varchar
Email varchar
Desc varchar
Name varchar
Ssn varchar
Price decimal, money, smallmoney
ShipDate datetime
Sex bit
Discont bit
Quantity int
ZipCode varchar
Run Code Online (Sandbox Code Playgroud)
这是我过去用过的
ID = bigint
Telephone = varchar(12)
Email = varchar(100)
Description = nvarchar(max) (sql Server 2005 and 2008 only)
Name = nvarchar(100)
SSN = varchar(11)
Price = money
ShipDate = datetime (date if using SQL Server 2008)
Sex = char(1) (i have also used bit before 0 = female 1 =male)
Discontinued (true false field) = bit
Quantity = int if not fractional decimal if it is fractional
ZipCode = varchar(10)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33391 次 |
| 最近记录: |