黑马程序员技术交流社区
标题:
数据库中如何选择数据类型?
[打印本页]
作者:
王路路
时间:
2012-10-23 22:04
标题:
数据库中如何选择数据类型?
SQL数据库中date、datetime、datetime2(7)、datetimeoffset2(7)分别用于定义什么类型的数据?char(10)、nchar(10)、nvchar(50)表示的数据有什么特点?
还有其他的数据类型各有什么特点?
作者:
刘丽娜
时间:
2012-10-23 22:55
char,vchar,nchar,nvchar的区别
char和varchar的长度都在1到8000之间,它们的区别在于char是定长字符数据,而varchar是变长字符数据。所谓定长就是长度固定的,当输入的数据长度没有达到指定的长度时将自动以英文空格在其后面填充,使长度达到相应的长度;而变长字符数据则不会以空格填充。text存储可变长度的非Unicode数据,最大长度为2^31-1(2,147,483,647)个字符。
nvchar中的n表示unicode,nvchar的存储使用的是unicode的编码,vchar使用的是ANSI的编码。这导致了他们的列最大宽度的不同。
后面三种数据类型和前面的相比,从名称上看只是多了个字母"n",它表示存储的是Unicode数据类型的字符。字符中,英文字符只需要一个字节存储就足够了,但汉字众多,需要两个字节存储,英文与汉字同时存在时容易造成混乱,Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。nchar、nvarchar的长度是在1到4000之间。和char、varchar比较:nchar、nvarchar则最多存储4000个字符,不论是英文还是汉字;而char、varchar最多能存储8000个英文,4000个汉字。可以看出使用nchar、nvarchar数据类型时不用担心输入的字符是英文还是汉字,较为方便,但在存储英文时数量上有些损失。
作者:
丁艳姣
时间:
2012-10-23 23:06
你这个问题有点毛病,第一个问题里面它们本来就是一种数据类型
第二个问题字符长度不同,char是定长字符数据,而varchar是变长字符数据,多了个字母"n",它表示存储的是Unicode数据类型的字符,后面的数字代表它可以的长度
作者:
dqzg12300
时间:
2012-10-24 19:03
一般来说。我对字符串的类型一般会使用nvarchar(10)。10就是指最大长度。n就是指可以用汉子。如果长度不定,可能非常长,就使用nvarchar(max),int类型就是一般记录主键,或者年龄,成绩之类的整数。nchar(50)的话好像是如果你的数据长度不足50,剩下的就会自动填充为空格。datetime就是记录时间的。image就是记录二进制数据的。比如把图片或者文件转换成二进制流然后存入数据库中的。记些比较常用的就好了啊
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2