mysql中is not null和!=null及null介绍
发布:smiling 来源: PHP粉丝网 添加日期:2014-10-09 11:08:56 浏览: 评论:0
在mysql中,筛选非空的时候经常会用到is not null和!=null,这两种方法单从字面上来看感觉是差不多的,其实如果去运行一下试试的话差别会很大.
为什么会出现这种情况呢?
null 表示什么也不是,不能=、>、< … 所有的判断,结果都是false,所有只能用 is null进行判断.
默认情况下,推荐使用 IS NOT NULL去判断,因为SQL默认情况下对!= Null的判断会永远返回0行,但没有语法错误.
如果你一定想要使用!= Null来判断,需要加上这个语句:
set ANSI_NULLS off
这时你会发现IS NOT NULL 和 != null 是等效的,字段如果设为“NULL”,表示如果这个字段的值为空时,自动插入一个“NULL”值.
一个字段如果设为“NOT NULL”,表示如果这个字段的值为空时,不自动插入“NULL”值(任其无值).
所以,设为“NULL”的意思反而是“不能无值”(由MYSQL自动赋“NULL”值),而设为“NOT NULL”是“可以无值”.
其实要证明这一点很简单,建一个测试表,两个字段(VC型),一个设为“NULL”,一个设为“NOT NULL”,两个都插入空值,看看结果就明白了.
NULL 不是 '' 也不是 0.
你的字段定义为 not null,但是却赋值了一个 null,那么数据库系统会按照该字段类型选择一个默认的值放进去,比如 char 就是用空字符串.
但注意,空字符串其实已经是一个确定的值了,就是一个长度为 0 的字符串.
至于 NULL 值,给你一个正确的理解:把 NULL 理解为 UNKNOWN。主要意思是'不知道',就是它可能是任何值;
另外一层意思是'信息缺失',比如某个存储姓名信息的字段值是 NULL,代表姓名信息缺失。
所以 NULL 值不是任意一个确定的值!
举例来说,逻辑 与/或 运算会的吧?
与运算:true and true = true,true and false = false,false and true = false,false and false =false.
第一个 true and null,它的结果完全靠 null 确定,如果它是 true 结果就是 true,如果它是 false,结果就是false.
因为 null 代表不知道,所以结果也是不知道,所以是 null.
第二个 false and null,它的结果不需要靠 null 确定,因为 and 运算的特性,有 false 出 false,所以结果是false。
第三个 null and null,就好理解了吧,它完全就是空对空了,两个操作数都是不知道,结果自然也是不知道,所以是 null.
Tags: is not null !=null
相关文章
- ·数据表是MyISAM格式,是什么意思?(2014-01-14)
- ·mysql中Table is read only错误解决方法(2014-09-22)
- ·mysql Copying to tmp table on disk 影响性能(2014-09-23)
- ·mysql中导入数据load data在myisam与innodb区别(2014-09-23)
- ·mysql数据库show processlist结果分析(2014-09-27)
- ·MySql数据库Plugin 'FEDERATED' is disabled.错误解决方法(2014-09-27)
- ·redis sorted sets操作学习笔记(2014-09-27)
- ·mysql The table‘xxxx’is full 设置临时表大小(2014-09-28)
- ·Plugin InnoDB registration as a STORAGE ENGINE failed解决方法(2014-09-28)
- ·MySQL数据库MyISAM存储引擎转为Innodb(2014-10-02)
- ·MySQL myisamchk修复正在使用,无法访问数据表(2014-10-02)
- ·redis安装测试与常用方法使用教程(2014-10-03)
- ·mysql中not in,not exists与join的is null效率对比(2014-10-04)
- ·mysql中distinct和group by过滤删除重复行(2014-10-04)
- ·Mysql find_in_set()函数使用方法(2014-10-08)
- ·mysql远程连接 Host * is not allowed to connect to this MySQL server(2014-10-09)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)