python中pymysql包操作数据库方法


Posted in Python onApril 19, 2022

一、安装

pip install pymysql

二、连接数据库

  • 三种连接数据库的方式
import pymysql

# 方式一
conn = pymysql.connect('localhost', 'root', 'root')

# 方式二
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='root', db='', charset='utf8')

# 方式三
config = {
'host': '127.0.0.1',
'port': 3306,
'user': 'root',
'passwd': 'root',
'charset': 'utf8'
}
conn = pymysql.connect(**config)

三、创建数据库

  • 创建一个test数据库并进入
import pymysql

db = pymysql.connect("localhost", "root", "root", "test")
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()

cursor.execute('DROP DATABASE IF EXISTS test')
cursor.execute('CREATE DATABASE IF NOT EXISTS test')
conn.select_db('test')

四、创建数据表

  • 创建一张user表
import pymysql

db = pymysql.connect("localhost", "root", "root", "test")
cursor = db.cursor()

cursor.execute('CREATE TABLE user(id int primary key,name varchar(30))')

五、插入一条数据

import pymysql

db = pymysql.connect("localhost", "root", "root", "test")
cursor = db.cursor()

try:
# 执行SQL语句
sql = 'INSERT INTO user values("%d","%s")' %(1,"autofelix")
cursor.execute(sql)
# 提交到数据库执行
db.commit()
except:
# 发生错误时回滚
db.rollback()
finally:
# 关闭游标连接
cursor.close()
# 关闭数据库连接
conn.close()

六、插入多条数据

import pymysql

db = pymysql.connect("localhost", "root", "root", "test")
cursor = db.cursor()

try:
# 执行SQL语句
values = [(1, 'autofelix'), (2, '飞兔小哥')]
cursor.executemany('INSERT INTO user values(%s,%s)', values)
# 提交到数据库执行
db.commit()
except:
# 发生错误时回滚
db.rollback()
finally:
# 关闭游标连接
cursor.close()
# 关闭数据库连接
conn.close()

七、数据统计

import pymysql

db = pymysql.connect("localhost", "root", "root", "test")
cursor = db.cursor()

count = cursor.execute('SELECT * FROM user')
# 统计数据总数
print('total records: %d' %count)
# 统计字段数
print('total records:', cursor.rowcount)

八、获取表名信息

import pymysql

db = pymysql.connect("localhost", "root", "root", "test")
cursor = db.cursor()

desc = cursor.description
print("%s %3s" % (desc[0][0], desc[1][0]))

九、获取单条数据

  • 使用 fetchone 方法获取单条数据
import pymysql


db = pymysql.connect("localhost", "root", "root", "test")
cursor = db.cursor()

# 使用 execute() 方法执行 SQL 查询
cursor.execute("SELECT VERSION()")

# 使用 fetchone() 方法获取单条数据.
data = cursor.fetchone()

print("Database version : %s " % data)

# 关闭数据库连接
db.close()

十、查询多条数据

import pymysql

db = pymysql.connect("localhost", "root", "root", "test")
cursor = db.cursor()

cursor.execute('SELECT * FROM user')

results = cursor.fetchmany(5)
for r in results:
print (r)

十一、查询所有数据

import pymysql

db = pymysql.connect("localhost", "root", "root", "test")
cursor = db.cursor()

cursor.execute('SELECT * FROM user')

results = cursor.fetchall()
for r in results:
print (r)

十二、上下文管理

  • 每次都连接关闭很麻烦,使用上下文管理,简化连接过程
import pymysql
import contextlib

# 定义上下文管理器,连接后自动关闭连接
@contextlib.contextmanager
def mysql(host='127.0.0.1', port=3306, user='root', passwd='', db='test',charset='utf8'):
conn = pymysql.connect(host=host, port=port, user=user, passwd=passwd, db=db, charset=charset)
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
try:
yield cursor
finally:
conn.commit()
cursor.close()
conn.close()

# 执行sql
with mysql() as cursor:
print(cursor)
count = cursor.execute("select * from user")
row_1 = cursor.fetchone()
print row_count, row_1

