使用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数据库,代码如下:

import pymysql

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

执行结果:

Database version : 8.0.31 

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数据库表,代码如下:

import pymysql

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

执行结果:

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

 

4.操作MySQL数据表

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

import pymysql

# 打开数据库连接
db = pymysql.connect(host='localhost', user='root', password='root', db='pythontest_db_name')

# db = pymysql.connect("localhost", "root", "root", "mrsoft",charset="utf8")
# 使用cursor()方法获取操作游标
cursor = db.cursor()
# 数据列表
data = [("book1", 'Python', '55.5', '2022-11-5'),
        ("book2", 'Python', '66.6', '2022-11-5'),
        ("book2", 'Python', '77.7', '2022-11-5'),
        ]
try:
    # 执行sql语句,插入多条数据
    cursor.executemany("insert into books(name, category, price, publish_time) values (%s,%s,%s,%s)", data)
    # 提交数据
    db.commit()
except:
    # 发生错误时回滚
    db.rollback()

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

执行结果:

 


5. 后续补充

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值