数据库设计之数据类型

【前言】

        我们也开始了机房合作,我先来介绍一下我们组的成员,我们组一共有三个人,其中有两个玉,一个二货玉(组长),一个攻艰玉。在第一次机房收费系统的时候我们就接触过了数据库中的四种字符串类型,分别是char,nchar,varchar,nvarchar。从第一次的什么都不懂,到第二次重构时的懵懵懂懂,  这次数据库设计的时候字段仍然用到了很多的字符串类型,这次一定要弄懂!      

【内容】

●定长或变长

      从字面意思上就很容易理解,所谓定长就是固定长度,变长就是当输入的字符长度没有达到指定的字符串长度的时候就以英文空格在该字符串后边填充使其长度达到指定的长度。在前言中我提到了数据库中的四种基本布尔类型,其中var开头的就是变长的。

Unicode或非Unicode

     在数据库中英文字符只需要一个字节存储就够了,但是中文和其他非英文的字符需要两个字节的空间来存储。数据库存储中中文、英文、数字同时存在的可能真的是太大了,为了避免读出的字符串是乱码,Unicode应运而生,他所有的字符都是用两个字节来表示的,在上述四种类型中,n就是Unicode的意思,所以,像nchar和nvarchar就是Unicode类型的字符集。所以在空间上和效率上他们各有优缺点。

【总结】

类型

使用

数据类型

优点

缺点

容量

char

定长字符,适合纯英文

Unicode

高效

当字符串长度不满足长度时会占用本来不需要的空间

8000个英文字符,4000个中文字符

varchar

变长字符,适合纯英文

Unicode

空间利用好

空间比实际的多一个字节,用来存储实际占用的字节数

8000个英文字符,4000个中文字符

nchar

固定长度,适合含有中文时使用

Unicode

高效,含有中文的时候不会乱码

当字符串长度不满足长度时会占用本来不需要的空间

4000个字符(不区分中英文)

nvarchar

变长字符,适合含有中文时使用

Unicode

空间利用好,含有中文的时候不会乱码

空间比实际的多一个字节,用来存储实际占用的字节数

4000个字符(不区分中英文)


你可能感兴趣的:(数据库设计之数据类型)