char varchar nchar nvarcharar到底有多大区别

时间:2024-01-20 14:07:57

首先说明下,ASP.NET MVC系列还在龟速翻译中。

工作好多年,基础知识甚是薄弱,决定以后在codingcv操作)的时候尽量多google下,然后总结下来,目的有三:

    1. 加深自己的理解,如果园看懂了并且没有误导人,那么我就理解对了。

    2. 以备自己遇到问题之后还要google,直接看看自己的就好了。

    3. 也许面试前的突击能用到,不用东找西看

下面言归正传,介绍下charvarcharncharnvarcharar到底有什么区别,免得每次创建新表的时候,总是在模仿别人的,自己的主见呢?

    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