Python-pymysql

  1. pymysql

1、pymysql

1.1 安装

pip3 install pymysql

1.2 基本使用

"""
1、获得游标时可以设置cursor参数,默认以元祖的形式返回结果,cursor=pymysql.cursors.DictCursor以字典的形式返回
2、需要拼接的语句先使用%s占位(拼接的部位为条件和值),将需要拼接的参数以元组的形式传给execute,execute函数会自动拼接
3、executemany可以执行多次,需要拼接的参数以列表里加元组的形式传给executemany,executemany会依次从列表里取值执行sql语句
4、一般步骤:connect(建立连接)-cursor(获得游标)-execute(执行语句)-fetchall(查询结果)-close(关闭所有)
"""

import pymysql  					# 导入模块

# 建立连接
conn = pymysql.connect(  			# 建立连接,获得连接对象
    host='127.0.0.1', 		 		# 服务器地址(必须参数:字符串)
    port=3306,  					# 端口号(必须参数:整型)
    user='root',  					# 用户名(必须参数:字符串)
    password='123',  				# 密码(必须参数:字符串)
    database='db1',  				# 数据库的名字(必选参数:字符串)
    autocommit=True,  				# 自动提交(可选参数,Ture为开启,Fasle为关闭,关闭的情况下需要手动提交)
    charset='utf8'  				# 编码(可选参数:编码)
)

# 获得游标
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)  	# 获得游标对象

# 执行语句
sql = 'select * from t1'                            		# 纯sql语句
sql1 = "select * from t1 where id < %s and id>%s"      		# 需要拼接的sql查询语句,需要拼接的地方使用%s占位
sql2 = "insert into user(username,password) values(%s,%s)"	# 需要拼接的sql插入语句,需要拼接的地方使用%s占位

rows1=cursor.execute(sql)                             		# 纯sql语句直接传值
rows2 = cursor.execute(sql1, (3, 1))                 		# 执行同条sql语句一次
rows2 = cursor.executemany(sql1, [('a','1'),('b','2')])     # 执行同条sql语句多次,传入不同的值(插入多组数据)

# 查看结果
res1 = cursor.fetchone()                             		# 查看一条返回的数据
cursor.scroll(1,mode='relative')                    		# 滚动游标:相对位置移动
res2 = cursor.fetchmany(3)                       			# 查看多条条返回的数据,超过最大显示最大
cursor.scroll(0,mode='absolute')                    		# 滚动游标:绝对位置移动
res3 = cursor.fetchall()  									# 查看全部返回的数据

# 关闭所有
conn.commit()						# 手动提交(增删改的时候,开启自动提交可以不写,未开启一定得写)
cursor.close()						# 关闭游标
conn.close()						# 关闭连接

1.3 调用存储过程(MySQL里的函数)

调用并传参
"""
callproc(procname, args=())  
procname: 存储过程名
args:参数,以元祖的形式传参,无需区分mysql的参数类型
内部将参数转换成f"@_{procname}_%d=%s"
"""
cursor.callproc('p1', args=(1, 2, 3))		# 执行存储过程
cursor.fetchall()							# 查看执行结果

# 执行原始sql指令
sql = "select @_p1_0,@_p1_1,@_p1_2"	
cursor.execute(sql)
cursor.fetchall()
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值