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 多线程应用介绍
Dec 19 Python
Python深入学习之上下文管理器
Aug 31 Python
python以环状形式组合排列图片并输出的方法
Mar 17 Python
在Python中使用swapCase()方法转换大小写的教程
May 20 Python
Python 打印中文字符的三种方法
Aug 14 Python
Django 路由控制的实现代码
Nov 08 Python
python将excel转换为csv的代码方法总结
Jul 03 Python
python字典的遍历3种方法详解
Aug 10 Python
python实现把两个二维array叠加成三维array示例
Nov 29 Python
pytorch实现seq2seq时对loss进行mask的方式
Feb 18 Python
Pycharm中切换pytorch的环境和配置的教程详解
Mar 13 Python
pyautogui自动化控制鼠标和键盘操作的步骤
Apr 01 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验证码函数的使用示例
2013/05/03 PHP
php将图片保存入mysql数据库失败的解决方法
2014/12/27 PHP
详解thinkphp实现excel数据的导入导出(附完整案例)
2016/12/29 PHP
php实现获取农历(阴历)、节日、节气的类与用法示例
2017/11/20 PHP
分享5个非常有用的Laravel Blade指令
2018/05/30 PHP
Laravel框架模板继承操作示例
2018/06/11 PHP
Windows上php5.6操作mongodb数据库示例【配置、连接、获取实例】
2019/02/13 PHP
JS代码优化技巧之通俗版(减少js体积)
2011/12/23 Javascript
JavaScript高级程序设计(第3版)学习笔记10 再访js对象
2012/10/11 Javascript
javascript的offset、client、scroll使用方法详解
2012/12/25 Javascript
简介JavaScript中Math.LOG10E属性的使用
2015/06/14 Javascript
jQuery网页右侧广告跟随滚动代码分享
2020/04/20 Javascript
jQuery ajaxSubmit 实现ajax提交表单局部刷新
2016/07/04 Javascript
BootStrapTable服务器分页实例解析
2016/12/20 Javascript
ng2学习笔记之bootstrap中的component使用教程
2017/03/09 Javascript
javascript 通过键名获取键盘的keyCode方法
2017/12/31 Javascript
js实时监控文本框输入字数的实例代码
2018/01/18 Javascript
jquery操作checkbox的常用方法总结【附测试源码下载】
2019/06/10 jQuery
Python的randrange()方法使用教程
2015/05/15 Python
python实现线程池的方法
2015/06/30 Python
利用pandas进行大文件计数处理的方法
2018/07/25 Python
Windows下安装Scrapy
2018/10/17 Python
python语言元素知识点详解
2019/05/15 Python
学习Django知识点分享
2019/09/11 Python
tensorflow实现读取模型中保存的值 tf.train.NewCheckpointReader
2020/02/10 Python
Python 开发工具PyCharm安装教程图文详解(新手必看)
2020/02/28 Python
Python reduce函数作用及实例解析
2020/05/08 Python
Python如何实现爬取B站视频
2020/05/20 Python
HTML5 新标签全部总汇(推荐)
2016/06/13 HTML / CSS
英国No.1体育用品零售商:SportsDirect.com
2019/10/16 全球购物
4S店售后客服自我评价
2014/04/09 职场文书
目标责任书范本
2014/04/16 职场文书
2016元旦晚会主持词开场白和结束语
2015/12/04 职场文书
深入解析MySQL索引数据结构
2021/10/16 MySQL
Python MNIST手写体识别详解与试练
2021/11/07 Python
python接口测试返回数据为字典取值方式
2022/02/12 Python