数据库建字段,默认值空和empty string有什么区别 110

mysql数据库,navicat工具。前提,该字段设置了NOTNULL,所以默认值是没法设为Null的。但是其他两个都可以,而且不影响正常的数据增删改查,也没法插入Nul... mysql数据库,navicat工具。前提,该字段设置了NOT NULL,所以默认值是没法设为Null的。但是其他两个都可以,而且不影响正常的数据增删改查,也没法插入Null值。
大家看清楚了再回答哦。
我说的不是null和empty string,是“什么都不填”和 empty string的区别。
给个建表语句示例:
add coloum 'name' char(50) not null; 与
add coloum 'name' char(50) default '' not null;
的区别。
另外,无论是否设置default,由于字段本身限制了not null ,所以插入到数据库的值都会变成空字符串。
所以,我问:用“navicat”工具建表,默认值之间的区别。
回答前请先看图片,谢谢。
展开
 我来答
simonncc
高粉答主

2018-04-05 · 关注我不会让你失望
知道大有可为答主
回答量:776
采纳率:100%
帮助的人:13.1万
展开全部

null=空;empty string=空字符串。可以了解为零字节长度的字符串。另外,要注意一点,就是sql查询的时候要是空的字符串会查询出为空,要是null的话,会提示sql语句有错。那这样的话,好像是数据库校对字符集的问题。

拓展:

1、我们把表中的每一行叫做一个"记录",每一个记录包含这行中的所有信息,就像在通讯录数据库中某个人全部的信息,但记录在数据库中并没有专门的记录名,常常用它所在的行数表示这是第几个记录。在数据库中存放在表行列交叉处的数据叫做"值",它是数据库中最基本的存储单元,它的位置要由这个表中的记录和字段来定义。

2、在数据库中,大多数时,表的"列"称为"字段" ,每个字段包含某一专题的信息。就像"通讯录"数据库中,"姓名"、"联系电话"这些都是表中所有行共有的属性,所以把这些列称为"姓名"字段和"联系电话"字段。但是有时候,字段也不是表中的列,比如用as将列的内容经计算,"存入"另一个字段。如:一个表"T"中只有列"ID",内容为"int"值"1"。运用"select id, id * 5 as abc from T",得出的结果为id abc。

baicaocanhua
2017-03-09 · TA获得超过119个赞
知道答主
回答量:72
采纳率:100%
帮助的人:24.9万
展开全部
Empty String 插入(insert)时,可以不指定列,如果是默认值空会报 Field 'xxx' doesn't have a default value,太深入的我也不知道
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-11-05
展开全部
差别不是很大,不填存储时占很小很小的空白字节,而empty string存储为0个字节,应该是。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-12-03
展开全部
mysql学的不精,但null很明显不等于空值。。。null是一个未确定的值,或者说你绝不可能使用一个变量来等于null
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
星洛之途
2014-01-02
知道答主
回答量:40
采纳率:75%
帮助的人:10.6万
展开全部
首先,要区分开
null=空;
empty string=空字符串。可以了解为零字节长度的字符串。
另外,要注意一点,就是sql查询的时候要是空的字符串会查询出为空,要是null的话,会提示sql语句有错。

那这样的话,好像是数据库校对字符集的问题。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式