到此这篇关于python 包 pymysql 数据库操作方法的文章就介绍到这了!

Python 相关文章推荐
Python基于PycURL实现POST的方法
Jul 25 Python
浅析Python中的赋值和深浅拷贝
Aug 15 Python
Python实现k-means算法
Feb 23 Python
Python实现决策树C4.5算法的示例
May 30 Python
python绘制圆柱体的方法
Jul 02 Python
Python字符串的全排列算法实例详解
Jan 07 Python
Python实现最常见加密方式详解
Jul 13 Python
python3实现带多张图片、附件的邮件发送
Aug 10 Python
python openvc 裁剪、剪切图片 提取图片的行和列
Sep 19 Python
python实现的分层随机抽样案例
Feb 25 Python
python学生管理系统的实现
Apr 05 Python
python邮件中附加文字、html、图片、附件实现方法
Jan 04 Python
Python中Schedule模块使用详解 周期任务神器
Apr 19 #Python
python中urllib包的网络请求教程
Apr 19 #Python
python APScheduler执行定时任务介绍
Apr 19 #Python
Python数据可视化之Seaborn的安装及使用
python 闭包函数详细介绍
Apr 19 #Python
Python  lambda匿名函数和三元运算符
Apr 19 #Python
Python使用mitmproxy工具监控手机 下载手机小视频
You might like
php实现评论回复删除功能
2017/05/23 PHP
laravel 操作数据库常用函数的返回值方法
2019/10/11 PHP
浅谈php常用的7大框架的优缺点
2020/07/20 PHP
JavaScript实现cookie的写入、读取、删除功能
2015/11/05 Javascript
Jquery Easyui进度条组件Progress使用详解(8)
2020/03/26 Javascript
微信小程序 扎金花简单实例
2017/02/21 Javascript
Angular 4依赖注入学习教程之ClassProvider的使用(三)
2017/06/04 Javascript
基于vue 动态加载图片src的解决方法
2018/02/05 Javascript
微信小程序动画(Animation)的实现及执行步骤
2018/10/28 Javascript
解决小程序无法触发SESSION问题
2020/02/03 Javascript
通过实例解析vuejs如何实现调试代码
2020/07/16 Javascript
浅谈实现在线预览PDF的几种解决办法
2020/08/10 Javascript
Python3.6安装及引入Requests库的实现方法
2018/01/24 Python
Python3中的json模块使用详解
2018/05/05 Python
Python单元测试实例详解
2018/05/25 Python
python如何爬取个性签名
2018/06/19 Python
在django中自定义字段Field详解
2019/12/03 Python
Python基于tkinter canvas实现图片裁剪功能
2020/11/05 Python
Python调用系统命令os.system()和os.popen()的实现
2020/12/31 Python
Python 求向量的余弦值操作
2021/03/04 Python
HTML5仿微信聊天界面、微信朋友圈实例代码
2018/01/29 HTML / CSS
Saucony澳大利亚官网:美国跑鞋品牌,运动鞋中的劳斯莱斯
2018/05/05 全球购物
奥林匹亚体育:Olympia Sports
2020/12/30 全球购物
xml有哪些解析技术?区别是什么
2016/04/26 面试题
英语师范专业毕业生自荐信
2013/09/21 职场文书
学生党员思想汇报范文
2014/01/09 职场文书
《湘夫人》教学反思
2014/02/21 职场文书
个人工作主要事迹
2014/05/08 职场文书
农村党员一句话承诺
2014/05/30 职场文书
计算机相关专业自荐信
2014/07/02 职场文书
乡镇党建工作汇报材料
2014/08/14 职场文书
借条如何写
2015/05/26 职场文书
大学学生会主席竞选稿怎么写?
2019/08/19 职场文书
《鲁班学艺》读后感3篇
2019/11/27 职场文书
手把手教你使用TensorFlow2实现RNN
2021/07/15 Python
WINDOWS 64位 下安装配置mysql8.0.25最详细的教程
2022/03/22 MySQL