pymysql語法 pymysql用法

2021-10-12 15:57:45 字數 3357 閱讀 4565

pymysql用法

一、基礎用法

匯入:import pymysql

連線資料庫:conn=pymysql.connect(host="",user="",password="",database="")

建立游標:cur=conn.cursor()

括號內沒有任何設定:查詢後輸出的結果是元組形式

括號內新增cursor=pymysql.cursors.dictcursor:資料的結果是字典形式的,字典中的key是欄位名,value是查詢到的對應值

使用pymysql進行查詢:cur.execute("mysql語句")

注意:查詢語句必須新增雙引號,查詢語句和mysql的語句一樣,沒有區別

獲取查詢到的資料

獲取一條資料

ret_one = cur.fetchone()

print(ret_one)

可以使用迴圈連續獲取資料

獲取多條資料

ret_many = cur.fetchmany(num)

print(ret_many)

num是指定的獲取資料條數

獲取全部的資料

ret_all = cur.fetchall()

print(ret_all)

為了避免語句執行中存在錯誤導致出現程式異常,需要做異常處理pymysql.err.programmingerror,as e後可以把e列印出來顯示異常的具體內容

try:

程式except pymysql.err.programmingerror as e:

print(e)

關閉游標:cur.close()

關閉資料庫連線:conn.close()

import pymysql

conn=pymysql.connect(host="127.0.0.1",user="root",

password="930215",

database="department_data")

# 建立cursor游標

cur = conn.cursor(cursor=pymysql.cursors.dictcursor)

try:

cur.execute("select * from employee")

# cur.execute獲取到的查詢結果並不能直接顯示出來,必須另外獲取,這個用法類似於

# 生成器的用法

# cur.fetchone()只能獲取一條資料

ret_one = cur.fetchone()

print(ret_one)

# cur.fetchmany(num)指定獲取的資料個數

ret_many = cur.fetchmany(3)

print(ret_many)

# cur.fetchall()獲取所有的查詢資料

ret_all = cur.fetchall()

print(ret_all)

except pymysql.err.programmingerror as e:

print(e)

cur.close()

conn.close()

寫入、更新和刪除資料資料

寫入資料

cur.execute("insert into 表名(字段) values(插入資料);")

更新資料

cur.execute("update 表名 set 字段='' where 字段=''")

刪除資料

cur.execute("delete from 表名 where 字段=''")

conn.commit()

異常處理:如果寫入資料不成功,執行回滾:rollback()

'''插入資料'''

try:

cur.execute("insert into employee(ename,eage,depart_id,etime) values('夏侯淳',25,103,now())")

conn.commit()

except exception as e:

print(e)

conn,rollback()

注意:如果只是寫了插入的語句,那麼就只是把資料寫入到記憶體中,並沒有寫入磁碟,必須使用conn.commit()進行提交,是conn不是cur這點也需要特別注意

在execute中也可以進行資料表的建立和刪除任務

查詢一共有多少行資料被影響:print(cur.rowcount)

在執行sql語句後可以使用cur.rowcount來獲取總共有幾行資料被影響,然後通過迴圈獲取每乙個資料

cur.execute("select * from employee")

for i in range(cur.rowcount):

ret = cur.fetchone()

print(ret)

二、防止sql注入

匯入pymysql:import pymysql

提示使用者輸入內容

建立連線:conn=pymysql.connect(host='',user='',password='',database='')

建立游標:cur = conn.cursor()

拼接sql語句:sql = "select * from 表 where user=%s and password=%s"

注意:這裡的拼接語句中的字串後不要直接寫拼接的內容,要把拼接的內容放在執行語句中,如果直接拼接的會可能造成sql注入問題,威脅到資料庫的安全,這裡必須要特別注意。

執行語句:cur.execute(sql,(拼接內容1,拼接內容2))

獲取查詢的內容

關閉游標:cur.close()

關閉連線:conn.close()

import pymysql

username = input("mysql使用者名稱:")

password = input("mysql密碼:")

conn = pymysql.connect(host="localhost",

user="root",

password="930215",

database="department_data")

cur = conn.cursor()

sql = "select * from userinfo where username=%s and password=%s"

# 這裡不能直接拼接

cur.execute(sql,(username,password))

# 執行語句這裡拼接,並且是括號,拼接內容和sql內容要使用逗號隔開

ret = cur.fetchone()

print(ret)

cur.close()

conn.close()

pymysql語法 pymysql的用法

一 首先要安裝mysql,我安裝的mysq5.7的 二 啟動mysql,啟動 net start mysql 停止 net stop mysql 解除安裝 net delete mysql 三 安裝pymysql模組 pip直接安裝即可 四 基本的增刪改查的操作 coding utf 8 impor...

pymysql語法 pymysql庫常用物件用法

pymysql庫中提供了兩個常用的物件 connection物件和cursor物件。1.connection物件 connection物件用於建立與mysql資料庫的連線,可以通過以下方法建立 connect 引數列表 以上方法中的常用引數及其含義如下 引數host,資料庫所在主機的ip主機位址,若...

mac多版本python安裝 pymysql

系統裡面安裝了多個python的版本,有2.7和3.4等。預設的2.7版本,但我開發需要3.4版本的。預設情況下,用pip安裝pymysql sudo pip install pymysql安裝之後,在命令列裡面測試 import pymysql如果沒有報錯,則表示安裝成功。找到3.4到安裝路徑,我...