一、数据库中的常用数据类型
(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的区别:
- 从存储方式上,nvarchar是按照字符存储的,而varchar是按照字节存储的
- 从存储量上,varchar比较节省空间,因为存储大小为字节的实际长度,而nvarchar是双字节存储
- 在使用上,存储的数据是英文字符,建议使用varchar;存储的数据是中文,建议使用nvarchar
- 如果项目涉及到不同语言的转换,建议使用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:存储的是年月日