软硬件环境
- windows 10 64bit
- Python 3.7.4
- mysql 8.0.20
- pymysql
前言
在开发中经常涉及到数据库的使用,而mysql是使用最为广泛的关系型数据库,因为它开源、免费。本文就来使用python语言来操作mysql数据库。
安装mysql
来到mysql的官方网站下载安装包 https://dev.mysql.com/downloads/installer/,目前的版本已经到了8.0.20,下载完成后,双击msi文件进行安装,选择自定义安装

在左侧选择需要安装的,点击向右的箭头,右侧的框中是要安装的组件,这里我们只安装server和管理工具workbench




默认使用的端口号是3306,保持默认

设置超级用户root的密码,如果需要添加普通用户,选择下方的Add User





安装完毕后,使用workbench创建一个数据库连接,填上ip、端口和用户名

使用root账户登录数据库

创建一个数据库,名称是testdb,字符编码是utf8

接下来,新建一张表,表名是testtable,有三个字段
id,数据类型是INT(11),设为主键、唯一、非空、UNSIGNED、AUTO INCREMENTname,数据类型是VARCHAR(45),设为非空sex,数据类型是VARCHAR(45),设为非空


实例源码
这里我们使用pymysql这个库来操作数据库,首先通过pip来安装
pip install pymysql
数据库的基本操作就是增(Create)、查(Retrieve)、改(Update)、删(Delete),就是所谓的CRUD,下面通过实例一个一个的来操作
import pymysql
# 数据库连接
db = pymysql.connect("localhost", "root", "toor", "testdb")
cursor = db.cursor()
# 插入操作
try:
# 执行sql语句
cursor.execute("INSERT INTO testtable(name, sex) VALUES('xgx', 'male')")
# 提交到数据库执行
db.commit()
except:
# 如果发生错误则回滚
db.rollback()
# 查询操作
try:
# 执行SQL语句,返回的是满足查询条件的记录数量
cursor.execute("SELECT * FROM testtable")
# 获取所有记录列表,除了fetchall方法,pymysql还提供了fetone()、fetchmany()
results = cursor.fetchall()
for row in results:
name = row[1]
sex = row[2]
# 打印结果
print("name: {}, sex: {}".format(name, sex))
except:
print ("Error: unable to fetch data")
# 更新记录
try:
# 执行sql语句
cursor.execute("UPDATE testtable SET sex='female' WHERE id=4")
# 提交到数据库执行
db.commit()
except:
# 如果发生错误则回滚
db.rollback()
# 删除操作
try:
# 执行SQL语句
cursor.execute("DELETE FROME testtable WHERE id=4")
# 提交修改
db.commit()
except:
# 发生错误时回滚
db.rollback()
# 关闭数据库连接
db.close()
ubuntu安装mysql
如果你的系统是ubuntu,可以参考 ubuntu安装mysql 进行安装