软硬件环境
- 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 INCREMENT
name
,数据类型是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 进行安装