pymysql-python實現數據庫的增刪改查
-
基礎代碼
import pymysql #創建數據庫連接,設置游標 connt= pymysql.connect(host='localhost',user='root',password='',database='db1') cursor=connt.cursor() #關閉游標及連接 cursor.close() connt.close()
-
execute返回值,受影響的行數
即execute()運行一次,對原數據表中自增都會加+1,
-
增(增、刪、改)都需要設置commit提交否則不生效
#增加一條數據 #一、execute運行sql sql="insert into userinfo(username,password) values('李白','123651')" sql="insert into userinfo(username,password) values('李白','123651'),('張三','12613'),('杜甫','df66')" cursor.execute(sql) #二、execute運行sql及將參數傳入 user='宮本' pwd='1222' sql="insert into userinfo(username,password) values(%s,%s)" cursor.execute(sql,[user,pwd]) #cursor.execute(sql,(user,pwd)) connt.commit() #commit()提交否則不生效
#增加多條數據 #executemany(sql,[(),(),()]) sql="insert into userinfo(username,password) values(%s,%s)" cursor.executemany(sql,[('趙雲','322'),('張飛','1566'),('關羽','165')])
-
改、刪
execute語句不變,只需修改sql語句即可
直接使用execute即可修改無須executemany
sql="update userinfo set username='王五'where username='李白'" cursor.execute(sql) connt.commit()
connt= pymysql.connect(host='localhost',user='root',password='',database='db1') cursor=connt.cursor() sql="delete from userinfo where username='王五'" cursor.execute(sql) connt.commit() cursor.close() connt.close()
-
查
#獲取一條數據 #cursor.fetchone() connt= pymysql.connect(host='localhost',user='root',password='',database='db1') cursor=connt.cursor() sql="delete from userinfo where username='王五'" cursor.execute(sql) res=cursor.fetchone() print(res) #(3, '張三', '12613') #獲取多條數據 #cursor.fetchmany()指定數量 res=cursor.fetchmany(3) print(res) #((6, '宮本', '1222'), (7, '宮本', '1222'), (8, '趙雲', '322')) #獲取所有數據 res=cursor.fetchall() #注意一般會通過sql里的limit進行限制數據獲取限制,以此獲得所有數據 print(res) cursor.close() connt.close()
-
游標
通過設置游標位置來獲取指定數據
cursor.scroll(value,mode='') #'relative'相對位置 ; 'absolute'絕對位置
-
新加入數據的自增id
即當數據存在外鏈時,需要在新增a表時,需要在B表中傳入數據的自增ID
cursor.lastrowid #self.lastrowid = result.insert_id