python SQL基本使用

2022-05-17 12:01:27 字數 2266 閱讀 9607

今天要來說說資料庫操作了,這意味著什麼?以後再也不用從檔案裡讀寫資料了,過程實在太複雜了~~~驚不驚喜?

使用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,...)),第一層是行,第二層是列(也就是一行中的每一項)。當然可以修改返回值的格式。下面介紹~~~

jiang~就是上面這樣,這個時候好像就知道游標是怎麼一回事兒了吧?

為什麼說fetchone,fetchonemany並沒有什麼用呢?我們看上面的方法,其實都是執行了一樣的sql,也就是說,我們其實是將所有的資料讀到了記憶體中,再從中選取我們需要的,但是這一步我們在寫sql的時候就可以做到了,讀到記憶體裡占用了大量的記憶體空間,絕對得不償失~~~

在最後補上修改返回結果格式為dict的方法。這就是mysql的基本操作啦~~~

python sql注入防護

sql注入防範 以前對 的安全程度不夠注重,其實也可以說是沒那麼多參考資料來指導,沒那麼嚴格的流程來要求。現在分享一下自己的 安全方面的收穫。sql注入指通過構造不符合預期的sql語句,來達到繞過防範的目的。例子就不舉例了。網上太多。說說python中的防範方法。orm框架 django模型提供了一...

Python sql資料的增刪改查簡單操作

import mysql.connector import osimport codecs 設定資料庫使用者名稱和密碼 user root 使用者名稱 pwd root 密碼 host localhost ip位址 db mysql 所要運算元據庫的名字 charset utf 8 cnx mysq...

Python sql注入 過濾字串的非法字元

coding utf8 在開發過程中,要對前端傳過來的資料進行驗證,防止sql注入攻擊,其中的乙個方案就是過濾使用者傳過來的非法的字元 def sql filter sql,max length 20 dirty stuff for stuff in dirty stuff sql sql.repl...