溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

使用python怎么向mysql中插入一個(gè)null值

發(fā)布時(shí)間:2021-03-08 11:17:21 來源:億速云 閱讀:1896 作者:Leah 欄目:開發(fā)技術(shù)

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)使用python怎么向mysql中插入一個(gè)null值,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

python在mysql中插入null空值

sql = “INSERT INTO MROdata (MmeUeS1apId) VALUES (%s)”%‘NULL'

%s沒有引號(hào),可以將“null"中null寫進(jìn)數(shù)據(jù)庫,達(dá)到NULL值效果。

%s加引號(hào) values就是字符串,導(dǎo)致類型錯(cuò)誤,插入錯(cuò)誤。

sql = “INSERT INTO MROdata (MmeUeS1apId) VALUES (‘%s')”%‘NULL'

補(bǔ)充:數(shù)據(jù)庫中的空值與NULL的區(qū)別以及python中的NaN和None

數(shù)據(jù)庫里面的”空值”有兩種:空字符(“”)、空值(NULL)。

兩種存儲(chǔ)方式在數(shù)據(jù)庫中都很常見,實(shí)際中根據(jù)業(yè)務(wù)或者個(gè)人習(xí)慣可以用這兩種方式來存儲(chǔ)“空值”。

那這兩種到底有什么區(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;

使用python怎么向mysql中插入一個(gè)null值

select count(date),count(class) from test;

使用python怎么向mysql中插入一個(gè)null值

看到這里應(yīng)該明白了,直觀看空字符和NULL的區(qū)別在于,在做count計(jì)算的時(shí)候,空字符也會(huì)被計(jì)算在里面,而NULL不會(huì)。有些同學(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,然后本地讀??;

2. 另一種是python直接鏈接數(shù)據(jù)庫,讀取數(shù)據(jù);

先看第一種:導(dǎo)出到csv,python 讀取

使用python怎么向mysql中插入一個(gè)null值

第二種:

使用python怎么向mysql中插入一個(gè)null值

兩種方式讀取的數(shù)據(jù)居然不一樣!

1、第一種把數(shù)據(jù)從MYSQL導(dǎo)出后,python讀取時(shí),空值即為NULL;

2、第二種鏈接數(shù)據(jù)庫后,python能讀取表結(jié)構(gòu),數(shù)據(jù)庫的NULL對(duì)應(yīng)列表中的None以及pandas中的NaN(如果字段類型是時(shí)間,則為NaT)。而數(shù)據(jù)庫中的空字符,則被識(shí)別為空字符。

個(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怎么向mysql中插入一個(gè)null值了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI