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