设计数据库表时要不要定义字段的长度?指定字段长度和不指定长度有什么区别?

 我来答
我又强力了
2014-03-24 · TA获得超过802个赞
知道小有建树答主
回答量:1058
采纳率:0%
帮助的人:720万
展开全部
设计数据库表的时候,需要考虑数据存储的内容,因为你是设计者你会更清楚所存储的值的内容是什么,给上合理的数据类型和长度,比如一个flag字段给的长度是char(1),如果DBA不清楚还要询问你长度是多少,如果他没有询问你,自作主张建了 char(10)这样有些影响查询效率。所以在你清楚的情况下,给定字段的长度是非常不错的
追问
一个字段定义为VARCHAR2(10)或VARCHAR2,这两种定义有什么区别?
追答
varchar2(10) 是字段最长10 最少0的可变
varchar2 是可变最长4000还是2000忘了。如果你确定你的字段最长不超过10 那就用第一个 查询效率会高点
百度网友4082f721f
推荐于2017-11-26 · TA获得超过171个赞
知道小有建树答主
回答量:246
采纳率:100%
帮助的人:168万
展开全部
一个是降低物理上的存储空间,一个是提高数据库的处理速度,还有一个附带功能是能校验数据是否合法。
追问
一个字段定义为VARCHAR2(10)或VARCHAR2,这两种定义有什么区别?
追答
VARCHAR2(10)固定了存储这个字段就是10个字节,而VARCHAR2也是有存储长度限制的,只不过是默认最大的存储数据长度限制(oracle好像是65535)。

一个是降低物理上的存储空间:很容易理解了,10个字节自然会比默认的长度要短很多,所需要的磁盘空间当然小(可能你会想磁盘现在那么大,可是一条记录少几万个字节,但是假设这个表有几千万或者几亿条记录,节省的空间是可想而知的)
一个是提高数据库的处理速度:跟上面同理,在遍历字段内容的时候,10肯定比默认快。
还有一个附带功能是能校验数据是否合法:这个就是怕有些程序开发人员在使用数据的时候不符合长度限制的约束。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
rxwoffice
2014-03-24 · 超过38用户采纳过TA的回答
知道小有建树答主
回答量:239
采纳率:0%
帮助的人:54.1万
展开全部
1、需要指定长度,创建库表需要的;
2、开发人员需要知道长度,知道如何使用。
更多追问追答
追问
一个字段定义为VARCHAR2(10)或VARCHAR2,这两种定义有什么区别?
追答
不好意思,varchar2可以不定义长度么。请问,你使用的什么数据库?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式