oracle/mysql中的“不等于“ <> != ^= is not一样吗
oracle mysql 中的“不等于“ <> != ^= is not
oracle
oracle中的 != 与 <> 和 ^= 都是不等于,逻辑上没有区别。官方推荐 <>,因为跨平台,可移植,兼容性强。
不等于,隐含着不为空,即is not null。
name <> 'Mike',会把名字不是Mike并且不为空的数据查出来。
mysql
mysql中,<> 和 != 相同。
is not用于判空,即 is not null,不是空的。select * from t where id is not null; 翻译成中文就是,从t表中查出id不是空的数据。这也是为什么当初专门为null发明is not这么一种表达方式。因为“等于空”这种说法,确实不严谨。某个值,可以等于1,等于2,但不应该说等于空,因为它就是空的。
oracle中的!=与<>和^=
!= 、 <>、^= 三个符号都表示“不等于”的意思,在逻辑上没有本质区别
但是要主义的是三个符号在表达“不等于”含义的同时,隐含一个“不为空 is not null”的前提,所以使用时null会被过滤掉。
例如数据库三条数据
姓名 | 性别 |
---|---|
张三 | 男 |
李四 | |
王五 | 女 |
但是官方更推荐“<>”的写法,因为跨平台可移植性更强。
以上就是oracle/mysql中的“不等于“ <> != ^= is not一样吗的详细内容,更多请关注其它相关文章!