sqlserver中,varchar和varing有什么区别?

  • 回答数

    4

  • 浏览数

    658

仍记初年
首页 > 计算机类考试 > sqlserver中,varchar和varing有什么区别?

4个回答 默认排序
  • 默认排序
  • 按时间排序

喜歡阿哲

已采纳
1分钟前发布 -【sqlserver中,varchar和varing有什么区别?】http://www.zjks.cc 10月18日讯: sqlserver中,varchar和varing有什么区别?SQL SERVER中生成的语句中,字符串前加N。N 前缀必须是大写字母。是Unicode编码的意思,一般来说,英文字符是一个字节组成,但是国际上的字太多了,因此就用两个字节来表示字符,满足国际化的需要.在字符串前面加上 N 代表存入数据库时以 Unicode 格式存储。N'string' 表示string是个Unicode字符串Unicode 字符串的格式与普通字符串相似,但它前面有一个 N 标识符(N 代表 SQL-92 标准中的国际语言 (National Language))。N 前缀必须是大写字母。例如,'Michél' 是字符串常量而 N'Michél' 则是 Unicode 常量。Unicode 常量被解释为 Unicode 数据,并且不使用代码页进行计算。Unicode 常量确实有排序规则,主要用于控制比较和区分大小写。为 Unicode 常量指派当前数据库的默认排序规则,除非使用 COLLATE 子句为其指定了排序规则。Unicode 数据中的每个字符都使用两个字节进行存储,而字符数据中的每个字符则都使用一个字节进行存储。有关更多信息,请参见使用 Unicode 数据。Unicode 字符串常量支持增强的排序规则。select '''a''' --输出'a' 在sql语句中'用''来转义,其他字符可以直接输存储含有中文字符的最好有nvarchar存储只有英文、数字的最好用varchar1.有var前缀的,表示是实际存储空间是变长的,varchar,nvarchar 所谓定长就是长度固定的,当输入的数据长度没有达到指定的长度时将自动以英文空格在其后面填充,使长度达到相应的长度;而变长字符数据则不会以空格填充,比较例外的是,text存储的也是可变长。 2.有n前缀的,n表示Unicode字符,即所有字符都占两个字节,nchar,nvarchar 字符中,英文字符只需要一个字节存储就足够了,但汉字众多,需要两个字节存储,英文与汉字同时存在时容易造成混乱,Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。 3.基于以上两点来看看字段容量 char,varchar 最多8000个英文,4000个汉字 nchar,nvarchar 可存储4000个字符,无论英文还是汉字 varchar与nvarchar的选择("n"前缀) 使用varchar存储含有非英文字符(比如中文,日文)时出现“??”的乱码 使用nvarchar的一个非常好处就是在判断字符串的时候可以不需要考虑中英文两种字符的差别.   当然,使用nvarchar存储英文字符会增大一倍的存储空间.但是在存储代价已经很低廉的情况下,优先考虑兼容性会给你带来更多好处的.  所以在Design的时候应该尽量使用nvarchar来存储数据.只有在你确保该字段不会保存中文的时候,才采用varchar来存储. SqlServer中nvarchar和varchar的区别 1、各自的定义:1.nvarchar(n) : 包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。所输入的数据字符长度可以为零。 2.varchar[(n)]: 长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。所输入的数据字符长度可以为零。2、区别:1.从存储方式上,nvarchar是按字符存储的,而 varchar是按字节存储的;2.从存储量上考虑, varchar比较节省空间,因为存储大小为字节的实际长度,而 nvarchar是双字节存储;3.在使用上,如果存储内容都是英文字符而没有汉字等其他语言符号,建议使用varchar;含有汉字的使用nvarchar,因为nvarchar是使用Unicode编码,即统一的字符编码标准,会减少乱码的出现几率;4.如果你做的项目可能涉及不同语言之间的转换,建议用nvarchar。
14 评论

痴情种

