一、学前花絮

随着学习python的深入,我们在掌握基础知识的前提下,又学习了函数、类/对象、错误和异常、各种文件的处理等等。有了这些基础,我们可以完成很多的工作。

在大数据行业,核心问题是对各种数据的处理和管理。而数据库是其中的关键一环。Python有强大的处理数据库、表的功能,本文以mysql开源数据库为例进行说明。当然Python还支持oracle、sqlite等其他数据库,也支持国产数据库。

二、Python 连接数据库示例

2.1 连接原理

Python应用程序

数据库驱动 (mysql-connector-python / PyMySQL)

MySQL 协议

MySQL 服务器

连接过程

  1. 建立 TCP 连接:连接到 MySQL 服务器的 3306 端口
  2. 握手认证:进行身份验证和协议协商
  3. 创建会话:建立数据库会话
  4. 执行操作:发送 SQL 命令并接收结果
  5. 连接池管理:管理连接的创建和回收

2.2 主要连接驱动

mysql-connector-python (Oracle 官方)提供:

import mysql.connector

from mysql.connector import Error

PyMySQL (纯 Python 实现)

import pymysql

MySQLdb (C 扩展,仅 Python 2)

import MySQLdb

2.3 基本连接示例

使用 mysql-connector-python

使用connector连接mysql数据库

输出如下:

连接数据库成功

使用 PyMySQL

使用PymySQL连接数据库

输出结果:

连接成功

2.4 完整的数据库表增删改查操作示例

创建数据库和表

数据库建库建表操作

# 执行初始化,即可创建数据库company和表employees

initialize_database()

插入数据

在表中插入数据的insert语句

向表中插入数据:

表中插入数据行

结果如下:

Python学习【33】:python3 连接mysql 数据库的原理,并举例说明

成功插入数据

查询数据:

数据库查询语句

查询的使用方法

查询结果如下:

查询结果

更新、删除数据也是一样,建立了数据库的连接后,所有的操作只是更改了具体的sql语句内容。这里就不一一列举了。

2.5 连接池管理

使用连接池提高性能

用class实现数据库池

执行数据库查询

数据库池的使用

多线程的使用

以上程序使用了多线程实现数据库连接池功能,可以实现并发查询,提高工作效率。输出结果如下:

多线程查询结果

三、小结

今天我们学习了python连接mysql数据库,并了解了如何在python中对数据库表进行增删改查操作。数据库本身是计算机软件行业一个单独的领域,包括很多的内容。Python如同八爪鱼一样,有很多的触角,而这些触角能够延伸到包括数据库在内的众多领域。

所有的功能都是为了现实中的应用,我们之前学了各种文件的处理。而与数据库的连接,针对数据库表的操作也是非常重要的功能。

让我们保持学习热情,多做练习。我们下期再见!

快乐男孩

#python#