是什么区别char,nchar,ntext,nvarchar,text和varchar在SQL?
char
nchar
ntext
nvarchar
text
varchar
这些类型中的每一个是否真的都有一个应用案例,或者只是其中一些不推荐使用?
text并且ntext已弃用,因此请暂时省略它们。剩下的就有3个维度:
N
var
(max)
因此,您可以阅读任何类型的含义:
CHAR(10)
NVARCHAR(256)
VARCHAR(MAX)
不推荐使用的类型text和ntext对应新的类型varchar(max),并nvarchar(max)分别。
varchar(max)
nvarchar(max)
细节时,in-rowvs。BLOB模糊的含义很短,因为引擎 可能会 优化存储并将行中的BLOB拉入或将行中的值推入“小型BLOB”分配单元中,但这只是一个实施细节。请参阅表和索引组织。
in-row
BLOB
从编程的角度来看,所有类型:CHAR,VARCHAR,NCHAR,NVARCHAR,VARCHAR(MAX)和NVARCHAR(MAX),支持统一的串API:字符串函数。旧的,过时,类型TEXT和NTEXT做 不 支持这个API,他们有一个独立的,deperated,TEXT API来处理。您不应使用不推荐使用的类型。
CHAR
VARCHAR
NCHAR
NVARCHAR
NVARCHAR(MAX)
TEXT
NTEXT
BLOB类型通过使用UPDATE table SET column.WRITE(@value, @offset)语法来支持有效的就地更新。
UPDATE table SET column.WRITE(@value, @offset)
在表上进行行压缩时,固定长度和可变长度类型之间的差异将消失。启用行压缩后,固定长度类型和可变长度以相同格式存储,尾随空格不存储在磁盘上,请参阅行压缩实现。请注意,页面压缩意味着行压缩。