码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 使用python操作mysql数据库


    1. 前言

    mysql是一款开源的数据库软件,具有免费特性。

    本篇主要记录 使用python操作mysql数据库的代码。

    预先装好了mysql 8.0.31 和 Navicat Premium 16 。

    2.安装PyMySQL并连接数据库

    由于 MySQL服务器以独立的进程运行,并通过网络对外发布,所以,需要支持python的  MySQL驱动来连接到 MySQL服务器。在python中支持MySQL的数据库模块很多,我选择是使PyMySQL。

    安装PyMySQL可以cmd命令(pip install PyMySQL)安装,也可以pycharm一键安装。

    操作MySQL数据库的方式和SQLite相似。在安装数据库时设置了数据库的用户名和密码,现在就通过以上信息,使用connect()方式连接MySQL数据库,代码如下:

    1. import pymysql
    2. # 打开数据库连接,参数1:主机名或IP;参数2:用户名;参数3:密码;参数4:数据库名称
    3. db = pymysql.connect(host='localhost', user='root', password='root', db='')
    4. # 使用 cursor() 方法创建一个游标对象 cursor
    5. cursor = db.cursor()
    6. # 使用 execute() 方法执行 SQL 查询
    7. cursor.execute("SELECT VERSION()")
    8. # 使用 fetchone() 方法获取单条数据.
    9. data = cursor.fetchone()
    10. print("Database version : %s " % data)
    11. # 关闭数据库连接
    12. db.close()

    执行结果:

    1. Database version : 8.0.31
    2. Process finished with exit code 0

    有关pymysql的其他用法可以查看:pymysql详解(connect连接、游标cursor、获取查询结果集、获取实时数据、解决查询数据为历史数据问题、insert into需要注意的地方)_XC_SunnyBoy的博客-CSDN博客_pymysql获取查询结果

    3. 创建数据库表

    数据库连接成功后,接下来就可以为数据库创建数据库表了。

    创建数据库表使用execute()方法,这里使用该方法在“pythontest_db_name”数据库中创建一个books图书表,books图书表包含id\name\category\price\publish_time 5个字段。

    如果数据库中已经存在了books,那么先删除books,然后再创建books数据库表,代码如下:

    1. import pymysql
    2. # 打开数据库连接
    3. db = pymysql.connect(host='localhost', user='root', password='root', db='pythontest_db_name')
    4. # 使用 cursor() 方法创建一个游标对象 cursor
    5. cursor = db.cursor()
    6. # 使用 execute() 方法执行 SQL,如果表存在则删除
    7. cursor.execute("DROP TABLE IF EXISTS books")
    8. # 使用预处理语句创建表
    9. sql = """
    10. CREATE TABLE books (
    11. id int(8) NOT NULL AUTO_INCREMENT,
    12. name varchar(50) NOT NULL,
    13. category varchar(50) NOT NULL,
    14. price decimal(10,2) DEFAULT NULL,
    15. publish_time date DEFAULT NULL,
    16. PRIMARY KEY (id)
    17. ) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
    18. """
    19. # 执行SQL语句
    20. cursor.execute(sql)
    21. # 关闭数据库连接
    22. db.close()

    执行结果:

    打开navicat,发现pythontest_db_name数据库下多了一个books表。

     

    4.操作MySQL数据表

    MySQL数据表的操作主要是数据的增删改查,与操作SQLite类似。代码如下:

    1. import pymysql
    2. # 打开数据库连接
    3. db = pymysql.connect(host='localhost', user='root', password='root', db='pythontest_db_name')
    4. # db = pymysql.connect("localhost", "root", "root", "mrsoft",charset="utf8")
    5. # 使用cursor()方法获取操作游标
    6. cursor = db.cursor()
    7. # 数据列表
    8. data = [("book1", 'Python', '55.5', '2022-11-5'),
    9. ("book2", 'Python', '66.6', '2022-11-5'),
    10. ("book2", 'Python', '77.7', '2022-11-5'),
    11. ]
    12. try:
    13. # 执行sql语句,插入多条数据
    14. cursor.executemany("insert into books(name, category, price, publish_time) values (%s,%s,%s,%s)", data)
    15. # 提交数据
    16. db.commit()
    17. except:
    18. # 发生错误时回滚
    19. db.rollback()
    20. # 关闭数据库连接
    21. db.close()

    执行结果:

     


    5. 后续补充

  • 相关阅读:
    网络流量预测工具
    北京优秀律师事务所排名(前十名权威推荐)
    基于FPGA的高速数据采集系统实现
    JMeter笔记4 | JMeter界面介绍
    [12 种安卓数据恢复方案] 最佳免费 Android 照片恢复工具榜单
    【kubernetes】关于云原生之k8s集群的pod理论详解
    [附源码]Python计算机毕业设计SSM乐多多宠物店网站(程序+LW)
    闭关之 Vulkan 应用开发指南笔记(三): 着色器和管线、图形管线
    猿创征文| 六款我的开发者宝藏工具箱
    百度飞桨AI4S亮相全国动力学设计与反问题研讨会,助力汽车底盘智能设计
  • 原文地址:https://blog.csdn.net/qq_33163046/article/details/127704049
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号