已采纳
sqlserver2008和mysql区别?数据类型支持:MySQL 和 SQL Server 2008 支持的数据类型有所不同。MySQL 包括了 INT、DOUBLE、CHAR、VARCHAR、DATE 等数据类型。而 SQL Server 2008 支持 INT、DECIMAL、CHAR、VARCHAR、DATETIME 等更多的数据类型。
15 评论

长裙绿衣

已采纳
微软都有什么证书?1、mcp-----mcp微软认证专家证书证明您有能力:获得业界承认的对至少一种微软产品的技术的精通和所需的专业技能,为获得其他的微软认证建立基础通过任何一个微软认证的考试(networkingessentials例外),您都可获得此认证。2、mcse----mcse微软认证系统工程师证书是行业中承认范围最广的一项高级技术证书。获得mcse证书,证明自己具备使用高级的microsoftwindows平台和microsoft服务器产品,为企业提供成功的设计、实施和管理商业解决方案的能力。3、mcsd----mcsd微软认证解决方案开发专家证书是行业中认可范围最广的一项高级技术证书。获得mcsd证书,证明自己具备使用微软产品为企业提供成功的设计、实施和管理商业解决方案的能力。4、mcdba----mcdba微软认证数据库管理员证书,个人可以证明自己拥有领导企业成功地设计、实现和管理microsoftsqlserver数据库所需的技能。5、mct----mct微软认证讲师在微软的培训和认证过程中有很重要的作用。mct由微软确认具有指导的资格和技术的认证,他们可以为计算机专业人员提供以微软正式教程(moc)为指导的课程。微软产品组开发了moc课程,用于培训计算机专业人员,这些专业人员将使用微软技术开发、支持和实现解决方案。6、mcad——mcad微软认证应用程序开发专家证书是针对那些开发并维护部门级应用程序、组件、web或桌面系统客户端及后端数据服务的专业人员而提供的。其工作角色涵盖了从需求实现到解决方案建立、部署与维护在内的各种任务。
34 评论

雪吖头

