MySQL里null与空值的辨析
来源:互联网 发布:java线程池 callable 编辑:程序博客网 时间:2024/06/01 10:22
CREATE TABLE `test` (
`col1` VARCHAR( 10 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`col2` VARCHAR( 10 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL
) ENGINE = MYISAM ;
错误(不可以插入null值):
INSERT INTO `test` VALUES (null,1);
正确(插入''没问题):
INSERT INTO `test` VALUES ('',1);
INSERT INTO `test` VALUES ('', NULL);
INSERT INTO `test` VALUES ('1', '2');
检索(''不是null,所以not null会把''都算进去):
SELECT * FROM `test` WHERE col1 IS NOT NULL
结果:所有三条数据
检索(正常检索):
SELECT * FROM `test` WHERE col1 <> ''
结果:最后一条数据
检索(<>'',会同时排除''和null的数据,只检索有内容的数据):
SELECT * FROM `test` WHERE col2<>''
总结:
1. null的存储不是'',是其它特殊的字符表示。
2. null在检索<>''的时候,也会被排除,因为没有真正有意义的内容
3. not null严格按照字面意思,''不会被排除。
4. 定义not null的字段,可以插入''
http://my.oschina.net/junn/blog/161769
- MySQL里null与空值的辨析
- .NET和SQL Server中“空值”辨析 (DBNull与Null的区别) [转]
- .NET和SQL Server中“空值”辨析 (DBNull与Null的区别) [转]
- .NET和SQL Server中“空值”辨析 (DBNull与Null的区别)
- .NET和SQL Server中“空值”辨析 (DBNull与Null的区别)
- .NET和SQL Server中“空值”辨析 (DBNull与Null的区别)
- .NET和SQL Server中“空值”辨析 (DBNull与Null的区别)
- mysql的空值与NULL的区别
- Mysql的空值与NULL的区别
- mysql的空值与NULL的区别
- Mysql的空值与NULL的区别
- Mysql的空值与NULL的区别
- Mysql的空值与NULL的区别
- mysql中null与“空值”的坑
- mysql中null与“空值”的坑
- mysql中null与空值的区别
- NULL与MySQL空字符串的区别
- NULL与MySQL空字符串的区别
- apt-get提示:Media change: please insert the disc labeled
- JSP九大内置对象及四个作用域
- Endnote 参考文献输出格式GB/T 7714的Style定义写法
- ssm+shiro框架搭建笔记(1)
- yum-本地源一键配置
- MySQL里null与空值的辨析
- 机器学习/深度学习测试题(二)—— 单层线性神经网络求解异或问题
- Mybatis 中的一对一,一对多,多对多的配置原则
- 给程序员18个简短忠告
- 会话跟踪技术Cookieless
- Binder学习(一)
- bootstrap-datetimepicker时间控件如何设置显示的view
- NC开发环境plsql可以访问数据库,IDE访问不了解决方法
- 提高C#编程水平的50个要点 之十六“尽量避免产生资源垃圾”