一、数据库中的常用数据类型

(1)char:固定长度,存储ANSI字符

(2)nchar:固定长度,存储Unicode字符

(3)varchar:可变长度,存储ANSI字符

(4)nvarchar:可变长度,存储Unicode字符

注:ANSI主要是以单字节来存储数据,适合存储字母;unicode主要是以两个字节来存储,适合存储汉字(汉字需要用两个字节来存储,英文字母需要使用单个字节来存储),如果使用ANSI字符存储汉字,那么可能会出现乱码的情况。

char和varchar适用于英文字符,nchar和nvarchar适用于中文字符。

nvarchar(n):n的取值范围1~4000

varchar(n):n的取值范围1~8000

nvarchar和varchar的区别:

  1. 从存储方式上,nvarchar是按照字符存储的,而varchar是按照字节存储的
  2. 从存储量上,varchar比较节省空间,因为存储大小为字节的实际长度,而nvarchar是双字节存储
  3. 在使用上,存储的数据是英文字符,建议使用varchar;存储的数据是中文,建议使用nvarchar
  4. 如果项目涉及到不同语言的转换,建议使用nvarchar

使用这些数据类型的选择标准:

确定存储的数据长度,不包括中文,选择char类型

确定存储的数据长度,可能包括中文,选择nchar类型

不确定存储的数据长度,存储的只用英文、数字,选择varchar类型

不确定存储的数据长度,存储的可能包含中文,选择nvarchar类型

 

(5)int:存储数字类型,占用4个字节,表示范围:-2,147,483,648 到 2,147,483,647

(6)bigint:存储数字类型,占用8个字节,表示范围:-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807

(7)tinyint:存储数字类型,占用1个字节,表示范围:0~255

(8)bit:表示存储的范围:0、1、Null,如果在数据库中填入数据0和1,如果使用代码插入使用true和false

(9)decimal(m,n):5~17字节,表示存储范围:m表示总位数,n表示小数点后面的位数,通常使用金额和价格

(10)datetime:8个字节,存储范围:1753年1月1日到9999年12月31日。存储的是年月日时分秒毫秒

(11)time:存储的是时分秒毫秒

(12)date:存储的是年月日