首先说明下,ASP.NET MVC系列还在龟速翻译中。
工作好多年,基础知识甚是薄弱,决定以后在coding(cv操作)的时候尽量多google下,然后总结下来,目的有三:
1. 加深自己的理解,如果园看懂了并且没有误导人,那么我就理解对了。
2. 以备自己遇到问题之后还要google,直接看看自己的就好了。
3. 也许面试前的突击能用到,不用东找西看
下面言归正传,介绍下char、varchar、nchar、nvarcharar到底有什么区别,免得每次创建新表的时候,总是在模仿别人的,自己的主见呢?
Q:这个列为什么使用这类型,长度为什么是这么长?
A:某某创建的表的类似的列就是这样的定义的。(好惭愧、-_- !)
Nchar 和 nvarchar 存储Unicode字符
char 和 varchar 不能存储Unicode字符。
char 和 nchar是固定长度,当存储的字符长度小于定义的长度,剩余长度的空间用空格补足。
varchar 和 nvarchar是可变长度,可以理解为在定义长度的范围内,按需存储,剩余长度的空间不会用空格填充。
例如,将长度设置为10,分别存储boyce
char(10)存储结果:’boyce ‘
varchar(10) 存储结果:’boyce’
最后还是以表格的形式总结下:
数据类型 | 定义 | 存储数据 | 长度 | 存储是否固定 | 使用建议(仅供参考) |
---|---|---|---|---|---|
char | character | 非Unicode | [1,8000] | 是 | 列数据的大小基本一致 |
nchar | national char national character | Unicode | [1,4000] | 否 | 列数据的大小基本一致 |
varchar | char varying | 非Unicode | [(1,8000)|max] | 是 | 列数据的大小相差很大可能会超过8000 个字节时使用max |
nvarchar | National char varying National character varying | Unicode | [(1,4000)|max] | 否 | 列数据的大小相差很大可能会超过4000 个字节时使用max |