请教:varchar的长度怎么设定比较好? 算是一种习惯吧比如,姓名,谁的姓名会有255/2=122 个字符? 所以也必要定义那么长,但又不能定义成CHAR()所以就定义如VARCHAR(30) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个,好象varchar定义多大对储存和运行效率没什么影响,各人习惯不同而已 用char的话,得注意如果字符长度不到char规定的长度,末尾有空格的问题。另外,如果用char的话,最好整个数据库里字符字段都用char。 这种表估计是从Excel中导入SQLServer时创建的。 一般来说:完全确定长度的,如邮编、股票代码、手机号码号段(前3位或前7位)、等等,可以用char。除此之外都用varchar。即,char类型用来表示各种已知定义的code,而varchar类型用来表示各种string。varchar的长度,最好是在够用(需要适当预测未来需求)且方便管理的前提下尽可能短。因为SQLServer的最大索引键是900字节,在一个varchar(1000)或两个varchar(500)的字段上建索引,可能会导致数据异常。严格约束长度,则能避免这种可能性。另外,同一个字段,在整个系统中应该保证数据类型(包括长度)一致和字段名尽量一致。比如一个EmployeeID,在所有包含该字段的表中都应该是同样的varchar(30),并且名称都应该尽量是EmployeeID,除非是ManagerID、OwnerEmployeeID这种表示其它含义的情况。这样可以最大限度避免混淆,方便管理。至于非英文字符,是选择nchar/nvarchar还是char/varchar主要看个人倾向和系统集成的需求。只是要知道一点,用varchar+代码页的机制存储中文字符(DBCS),可能会遇到许多意想不到的麻烦。 对多表联合查询的性能对比 求优先级最高的那条记录的问题 数据库日志错误,错误提示如下,请教 麻烦的SQL语句 sql 分词技术 取关键字段的问题 数据库中自动编号复位 大哥,帮我写个sql 语句 恢复数据库 超超超级难的sql问题,漂亮MM在线等候,谢谢各位大侠了........ 预存钱包的数据表设计 [SQL,求教] 期盼。。
这种表估计是从Excel中导入SQLServer时创建的。
完全确定长度的,如邮编、股票代码、手机号码号段(前3位或前7位)、等等,可以用char。除此之外都用varchar。
即,char类型用来表示各种已知定义的code,而varchar类型用来表示各种string。varchar的长度,最好是在够用(需要适当预测未来需求)且方便管理的前提下尽可能短。因为SQLServer的最大索引键是900字节,在一个varchar(1000)或两个varchar(500)的字段上建索引,可能会导致数据异常。严格约束长度,则能避免这种可能性。另外,同一个字段,在整个系统中应该保证数据类型(包括长度)一致和字段名尽量一致。比如一个EmployeeID,在所有包含该字段的表中都应该是同样的varchar(30),并且名称都应该尽量是EmployeeID,除非是ManagerID、OwnerEmployeeID这种表示其它含义的情况。这样可以最大限度避免混淆,方便管理。至于非英文字符,是选择nchar/nvarchar还是char/varchar主要看个人倾向和系统集成的需求。只是要知道一点,用varchar+代码页的机制存储中文字符(DBCS),可能会遇到许多意想不到的麻烦。