mysql-connector 是 MySQL 官方提供的驱动器,本文也是使用 mysql-connector 来连接使用 MySQL。
安装
使用 pip 命令来安装 mysql-connector:
pip install mysql-connector
若安装的 MySQL是8.0 版本,由于在 MySQL 8.0 中验证插件和密码加密方式发生了变化,caching_sha2_password是默认的身份验证插件,而不是早期 mysql_native_password。所以需要做些改变,先修改 my.ini 配置:
![f6a3533e92d5b6384189da66857e41ef.png](https://i-blog.csdnimg.cn/blog_migrate/361345fa38dfb31c8c364a58a7bbb5c8.jpeg)
然后在 MySQL 下执行以下命令来修改密码,如下
![5f7d70d6bb2bde640303aafe1f4b373c.png](https://i-blog.csdnimg.cn/blog_migrate/53ce931a5fe652ba63e09380231dd451.jpeg)
创建数据库连接
![c2328ad214e6ba3d8455b069eb0f62dc.png](https://i-blog.csdnimg.cn/blog_migrate/24d2cc8c681cd663413a3efc8fd90edd.jpeg)
创建数据库
按照MySQL的sql语法,创建数据库,以下创建了一个名为testops的数据库。
![d63f577633894f8287a382736fce270d.png](https://i-blog.csdnimg.cn/blog_migrate/bdc95a18a22c4a295e6cc0f5b8a0bb5d.jpeg)
创建数据表
按照MySQL的SQL语法,编写建表语句,如下:
![f5b30d66b35eef713a143fd034b5e760.png](https://i-blog.csdnimg.cn/blog_migrate/9fe322c78dafc03a59cb18ac62d6e938.jpeg)
Python 实现如下:
![6f558a99a933e4741b51b7b2fceb3e42.png](https://i-blog.csdnimg.cn/blog_migrate/6a8ab012b0fc5d7d82e343244ea68611.jpeg)
插入数据
按照MySQL的SQL语法,编写数据插入语句,如下:
![517d8090771bddb1e912597b783a40f6.png](https://i-blog.csdnimg.cn/blog_migrate/29873941af6471dc076032ff9e097bdb.jpeg)
Python 实现如下:
![ad75ed98155c6ef6e7afa2623f685729.png](https://i-blog.csdnimg.cn/blog_migrate/7dab27a68299d67d43f3ae2e0775d2b4.jpeg)
若批量插入数据可以使用如下方式:
![0e4857cb85efa11d759dda58c98cfec5.png](https://i-blog.csdnimg.cn/blog_migrate/61a90f36d7222b4bddfbdd034a69ef46.jpeg)
查询数据
按照MySQL的SQL语法,编写数据查询语句,如下
![bc0d40de933353b44e9433435a233ae0.png](https://i-blog.csdnimg.cn/blog_migrate/329b0014eb3ab70e4143b3cbd6056483.jpeg)
Python 实现如下:
![1397196a34051652d5fe90d82b98aa75.png](https://i-blog.csdnimg.cn/blog_migrate/f6a09b78bc301219b367ae6822585138.jpeg)
获取数据库查询结果的几种方式如下:
- fetchone:查询时获取结果集的第一行数据,返回一个元组,该元组元素即为第一行数据,如果没有则为NULL(在Python中使用为None)。
- fetchall:查询时获取结果集中的所有行(嵌套元组),一行为一个元组,然后再将这些元组返回。
更新操作
按照MySQL的SQL语法,编写数据更新语句,如下
![26b67284f23c2377f8040a2d05901b52.png](https://i-blog.csdnimg.cn/blog_migrate/1ea9b7f9eecccef7e901ffaf2be4dc7f.jpeg)
Python 实现如下:
![312c32e1c3badb519841e01c3c0a57e4.png](https://i-blog.csdnimg.cn/blog_migrate/a70f5b684d2d90ddc1550483e4b45456.jpeg)
删除数据
按照MySQL的SQL语法,编写数据查询语句,如下
![7e01ebfca50c3b75b0b6cb61674b9cac.png](https://i-blog.csdnimg.cn/blog_migrate/23f397946b9b804b7a047dd1982d66f5.jpeg)
Python 实现如下:
![054c22f3de63ed33257f2743da113808.png](https://i-blog.csdnimg.cn/blog_migrate/371bd570f1653d93abe0acd51c1d8d0f.jpeg)
总结起来,只要符合的MySQL的SQL语法规则,按照打开数据库连接、获取操作游标,执行sql语句,提交数据库的固定顺序即可进行数据库的增删改查。
![9c13eb295bf9c7166b21f1eacbdef925.gif](https://i-blog.csdnimg.cn/blog_migrate/209c288d90173ec491440c8ad305d2fe.gif)