关于SQL 数据库的数据类型问题
发布网友
发布时间:2022-04-08 21:36
我来回答
共3个回答
热心网友
时间:2022-04-08 23:05
两个字符型字段分别定义为char(10)和varchar(10),当给它们存入“123”这个数据时,char(10)字段占用十个字节的存储空间,而varchar(10)只占用3个字节存储空间,这就是char和varchar的区别。可以看出varchar比较适合存储长度变化很大的数据。
nchar和char,nvarchar和varchar的区别在于是否使用Unicode进行编码。一般情况下在仅仅处理中文及英文,不涉及特殊符号时不需要使用Unicode。另一种需要用Unicode的情况是需要将字符串数据添加到SQL语句中执行,又不想里面的东西如单引号使SQL产生误解,可以将其用Unicode编码,这时每个字符都将占用两个字节,单引号也不会被SQL识别了。
ntext和text的区别也是一样。由于每个字符都占用两个字节,比较适合存储纯中文包括少量英文的数据。
smallint、int和bigint的区别仅仅在于位数不同。smallint可存储2字节整数(-32768~32767),int可存储4字节整数(-2147483648~2147483647),bigint可存储8字节整数(-9223372036854775808~9223372036854775807)。
smalldatetime用两个字节存储,可表示从1900年1月1日到2079年6月6日之间的任何时间,精确到分钟。datetime用四个字节存储,可表示1753年1月1日到9999年12月31日的任何时间,精确到百分之三秒。
sql中没有bigdatetime类型。
热心网友
时间:2022-04-09 00:23
简单的说:
char和nchar是定长字符串类型,varchar和nvarchar是变长字符串类型。也就是说如果字段类型为char(10),那么即使你输入的字符为'abc',在数据库中也会保存成' abc',字段前面会被自动补上7个空格。而使用varchar(10)则前面不会补空格。
至于前面那个n有什么不同,有n代表支持unicode字符,而没有n的则不支持,text和ntext的区别也是一样。
text和char及varchar的区别在于,char和varchar字段的数据是保存在表中,而text字段可以保存大容量的文本,数据是保存在另外的空间里,当然在表面上看来并没有什么区别。
关于带big和small的类型。small代表是简化的数据类型,支持的范围比较小,但占用的空间也小。big是超大的数据类型,占用的空间大,但支持的范围也大。比如smallint只占用一个字节,但是只能支持0-255的数字。datetime也是一样。
热心网友
时间:2022-04-09 01:58
abingpow说的很对
补充:
1. char 和nchar 当填入数据为空时,数据库自动使用全空格来代替,从而使not null形同虚设。所以如果字段不能为空,一定要在程序中提前判断。
2. char 和nchar因为长度固定,据说读写的速度要比 varchar和nvarchar快