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到安裝路徑,我...