pymysql理解

本文主要讲解使用pymysql连接mariadb数据库的操作
参考文档:
pymysql官方文档

一、基础

安装

	pip install PyMySQL

导入

	import pymysql

二、对象

1、连接对象

创建方法:

conn=pymysql.connect(host='XXXX',user='root',password='XXX',database='XXX',charset='utf8') 

基本参数:

  • host:MySQL的主机IP地址,本机可使用 ‘localhost’ / 127.0.0.1
  • user:登入用户名,MySQL 初始只有 ‘root’ 管理员用户
  • password:登入密码
  • database:连接的数据库名
  • port:端口号,默认 3306
    还有很多可选参数,具体可查看官方文档

方法:

  • commit()
    涉及写操作要注意提交
  • close()
    关闭数据库连接
  • cursor()
    创建游标对象

2、游标对象

执行完毕返回的结果集默认以元组显示

cursor=conn.cursor() #

如需返回结果为字典,则需修改cursor参数

cursor=conn.cursor(cursor=pymysql.cursors.DictCursor)

方法:

  • 执行命令
    • execute(query, args=None)
      执行一条命令
    • executemany(query, args)
      执行多条命令,返回 Number of rows affected
  • 抓取执行结果
    • fetchone()
      获取一行
    • fetchmany(size=None)
      获取size行
    • fetchall()
      获取所有行
  • 关闭游标
    • close()
      释放cursor对象

三、代码演示

1、SQL语句

单条数据:

#注意%s需要加引号
sql='select * from user where username="%s" and password="%s";' %(user,pwd)
#执行单条语句用executemany
cursor.execute(sql)

多条数据:

data = [(user1,pwd1),(user2,pwd2),(user3,pwd3),]
#%s需要去掉引号,pymysql会自动加上
sql = 'insert into users (username,password) values (%s,%s);'
#执行多条语句用executemany
cursor.executemany(sql,data)

2、fetch方法

import pymysql
#建立与数据库的连接
conn=pymysql.connect(host='localhost',user='root',password='',database='db2')

#创建游标
cursor=conn.cursor()

#执行sql语句
sql='select * from user;'
rows=cursor.execute(sql)            #返回的是表中所有记录的条数
cursor.scroll(3,mode='absolute') # 相对绝对位置移动,第一个参数是相对绝对位置移动的记录条个数
# cursor.scroll(1,mode='relative') # 相对当前位置移动,第一个参数是相对当前位置移动的记录条个数

#通过fetchone、fetchmany、fetchall拿到查询结果
res1=cursor.fetchone()              #以元组的形式,返回查询记录的结果,默认是从第一条记录开始查询
# res2=cursor.fetchone()            #会接着上一次的查询记录结果继续往下查询
# res3=cursor.fetchone()
# res4=cursor.fetchmany(2)           #查询两条记录会以元组套小元组的形式进行展示
# res5=cursor.fetchall()

#打印查询的最终结果到终端
print(res1)
# print(res2)
# print(res3)
# print(res4)
# print(res5)                         #会元组套小元组的形式将表中的左右记录头查询出来展示在终端
print('%s行数据'%rows)

3、增删改查

import pymysql

# 链接
conn = pymysql.connect(host='XXX', user='root', password='XXX', database='XXX', charset='utf8')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

# 查
sql = 'select * from users where username=%s and password=%s;'
data = ['user1', 'pwd1']
num = cursor.execute(sql, data)
res = cursor.fetchall()
print(res)

# 增
sql = 'insert into users values(%s,%s);'
data = [('user2', 'pwd2'), ('user3', 'pwd3')]
rows_num = cursor.executemany(sql, data)
print(rows_num)

# 改
sql = 'update users set password = %s where username = %s and password = %s;'
data = [('pwd44', 'user4', 'pwd4'), ('pwd55', 'user5', 'pwd5')]
rows_num = cursor.executemany(sql, data)
print(rows_num)

# 删除
sql = 'delete from users where username = %s and password = %s;'
data = [('user2', 'pwd2'), ('user3', 'pwd3')]
rows_num = cursor.executemany(sql, data)
print(rows_num)

#提交数据
conn.commit()

# 查询最终结果
sql = 'select * from users;'
num = cursor.execute(sql)
res = cursor.fetchall()
print(res)

#关闭连接
cursor.close()
conn.close()

四、简易接口

待补充
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值