数据库中的数据类型与C#中的存在意义差不多都是为提高数据的安全,存储,读取与使用效率
数据库中常用的数据类型大致分为以下几种(以sql server 2008 r2为例)
1)文本数据类型:其字符数据包括任意的字母,数字或符号字符的组合,使用单引号表示
A:char(0-8000) 固定长度的非Unicode字符数据,其最大长度8000个此类字符
B:varchar(0-8000) 可变长度的非Unicode字符数据,最大长度与上面一样
C:nchar(0-4000) 固定长度的 Unicode 数据
D:Nvarchar(0-4000)可变长度的 Unicode 数据
E:Text(0-2G) 存储长文本信息
F:varchar(max)与nvarchar(max)即大字符串类型可以保存非常多的字符,DNMS会将其保存到单独空间内使得数据的保存和加载速度比较慢,因此除非必要,否则不要使用
Unicode编码:也叫万国码,主要为解决跨语言间的文本转换处理,使用两个字节表示每个字符的字符编码方案
char/nchar:固定长度,如果实际存储数据长度不足,则用空格来补全,如身份证(假设都是18位),邮政编码(假设为6位)等一般都使用固定长度
varchar/nvarchar:可变长度,会根据实际存储数据的大小来重新计算列名数据的长度,如存储的密码,少量的简介信息等一般情况都是使用可变长度
两者优缺点:前者会浪费存储空间,造成数据库文件肿大;后者浪费效率(会重新计算)
因此固定长度的字符串相对于可变长度的字符串来说效率要高一些,在数据长度固定的情况下优先选用固定长度,固定相对于可变的字符串节省其内部计算长度的过程,提高效率,现今只需要设置为nchar类型,长度设置为10个即可足够使用
char/varchar与nchar/nvarchar的区别:
1)前两者存储的长度范围为1-8000; 后两者存储的长度范围为1-4000
2)前两者可以存储10个单字节字符(如字母与数字)或者5个双字节字符(如汉字)
后两者无论单字节还是双字节字符在存储时都会以双字节方式存储
建议unicode字符使用nchar/nvarchar来保存,因为这个类型相对来说更保险
2)数字数据 包括正数、负数以及分数
A:整形的两个 int 与 smallint B:数字的两个 float与real 其中float与C#中的double对应
3)日期和时间 Datetime 日期和时间在单引号内输入
4)货币类型 money 和 smallmoney可以精确到它们所代表的货币单位的万分之一
5)布尔类型 bit 其值只有 true与false
6)二进制类型 image 就是数据流,存储非字符和文本的数据,如图像
至于其他的数据类型不怎么用就不再细说,这些数据类型与C#中对应相似的数据类型,以后会通过具体实例进行详细讲解