python 在mysql中插入null空值的操作
python在mysql中插入null空值
sql = “INSERT INTO MROdata (MmeUeS1apId) VALUES (%s)”%‘NULL'
%s沒有引號,可以將“null"中null寫進(jìn)數(shù)據(jù)庫,達(dá)到NULL值效果。
%s加引號 values就是字符串,導(dǎo)致類型錯(cuò)誤,插入錯(cuò)誤。
sql = “INSERT INTO MROdata (MmeUeS1apId) VALUES (‘%s')”%‘NULL'
補(bǔ)充:數(shù)據(jù)庫中的空值與NULL的區(qū)別以及python中的NaN和None
數(shù)據(jù)庫里面的”空值”有兩種:空字符(“”)、空值(NULL)。
兩種存儲方式在數(shù)據(jù)庫中都很常見,實(shí)際中根據(jù)業(yè)務(wù)或者個(gè)人習(xí)慣可以用這兩種方式來存儲“空值”。
那這兩種到底有什么區(qū)別,下面通過例子直接來展示:
-- 創(chuàng)建表test create 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;
看到這里應(yīng)該明白了,直觀看空字符和NULL的區(qū)別在于,在做count計(jì)算的時(shí)候,空字符也會被計(jì)算在里面,而NULL不會。有些同學(xué)在使用where is null 和is not null 的時(shí)候也要注意數(shù)據(jù)庫中的“空值”是空字符還是NULL。
不然統(tǒng)計(jì)結(jié)果可能并不是你想要的。
平時(shí)有些數(shù)據(jù)是需要借助python 來處理的,我們來看看python獲取數(shù)據(jù)的時(shí)候有哪些需要注意的。
python有兩種方式獲取數(shù)據(jù):
1. 一種是把數(shù)據(jù)從MYSQL 中導(dǎo)出到txt或者csv,然后本地讀?。?/p>
2. 另一種是python直接鏈接數(shù)據(jù)庫,讀取數(shù)據(jù);
先看第一種:導(dǎo)出到csv,python 讀取
第二種:
兩種方式讀取的數(shù)據(jù)居然不一樣!
1、第一種把數(shù)據(jù)從MYSQL導(dǎo)出后,python讀取時(shí),空值即為NULL;
2、第二種鏈接數(shù)據(jù)庫后,python能讀取表結(jié)構(gòu),數(shù)據(jù)庫的NULL對應(yīng)列表中的None以及pandas中的NaN(如果字段類型是時(shí)間,則為NaT)。而數(shù)據(jù)庫中的空字符,則被識別為空字符。
個(gè)人理解的等式
NULL(數(shù)據(jù)庫)=None(python列表)=NaN(pandas)
空字符(數(shù)據(jù)庫)=空字符(python列表)=空字符(pandas)
從csv中獲取數(shù)據(jù)時(shí):空值(csv)=NULL(數(shù)據(jù)庫)=NaN(pandas)
轉(zhuǎn)為csv數(shù)據(jù)時(shí):數(shù)據(jù)庫中的NULL\空字符和pandas中的NaN\空字符,都變成csv中的空值
在python處理完數(shù)據(jù)后,往數(shù)據(jù)庫寫數(shù)據(jù)的時(shí)候也一樣。注意注意!
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
matplotlib grid()設(shè)置網(wǎng)格線外觀的實(shí)現(xiàn)
這篇文章主要介紹了matplotlib grid()設(shè)置網(wǎng)格線外觀的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02Python虛擬環(huán)境virtualenv的安裝與使用詳解
virtualenv可以用來管理互不干擾的獨(dú)立python虛擬環(huán)境,在有些場景下非常有用,下面這篇文章主要給大家介紹了Python虛擬環(huán)境virtualenv安裝與使用的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。2017-05-05python光學(xué)仿真實(shí)現(xiàn)光線追跡折射與反射的實(shí)現(xiàn)
這篇文章主要為大家介紹了python光學(xué)仿真實(shí)現(xiàn)光線追跡折射與反射的實(shí)現(xiàn)示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-10-10django xadmin 管理器常用顯示設(shè)置方式
這篇文章主要介紹了django xadmin 管理器常用顯示設(shè)置方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03python 安裝教程之Pycharm安裝及配置字體主題,換行,自動(dòng)更新
這篇文章主要介紹了python 安裝教程之Pycharm安裝及配置字體主題,換行,自動(dòng)更新,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03關(guān)于python 的legend圖例,參數(shù)使用說明
這篇文章主要介紹了關(guān)于python 的legend圖例,參數(shù)使用說明,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04Python 判斷是否為質(zhì)數(shù)或素?cái)?shù)的實(shí)例
下面小編就為大家?guī)硪黄狿ython 判斷是否為質(zhì)數(shù)或素?cái)?shù)的實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-10-10詳解使用python的logging模塊在stdout輸出的兩種方法
這篇文章主要介紹了詳解使用python的logging模塊在stdout輸出的相關(guān)資料,需要的朋友可以參考下2017-05-05基于Python實(shí)現(xiàn)帕累托圖的示例詳解
帕累托圖是一種特殊的直方圖, 在項(xiàng)目管理知識體系中屬于質(zhì)量管理的工具。本文為大家整理了Python實(shí)現(xiàn)帕累托圖的方法,需要的可以參考一下2023-03-03