这篇教程python 在mysql中插入null空值的操作写得很实用,希望能帮到您。 python在mysql中插入null空值 sql = “INSERT INTO MROdata (MmeUeS1apId) VALUES (%s)”%‘NULL' %s没有引号,可以将“null"中null写进数据库,达到NULL值效果。 %s加引号 values就是字符串,导致类型错误,插入错误。 sql = “INSERT INTO MROdata (MmeUeS1apId) VALUES (‘%s')”%‘NULL' 补充:数据库中的空值与NULL的区别以及python中的NaN和None 数据库里面的”空值”有两种:空字符(“”)、空值(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 读取 
第二种: 
两种方式读取的数据居然不一样!1、第一种把数据从MYSQL导出后,python读取时,空值即为NULL; 2、第二种链接数据库后,python能读取表结构,数据库的NULL对应列表中的None以及pandas中的NaN(如果字段类型是时间,则为NaT)。而数据库中的空字符,则被识别为空字符。 个人理解的等式NULL(数据库)=None(python列表)=NaN(pandas) 空字符(数据库)=空字符(python列表)=空字符(pandas) 从csv中获取数据时:空值(csv)=NULL(数据库)=NaN(pandas) 转为csv数据时:数据库中的NULL/空字符和pandas中的NaN/空字符,都变成csv中的空值 在python处理完数据后,往数据库写数据的时候也一样。注意注意! 以上为个人经验,希望能给大家一个参考,也希望大家多多支持51zixue.net。如有错误或未考虑完全的地方,望不吝赐教。 python 删除空值且合并excel的操作 解决python mysql insert语句的问题 |