已采纳
sqlserver2008和mysql区别?1. MySQL支持enum和set类型,SQL Server不支持;2. MySQL不支持nchar、nvarchar、ntext类型;3. MySQL数据库的递增语句是AUTO_INCREMENT,而MS SQL是identity(1,1);4. MS SQL默认到处表创建语句的默认值表示是((0)),而在MySQL里面是不允许带两括号的;5. MySQL需要为表指定存储类型;6. MS SQL识别符是[],[type]表示他区别于关键字,但是MySQL却是 `,也就是按键1左边的那个符号;7. MS SQL支持getdate()方法获取当前时间日期,但是MySQL里面可以分日期类型和时间类型,获取当前日期是cur_date(),当前完整时间是 now()函数;8. MS SQL不支持replace into语句,但是在最新的SQL Server 2008里面,也支持merge语法;9. MySQL数据库支持insert into table1 set t1 = ‘’, t2 = ‘’ ,但是MS SQL不支持这样写;10. MySQL支持insert into tabl1 values (1,1), (1,1), (1,1), (1,1), (1,1), (1,1), (1,1)11. MS SQL不支持limit语句,是非常遗憾的,只能用top 取代limt 0,N,row_number() over()函数取代limit N,M;12. MySQL在创建表时要为每个表指定一个存储引擎类型,而MS SQL只支持一种存储引擎;13. MySQL不支持默认值为当前时间的datetime类型(MS SQL很容易做到),在MySQL里面是用timestamp类型;14. MS SQL里面检查是否有这个表再删除,需要这样:if exists (select * from dbo.sysobjects where id = object_id(N'uc_newpm') and OBJECTPROPERTY(id,N'IsUserTable')=1) 但是在MySQL里面只需要 DROP TABLE IF EXISTS cdb_forums;15. MySQL支持无符号型的整数,那么比不支持无符号型的MS SQL就能多出一倍的最大数存储;16. MySQL不支持在MS SQL里面使用非常方便的varchar(max)类型,这个类型在MS SQL里面既可做一般数据存储,也可以做blob数据存储;17. MySQL数据库创建非聚集索引只需要在创建表的时候指定为key就行,比如:KEY displayorder (fid,displayorder)在MS SQL里面必须要:create unique nonclustered index index_uc_protectedmembers_username_appid on dbo.uc_protectedmembers(username asc,appid asc) 18. MySQL text字段类型不允许有默认值;19. MySQL的一个表的总共字段长度不超过65XXX。20. 一个很表面的区别就是MySQL的安装特别简单,而且文件大小才110M(非安装版),相比微软这个庞然大物,安装进度来说简直就是.....21. MySQL的管理工具有几个比较好的,MySQL_front和官方那个套件,不过都没有SSMS的使用方便,这是MySQL很大的一个缺点。22. MySQL的存储过程只是出现在最新的版本中,稳定性和性能可能不如MS SQL。23. 同样的负载压力,MySQL要消耗更少的CPU和内存,MS SQL的确是很耗资源;24. php连接MySQL数据库和MS SQL的方式都差不多,只需要将函数的MySQL替换成MS SQL即可。25. MySQL支持 date,time,year类型,MS SQL到2008才支持date和time。
91 评论

相关问答

  • 万方高级检索怎么用?

    万方高级检索怎么用?万方高级检索使用方法:点击万方数据库首页上方的高级检索框,直接输入检索词,点击高级检索即可完成。万方检索数据库是由万方数据公司开发的大型网络数据库,除了期刊、论文,还涵盖会议纪要、专利、科技报告、标准、法规等多个方面的内容,是国内最大的学术文献全文数据库之一。

    苟且偷生 5人参与回答 2024-10-18
  • Access如何设置约束条件(比如某一列取值必须唯一。比如开始时间这一列必须早于结束时间这一列)?

    Access如何设置约束条件(比如某一列取值必须唯一。比如开始时间这一列必须早于结束时间这一列)?其实这个很简单: 打开表的设计视图,点鼠标右键,在弹出菜单中点击“属性”,在属性对话框中的有效性规则中输入:[开始时间]

    孤城潇陌 4人参与回答 2024-10-18
  • 学计算机科学与技术专业要考什么证书?

    学计算机科学与技术专业要考什么证书?是计算机专业,就去考像思科认证,华为认证,NIIT认证等,其中全国计算机技术与软件专业技术资格(水平)考试是全国统考的,证书等级分层合理,国内国外广泛认可你也可不用考任何国家的认证证书,什么一二三四级都是给非计算机专业的人考的,本科学历就相当于四级证书!至于其他的类似微软,思科等等公司的认证,其实只是针对本公司产品的一种培训,但是由于期公司产品具有广泛的垄断性,

    一壶漂泊 4人参与回答 2024-10-18
  • oracle job使用详解?

    oracle job使用详解?oracle中的job能为你做的就是在你规定的时间格式里执行存储过程,定时执行一个任务。初始化相关参数job_queue_processesalter system set job_queue_processes=39 scope=spfile;//最大值不能超过1000 ;job_queue_interval = 10 //调度作业刷新频率秒为单位job_queue

    傲世万物 4人参与回答 2024-10-18
  • access有效性规则?

    access有效性规则?Access中的有效性规则是一种可用于一定程度上预防数据输入错误的约束条件。有效性规则可以设定在表格、查询或数据库中,提供了一种简单而有效的方法,以确保只有正确格式和值的数据被输入到数据库中。下面是一些常见的Access有效性规则:1. 数据类型:确定在特定字段中可存储的数据类型。例如,你可以要求某个字段只能存储整数或文本值等。2. 字段大小:规定某字段的最大或最小字符或数

    南戈 4人参与回答 2024-10-18