今天要來說說數據庫操作了,這意味着什么?以后再也不用從文件里讀寫數據了,過程實在太復雜了~~~驚不驚喜?
使用mysql數據庫——增
插入一條數據
首先,還是先解釋一下如何使用數據庫,按照上面的方法就可以連接數據庫了。這里要解釋兩件事情。
1.執行sql語句返回的reCount是什么?
這個recount不是我們執行sql的時候查出的內容,而是,明白了吧,就是這樣,喵~~~
2.cur是什么?
這里的cur指的是游標。游標是映射在結果集中一行數據上的位置實體,有了游標,用戶就可以訪問結果集中的任意一行數據了,將游標放置到某行后,即可對該行數據進行操作。然而這些都是mysql內部的事情了,我們只需要知道要寫上這么兩句話,在執行sql語句前實例化一個游標對象,並在執行完sql語句提交后,關掉這個游標就好了。
批量插入數據
對就是這么簡單,參數換成列表,方法換成executemany,搞定!需要注意的是那個占位符類似物:%s,要記得list里有幾個元素就寫幾個。
cur.lastrowid和conn.insert_id():
cursor.lastrowid:最后一條記錄的主鍵ID
conn.insert_id():最新插入記錄的主鍵ID
網上說:結果一般情況下是一樣的,最后一條記錄肯定就是剛剛插入的記錄。但如果是並發插入就不一樣了。自己起了多線程,也並沒有發現什么。。。如果有小伙伴知道,歡迎指教~~~上面兩個方法需要注意的是一定要在conn.commit()之前執行。否則只會返回0。這兩個方法也只能返回本次conn連接中插入數據的信息,放在select之后是不好用的哦!
使用mysql數據庫——刪、改
刪
改
刪除操作和修改操作與插入操作唯一的不同就是——sql不同。。。還要怎么簡單!!!
使用mysql數據庫——查
在python的MySQLdb模塊中,有三個查找方法,fetchone,fetchmany和fetchall。常用的只有fetchall。需要注意的是,fetch的結果默認返回tuple。((item1,item2,...),(item1,item2,...)),第一層是行,第二層是列(也就是一行中的每一項)。當然可以修改返回值的格式。下面介紹~~~
fetchone
jiang~就是上面這樣,這個時候好像就知道游標是怎么一回事兒了吧?
fetchmany
為什么說fetchone,fetchonemany並沒有什么用呢?我們看上面的方法,其實都是執行了一樣的sql,也就是說,我們其實是將所有的數據讀到了內存中,再從中選取我們需要的,但是這一步我們在寫sql的時候就可以做到了,讀到內存里占用了大量的內存空間,絕對得不償失~~~
fetchall
在最后補上修改返回結果格式為dict的方法。這就是mysql的基本操作啦~~~
參考文獻: