MYSQL问题,为什么设置为不允许为空的字段却可以为空呢? 既然你已经设置了NOT NULL,你还得有个default的值啊。否则还是有mysql自己的默认值的。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 NOT NULL并不是当你在插入空值或无值的时候报错,而是自动给你补上一个空值 记得以前考C的时候考过这道题目(名词解释:空值;NULL),当时没在意,没想到过了N年后还是得弄懂他... 晕,这个我来说一下吧。not null 和 null 是标记该字段是否允许插入空值(这里的空值是一个特殊字符 \0 )。 not null 是不允许插入这个值,那么你空着这个字段的时候,这个字段里就是空的,没有任何字符。如果你设置为null,那么他的默认值就是null,如果你填入null或者空着,那么他会插入一个特殊字符 \0 。仅此而已,允许插入null是为了方便做判定,但是却影响索引,查询结果也可能产生输出。因此,在大多数应用中,都默认为not null。如果没有需要也最好都设置为not null~ not null 低版本的mysql不插值好像会报错的 ... 现在又不会了 反正没值的话就自动插个空值解决的办法也很简单 在插入的时候判断插入字段是不是有值 比如 if $_POST["name"]==NULL { echo "没有输入数值"; } 这样就好了 一些根本不懂空值和NULL有什么区别,误导初学者。所谓的NULL就是什么都没有,连\0都没有,\0在字符串中是结束符,但是在物理内存是占空间的,等于一个字节,而NULL就是连这一个字节都没有。在数据库里是严格区分的,任何数跟NULL进行运算都是NULL, 判断值是否等于NULL,不能简单用=,而要用IS关键字, Mysql3.23.0或以后支持用<=>用来比较两个NULL值是否相等, 即 select * from table where id <=> NULL.为什么会出现NULL?这是来源于数据库的左右连接,不是凭空想出来的。比如:A(ID, Name), B(ID, Address)1, Name1 1, Shanghai2, Name2 3, Beijing当A左连接B则得到: 1, Name1, Shanghai2, Name2, NULL当A右连接B则得到: 1, Name1, Shanghai3, NULL, Beijing数据库的字段ID设为NOT NULL, 仅仅说明该字段不能为NULL, 也就是说只有在INSERT INTO table(ID) VALUES(NULL);这种情况下数据库会报错,而INSERT INTO table(ID) VALUES('');这不能说明是NULL, 数据库系统会根据ID设的缺省值填充,或者如果是自增字段就自动加一等缺省操作。 请问linux下xampp集成环境中怎么为php添加curl扩展? 用require可以随机调用其它网页 用PHP建sql表的问题 FF下对xml节点的操作 不知道为什么 discuz后台登陆页面是空白,急求解决在线等! 关于赋值和判断语句的问题 如何用PHP里的IMAP函数,实现邮件的发送,希望有能够发送邮件的源代码!!(急急急) 我想申请二级域名和空间,PHP+MYSQL?虎翼的怎么样?大家给点意见。 Win2000中可否使用Apache服务器? 一个非常让人费解的问题,高手快进来看看! 从ASP转换到PHP!
晕,这个我来说一下吧。not null 和 null 是标记该字段是否允许插入空值(这里的空值是一个特殊字符 \0 )。 not null 是不允许插入这个值,那么你空着这个字段的时候,这个字段里就是空的,没有任何字符。
如果你设置为null,那么他的默认值就是null,如果你填入null或者空着,那么他会插入一个特殊字符 \0 。
仅此而已,允许插入null是为了方便做判定,但是却影响索引,查询结果也可能产生输出。因此,在大多数应用中,都默认为not null。如果没有需要也最好都设置为not null~
A(ID, Name), B(ID, Address)
1, Name1 1, Shanghai
2, Name2 3, Beijing当A左连接B则得到:
1, Name1, Shanghai
2, Name2, NULL当A右连接B则得到:
1, Name1, Shanghai
3, NULL, Beijing数据库的字段ID设为NOT NULL, 仅仅说明该字段不能为NULL, 也就是说只有在
INSERT INTO table(ID) VALUES(NULL);
这种情况下数据库会报错,而
INSERT INTO table(ID) VALUES('');
这不能说明是NULL, 数据库系统会根据ID设的缺省值填充,或者如果是自增字段就自动加一
等缺省操作。