LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 4949|回复: 7

mysql用not null和null有什么区别呀

[复制链接]
发表于 2007-1-2 16:42:46 | 显示全部楼层 |阅读模式
最近用mysql5.0的时候,发现没有以前用mysql4.0方便,

就是每个字符串字段都要定义成默认NULL才行,要不然插入记录的时候,就插不进去.除非你把那个空值也写上,

非常不方便.

难道MYSQL5.0倒退了,还没4.0好

用NULL和NOTNULL有什么区别呀,听有人说用LEFT JOIN的时候好象有点区别,不知道是什么意思。

请高手回答一下啊。
发表于 2007-1-2 19:39:22 | 显示全部楼层
null即允¸空单元
not null即不允¸空单元
。。。。-_-|||
回复 支持 反对

使用道具 举报

发表于 2007-1-2 21:44:37 | 显示全部楼层
Post by yanglei1979
最近用mysql5.0的时候,发现没有以前用mysql4.0方便,

就是每个字符串字段都要定义成默认NULL才行,要不然插入记录的时候,就插不进去.除非你把那个空值也写上,

非常不方便.

难道MYSQL5.0倒退了,还没4.0好

用NULL和NOTNULL有什么区别呀,听有人说用LEFT JOIN的时候好象有点区别,不知道是什么意思。

请高手回答一下啊。

字符型一般默认定义成''这可可以让mysql查询的时减少一次 is null 的判断..'' 和 null 不是一个意思
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-3 00:00:38 | 显示全部楼层

那以后我是不是该都定义成NOT NULL

Post by jame298
字符型一般默认定义成''这可可以让mysql查询的时减少一次 is null 的判断..'' 和 null 不是一个意思


那以后我是不是该都定义成NOT NULL,但要NULL还有什么用呢,没用的话MYSQL要搞这个干什么.

''是最快的,那我以后再定议varchar,char,text字段的时候,是不是都应该让它默认为 '' 呢
回复 支持 反对

使用道具 举报

发表于 2007-1-3 08:56:26 | 显示全部楼层
你可以看一下..joomla..discuz等项目的代码..一般都是not null default '',包括varchar char text,但在windows下mysql5的text好像不可以
回复 支持 反对

使用道具 举报

发表于 2007-1-3 16:05:27 | 显示全部楼层
Post by yanglei1979
那以后我是不是该都定义成NOT NULL,但要NULL还有什么用呢,没用的话MYSQL要搞这个干什么.

''是最快的,那我以后再定议varchar,char,text字段的时候,是不是都应该让它默认为 '' 呢

比如注册一个论坛会员,数据库是mysql,通过设定是否允许空值来表示会员信息中哪些是必填,哪些是选填。当然我们更多情况下使用脚本处理数据然后给mysql提交完整数据,但使用mysql自己的属性也不失为一种选择
回复 支持 反对

使用道具 举报

发表于 2007-1-3 20:33:32 | 显示全部楼层
为null和""(空字符串)是不一样的,所以mysql把选择留给了开发者。
回复 支持 反对

使用道具 举报

发表于 2007-1-4 17:54:29 | 显示全部楼层
Post by yanglei1979
最近用mysql5.0的时候,发现没有以前用mysql4.0方便,

就是每个字符串字段都要定义成默认NULL才行,要不然插入记录的时候,就插不进去.除非你把那个空值也写上,

非常不方便.

难道MYSQL5.0倒退了,还没4.0好

用NULL和NOTNULL有什么区别呀,听有人说用LEFT JOIN的时候好象有点区别,不知道是什么意思。

请高手回答一下啊。

插入的时候这样
insert into table(`name`) values('jat');
其它的字段就会是默认值
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表