数据库中的空值与NULL的区别以及python中的NaN和None
来源:互联网 发布:ssh项目源码 编辑:程序博客网 时间:2024/05/20 07:34
数据库里面的”空值”有两种:空字符(“”)、空值(NULL)。
两种存储方式在数据库中都很常见,实际中根据业务或者个人习惯可以用这两种方式来存储“空值”。那这两种到底有什么区别,下面通过例子直接来展示:
-- 创建表testcreate table `test` (`id` int not null ,`name` varchar(255) null ,`date` timestamp null ,`class` varchar(255) null );insert into test (id,name,date,class) values (1,'张三','2017-03-01','a班');insert into test (id,name,date,class) values (2,'李四','2017-03-02','');insert into test (id,name,class) values (3,'王五','c班');select * from test;
select count(date),count(class) from test;
看到这里应该明白了,直观看空字符和NULL的区别在于,在做count计算的时候,空字符也会被计算在里面,而NULL不会。有些同学在使用where is null 和is not null 的时候也要注意数据库中的“空值”是空字符还是NULL。不然统计结果可能并不是你想要的。
平时有些数据是需要借助python 来处理的,我们来看看python获取数据的时候有哪些需要注意的。
python有两种方式获取数据:
1. 一种是把数据从MYSQL 中导出到txt或者csv,然后本地读取;
2. 另一种是python直接链接数据库,读取数据;
先看第一种:导出到csv,python 读取
第二种:
两种方式读取的数据居然不一样!
- 第一种把数据从MYSQL导出后,python读取时,空值即为NULL;
- 第二种链接数据库后,python能读取表结构,数据库的NULL对应列表中的None以及pandas中的NaN(如果字段类型是时间,则为NaT)。而数据库中的空字符,则被识别为空字符。
个人理解的等式
- NULL(数据库)=None(python列表)=NaN(pandas)
- 空字符(数据库)=空字符(python列表)=空字符(pandas)
- 从csv中获取数据时:空值(csv)=NULL(数据库)=NaN(pandas)
- 转为csv数据时:数据库中的NULL\空字符和pandas中的NaN\空字符,都变成csv中的空值
在python处理完数据后,往数据库写数据的时候也一样。注意注意!
如果对python中的None和NaN有疑问,可以看这位博主的 博文。
0 0
- 数据库中的空值与NULL的区别以及python中的NaN和None
- Python中的None与 NULL(即空字符)的区别
- Python中的None与 NULL(即空字符)的区别
- Python中的None与 NULL(即空字符)的区别
- Python中的None与 NULL(即空字符)的区别
- Python中的None与空字符(NULL)的区别
- Python中的None与 NULL(即空字符)的区别
- Javascript 中的非空判断 undefined,null, NaN的区别
- JS中的非空判断 undefined,null, NaN的区别
- python 中的None 和Null
- Python中的NULL和None
- Python 中的None以及 == 与 is 的区别,以及判断某个list或者dict元素是否为None
- 数据库中的空值与null的处理!
- python中None与Null的区别
- 数据库空值和null的区别
- python None 与 Nan的理解
- javascript中的数据类型及null、NaN、undefined的区别
- mysql中的null与空字符串的区别
- 《Thinking in Java》学习笔记(1)
- NOIP 2016 普及组 复赛 pencil 买铅笔
- 深度学习(14):Control
- JVM-class文件结构解析
- IOCP编程小结(上)
- 数据库中的空值与NULL的区别以及python中的NaN和None
- 20170306 小兵的觉悟就是好好吃饭
- HDU 2824 The Euler function (欧拉函数打表)
- JSONP实现跨域功能
- Android Service两种启动方式的区别
- [Tkinter 教程02] Message 控件
- Dialog和自定义Dialog以及日期对话框
- 如何有效的报告bug
- vuejs之v-for的理解