数据库设计时遇到的几种数据类型

背景

机房合作时,我负责数据库设计部分,前两次的数据库遇到数据类型时就是蒙的,但是一直也没有去认真学习一下,这次果然还是绕不过去。所以决定这次把这个坑给填上,以便方便和我有同样状况的同志可以顺利地走过这一段路程。

前提

在讨论数据类型时,使用了精度、小数位数和长度3个概念,前两个概念是针对数值型数据的。


精度:指数值数据中所存储的十进制数据的总位数。

小数位数:指数值数据中小数点右边可以有的数字位数的最大值。例如数值数据3890.587的精度是7,小数位数是3.

长度:指存储数据所使用的字节数。

 

内容

机房这个系统,整体上,我涉及到了如下几种数据类型:

1.   字符型 char,varchar和 Unicode字符型nchar 和 nvarchar

字符型数据用于存储字符串,字符串中可包括字母、数字和其他特殊符号(如#,@等)。在输入字符串时,需将串中的符号用单引号或双引号括起来,如'abc'、"Abd<cdf"。

char指固定长度,举例栗子:当表中的字段定义为char(8)时,若实际存储的串长度不够8,则在串的尾部会自动添加空格以达到长度8;而若输入的长度超出8时,则超出的部分被截断,只保留8位。

varchar指变长字符数据类型,如varchar(8),指字符串课达到的最大长度是8,但不一定是8.

使用varchar比char节省空间,但char比varchar的处理效率高。


Unicode字符型包括nchar和nvarchar两类。这里它们的用法同char和varchar的使用非常相似,不同的是使用Unicode字符集,而后者使用ASCII字符集。

也许这样叙述您不容易理解,那就站在巨人的肩膀上,发现了我师傅也曾比较过它们,而且非常清晰,这里是原文链接:我师傅张欢的原文地址,为了方便您看,我这里直接截取了图片:

数据库设计时遇到的几种数据类型

2.   Bit

这种数据类型常作为逻辑变量使用,用来表示真、假或是、否等二值选择。我们这里的性别设定只有男和女两种结果:0 男 和 1 女;

3.     日期时间类型datetime

datetime类型数据长度为8字节,日期和时间分别使用前后4个字节表示。

4.     精确数值型Decimal(10,2)

表示数值*有10位数,其中整数10-2=8位,小数2位。

数据库设计时遇到的几种数据类型数据库设计时遇到的几种数据类型数据库设计时遇到的几种数据类型数据库设计时遇到的几种数据类型数据库设计时遇到的几种数据类型数据库设计时遇到的几种数据类型数据库设计时遇到的几种数据类型数据库设计时遇到的几种数据类型数据库设计时遇到的几种数据类型数据库设计时遇到的几种数据类型