pymysql操作

pymysql代码框架

1 import pymysql
2 conn=pymysql.connect(host='127.0.0.1',user='root',password='root',charset='utf8',db='ftpdb') #连接数据库
3 cursor=conn.cursor()  #设置游标(相似于文件操作中的光标)
4 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5 sql语句
6 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
7 conn.commit()
8 cursor.close()
9 conn.close()

设置游标的类型(返回的值为字典类型)
cursor=conn.cursor(cursor=pymysql.cursors.DictCursor)
要想将自己写的字符串加入到数据库表中
一.字符串拼接(禁止使用,会造成sql注入)
inp=input('请输入班级') sql='insert into class (caption) values ("%s")' #字符串拼接时%s必须加上"" sql=sql%(inp) #一旦inp为 'xx --' 会造成错误,因为--是数据库中的注释 cursor.execute(sql)

二.传参
1.一行传入单个数据(execute)
inp=input('请输入数据')
cursor.execute('insert into db1(name) values (%s)',inp)
2.一行传入多个数据(execute,以元组形式传入)
inp=input('请输入年龄')
inp1=input('请输入姓名')
cursor.execute('insert into db1(age,name) values (%s,%s)',(inp,inp1))
3.传入多行数据(executemany,传入的l必须是可迭代对象)
l=[(12,'kk'),(9,'ue'),(3,'ff')]
cursor.executemany('insert into db1(age,name) values (%s,%s)',l)


更新数据

r=cursor.execute('update db1 set name=%s where id=%s',('那大狗',1))

查看数据

cursor.execute('select * from db1')
result=cursor.fetchall()   #返回全部数据
result=cursor.fetchone()   #返回一条数据(默认返回第一条数据),取一条光标指向下一条
result=cursor.fetchmany(3) #返回第三条数据

移动游标位置

cursor.scroll(0,mode='absolute') #绝对
cursor.scroll(-1,mode='relative') #相对当前位置向前移动一个位置
#拿到插入的最新数据的行号
nid=cursor.lastrowid

 创建存储过程(一般是python中写sql代码,数据库执行,但存储过程是在数据库中创建执行):

#创建存储过程(在数据库中创建)
delimiter //
create procedure p2()
BEGIN
select * from link;
end //
delimiter;
#执行存储过程(在数据库中执行)
call p1()

#python调用
import pymysql
conn=pymysql.connect(host='127.0.0.1',user='root',password='root',charset='utf8',db='ftpdb') #连接数据库
cursor=conn.cursor()  #设置游标(相似于文件操作中的光标)
cursor.callproc('p1')
conn.commit()
cursor.close()
conn.close()
 

 

转载于:https://www.cnblogs.com/gaoyukun/p/8053514.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值