A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王路路 中级黑马   /  2012-10-23 22:04  /  2439 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

SQL数据库中date、datetime、datetime2(7)、datetimeoffset2(7)分别用于定义什么类型的数据?char(10)、nchar(10)、nvchar(50)表示的数据有什么特点?
还有其他的数据类型各有什么特点?

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

3 个回复

倒序浏览
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数据类型时不用担心输入的字符是英文还是汉字,较为方便,但在存储英文时数量上有些损失。  

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
你这个问题有点毛病,第一个问题里面它们本来就是一种数据类型
第二个问题字符长度不同,char是定长字符数据,而varchar是变长字符数据,多了个字母"n",它表示存储的是Unicode数据类型的字符,后面的数字代表它可以的长度

评分

参与人数 1技术分 +1 收起 理由
王松老师 + 1

查看全部评分

回复 使用道具 举报
一般来说。我对字符串的类型一般会使用nvarchar(10)。10就是指最大长度。n就是指可以用汉子。如果长度不定,可能非常长,就使用nvarchar(max),int类型就是一般记录主键,或者年龄,成绩之类的整数。nchar(50)的话好像是如果你的数据长度不足50,剩下的就会自动填充为空格。datetime就是记录时间的。image就是记录二进制数据的。比如把图片或者文件转换成二进制流然后存入数据库中的。记些比较常用的就好了啊

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马