一、char与varchar 列如: char(10) varchar(10) 写入“abc” char 损耗了硬盘10字节 = “abc”长度 + 7个空字符 varchar损耗了硬盘3字节 = “abc”长度 var:可变长度,会根据实际存储数据的大小动态重新分配存储空间。 不带var:固定长度,存储3个字符也是要占用10个字节的,会自动补7个空格。 注意:如果存储的数据超过了10个字节,那么无论是固定长度还是可变长度都会报错的。 理论: 前缀N就表示Unicode字符,比如nchar,nvarchar,这两种类型使用了Unicode字符集。 非Unicode码(例如ASCII码),英文字符需要一个字节存储,但汉字和其他众多非英文字符,则需要两个字节存储。如果英文与汉字同时存在,由于占用空间数不同,容易造成混乱,导致读取出来的字符串是乱码。 Unicode(统一码)就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。 二、char与nchar char()不带n的数据类型,存储中文等双字节字符,占用2个字节;存储英文,数字等每个字符占用1个字节。 nchar() 带n的,无论存储中文还是英文、数字等,每个字符都是占用两个字节。 注意:不带n的这些数据类型,长度最常可以设置为8000,而带n的这些数据类型,长度最长可以设置为4000,实际存储空间相同,既8000字节。 char(8000) varchar(8000) nchar(4000) nvarchar(4000) N前缀:N代表转换为Unicode格式 insert into students1(name,birtiday) values(N'科比',1994-01-01) 其它: Bit类型在管理器上只能用true和false 在写程序代码的时候只能用1和0 (责任编辑:IT) |