python 在mysql中插入null空值的操作
python在mysql中插入null空值
sql = “INSERT INTO MROdata (MmeUeS1apId) VALUES (%s)”%‘NULL’
%s沒(méi)有引號(hào),可以將“null'中null寫(xiě)進(jìn)數(shù)據(jù)庫(kù),達(dá)到NULL值效果。
%s加引號(hào) values就是字符串,導(dǎo)致類(lèi)型錯(cuò)誤,插入錯(cuò)誤。
sql = “INSERT INTO MROdata (MmeUeS1apId) VALUES (‘%s’)”%‘NULL’
補(bǔ)充:數(shù)據(jù)庫(kù)中的空值與NULL的區(qū)別以及python中的NaN和None
數(shù)據(jù)庫(kù)里面的”空值”有兩種:空字符(“”)、空值(NULL)。
兩種存儲(chǔ)方式在數(shù)據(jù)庫(kù)中都很常見(jiàn),實(shí)際中根據(jù)業(yè)務(wù)或者個(gè)人習(xí)慣可以用這兩種方式來(lái)存儲(chǔ)“空值”。
那這兩種到底有什么區(qū)別,下面通過(guò)例子直接來(lái)展示:-- 創(chuàng)建表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;
看到這里應(yīng)該明白了,直觀看空字符和NULL的區(qū)別在于,在做count計(jì)算的時(shí)候,空字符也會(huì)被計(jì)算在里面,而NULL不會(huì)。有些同學(xué)在使用where is null 和is not null 的時(shí)候也要注意數(shù)據(jù)庫(kù)中的“空值”是空字符還是NULL。
不然統(tǒng)計(jì)結(jié)果可能并不是你想要的。
平時(shí)有些數(shù)據(jù)是需要借助python 來(lái)處理的,我們來(lái)看看python獲取數(shù)據(jù)的時(shí)候有哪些需要注意的。
python有兩種方式獲取數(shù)據(jù):1. 一種是把數(shù)據(jù)從MYSQL 中導(dǎo)出到txt或者csv,然后本地讀取;
2. 另一種是python直接鏈接數(shù)據(jù)庫(kù),讀取數(shù)據(jù);
先看第一種:導(dǎo)出到csv,python 讀取
第二種:
1、第一種把數(shù)據(jù)從MYSQL導(dǎo)出后,python讀取時(shí),空值即為NULL;
2、第二種鏈接數(shù)據(jù)庫(kù)后,python能讀取表結(jié)構(gòu),數(shù)據(jù)庫(kù)的NULL對(duì)應(yīng)列表中的None以及pandas中的NaN(如果字段類(lèi)型是時(shí)間,則為NaT)。而數(shù)據(jù)庫(kù)中的空字符,則被識(shí)別為空字符。
個(gè)人理解的等式NULL(數(shù)據(jù)庫(kù))=None(python列表)=NaN(pandas)
空字符(數(shù)據(jù)庫(kù))=空字符(python列表)=空字符(pandas)
從csv中獲取數(shù)據(jù)時(shí):空值(csv)=NULL(數(shù)據(jù)庫(kù))=NaN(pandas)
轉(zhuǎn)為csv數(shù)據(jù)時(shí):數(shù)據(jù)庫(kù)中的NULL空字符和pandas中的NaN空字符,都變成csv中的空值
在python處理完數(shù)據(jù)后,往數(shù)據(jù)庫(kù)寫(xiě)數(shù)據(jù)的時(shí)候也一樣。注意注意!
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章:
1. XML入門(mén)的常見(jiàn)問(wèn)題(三)2. 關(guān)于html嵌入xml數(shù)據(jù)島如何穿過(guò)樹(shù)形結(jié)構(gòu)關(guān)系的問(wèn)題3. XML 非法字符(轉(zhuǎn)義字符)4. CSS3實(shí)例分享之多重背景的實(shí)現(xiàn)(Multiple backgrounds)5. WMLScript的語(yǔ)法基礎(chǔ)6. 前端html+css實(shí)現(xiàn)動(dòng)態(tài)生日快樂(lè)代碼7. 不要在HTML中濫用div8. el-input無(wú)法輸入的問(wèn)題和表單驗(yàn)證失敗問(wèn)題解決9. JSP取得在WEB.XML中定義的參數(shù)10. 初試WAP之wml+ASP查詢
