SQL何时使用哪种数据类型

SQL何时使用哪种数据类型,sql,types,Sql,Types,嗨,我想知道什么时候应该使用不同的数据类型。在我的表中,我如何决定使用哪个:nvarchar、nchar、varchar、varbinary等 示例: 我会用什么做一个。。。专栏: Phone number, Address, First Name, Last Name, Email, ID number, etc. 谢谢你的帮助 以n开头的数据类型意味着它可以用于unicode字符。。。例如,女巫 选择整数也很有趣 我使用的最常见的数据类型是varchar Varchar、Integer

嗨,我想知道什么时候应该使用不同的数据类型。在我的表中,我如何决定使用哪个:nvarchar、nchar、varchar、varbinary等

示例:

我会用什么做一个。。。专栏:

Phone number,
Address,
First Name, Last Name,
Email,
ID number,
etc. 

谢谢你的帮助

以n开头的数据类型意味着它可以用于unicode字符。。。例如,女巫

选择整数也很有趣


我使用的最常见的数据类型是varchar

Varchar、Integer和Bit占我日常使用的99%。N*数据类型(NVARCHAR、NCHAR、NTEXT)用于Unicode字符串。它们占用的空间是其“普通”挂件(VARCHAR、CHAR、TEXT)所需空间的两倍,但它们可以存储Unicode而无需转换和可能的保真度损失

文本数据类型可以存储几乎无限量的数据,但它们的性能不如CHAR数据类型,因为它们存储在记录之外

VARCHAR数据类型的长度可变。它们的结尾将不填充空格,但它们的字符悬垂将填充空格(一个字符(20)总是有20个字符长,即使它只包含5个字母。其余15个将是空格)


二进制数据类型用于二进制数据,无论您想存储到其中什么(图像是一个主要示例)。

这个问题实际上取决于您的需求。我知道这不是一个特别令人满意的答案,但这是真的

n..char数据类型用于Unicode数据,因此如果需要在数据中使用Unicode字符集,则应使用这些类型,而不是其“非n”类似类型。nchar和char类型是固定长度的,nvarchar和varchar类型可以具有可变长度,这将影响磁盘和内存中列的大小。一般来说,我会说使用的类型使用最少的磁盘空间,但适合您的需要


有指向这些SQL Server 2005数据类型的Microsoft说明的链接,其中许多为何时使用哪种类型提供了指针。您可能对char和varchar类型特别感兴趣。

一般来说,如果我不打算对其进行算术运算,我不会将任何内容定义为“数字”字段,即使数据本身是数字


“phone”字段就是一个例子。我将其定义为varchar。

其他人给出了很好的一般性答案,但我要补充一个要点:在使用
varchar()
s(我建议用于这些类型的字段)时,确保使用足够大的长度,以满足任何合理的值。例如,我通常为名称、电子邮件地址、域名、城市名称等声明
VARCHAR(100)
,为URL或街道地址声明
VARCHAR(200)

这比你通常需要的要多。事实上,对于几乎所有这些值,30个字符就足够了(除了全名,但是一个好的数据库应该总是分别存储名字和姓氏),但总比将来某一天必须更改数据类型要好。为
VARCHAR
指定一个高于必要长度的长度几乎没有成本,但请注意
VARCHAR(MAX)
TEXT
确实会带来很大的开销,因此仅在必要时使用它们

这里有一篇文章指出了一种情况,超过必要的
VARCHAR
长度会影响性能:。这表明一切都是有代价的,尽管一般来说我还是喜欢long
VARCHAR
s