前言
Python
作为数据科学、机器学习等领域的必选武器,备受各界人士的喜爱。当你面对不同类型、存储于各类介质的数据时,第一时间是不是要让它亮个相?做个统计,画个图表,搞个报表… 等等。
正如Java中的JdbcDriver
一样,Python中也有同样角色的库。比如今天博主正要介绍的mysql-connector-python
,它是Python中操作数据库的常用工具,我们先从它说起吧,Let’s go~
一、mysql-connector-python
1. 简介
Python中连接mysql有各种工具支持,博主推荐使用mysql-connector-python
,它是MySQL官方提供的标准工具,依赖少,查询方便。
2. 安装
在python中安装mysql-connector-python
很简单,只需执行如下命令:
# 使用清华源
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple mysql-connector-python
安装过程:
安装结果:
二、数据操作教程(源码)
安装mysql-connector-python
完成后,我们可以尽情的玩耍玩耍,先来看看如何连接。
1. 创建连接
我们可通过mysql.connector.connect
创建连接,示例代码:
connection = mysql.connector.connect(
host=[HOST_NAME],
user=[USERNAME],
passwd=[PASSWORD],
database=[DATABASE]
)
其中,它支持哪些参数,我们来看看:
参数 | 说明 |
---|---|
host | 数据库主机IP |
port | 数据库端口,默认3306 |
user | 数据库用户 |
password | 数据库密码 |
database | 数据库名称 |
autocommit | 是否自动提交事务,默认为False |
charset | 字符编码 |
pool_name | 连接池名称 |
pool_size | 连接池大小 |
2. 查询
创建连接后,先做一个查询吧(代码已封装,请参考执行):
import mysql.connector
from mysql.connector import Error
class MysqlUtil:
def __init__(self, host_name, user_name, passwd, db_name):
self.host_name = host_name
self.user_name = user_name
self.passwd = passwd
self.db_name = db_name
def get_connection(self):
connection = None
try:
connection = mysql.connector.connect(
host=self.host_name,
user=self.user_name,
passwd=self.passwd,
database=self.db_name
)
print("恭喜你,成功连接MySQL")
except Error as e:
print(f"异常啦,原因: '{e}'")
return connection
def query(self,conn, sql):
try:
cursor = conn.cursor()
cursor.execute(sql)
return cursor
except Error as e:
print(f"异常啦,原因: '{e}'")
if __name__ == '__main__':
# 连接信息
host = '127.0.0.1'
user = 'root'
password = '123456'
database = 'mysql'
# 创建连接
mysql_util = MysqlUtil(host, user, password, database)
conn = mysql_util.get_connection()
# 查询
sql = 'select * from 表名'
my_cursor = mysql_util.query(conn, sql)
result = my_cursor.fetchall()
print(f'查询记录数:{len(result)}')
# 关闭游标
my_cursor.close()
# 关闭连接
conn.close()
提示
:查询完成后,一定要关闭游标和连接。
3. 新增
新增记录时,可在查询源码的基础上,封装一个insert
函数:
# 插入记录
def insert(self, conn, sql, val):
try:
cursor = conn.cursor()
cursor.execute(sql,val)
return cursor
except Error as e:
print(f"异常啦,原因: '{e}'")
在main
函数中,进行测试:
# 创建连接
mysql_util = MysqlUtil(host, user, password, database)
conn = mysql_util.get_connection()
# SQL
sql = "INSERT INTO 表名(id,name) VALUES (%s, %s)"
val = ('1','python')
mysql_util.insert(conn,sql, val)
# 提交
conn.commit()
# 关闭连接
conn.close()
4. 删除
同理,删除我们也可以封装一个delete
函数,因为和insert
类似,这里不再呈现。只需调整执行的SQL即可:
# SQL
sql = "delete from 表名 where name=%s"
val = ('python',)
5. 事务
在创建游标前,我们可以主动开启一个事务:
conn = mysql_util.get_connection()
# 开始事务
conn.start_transaction()
""" 数据操作 """
最后一步很重要,一定要提交哦:
# 提交事务
conn.commit()
6. 其他
其他场景比如按条件查询,删除表,清空表等操作,均可通过改变SQL的方式,执行相关数据操作。这里不再一一罗列,是不是很简单?
结语
mysql-connector-python
是一款mysql官方支持的数据库工具,博主通过示例呈现了它的能力和优势,希望对你有帮助。
走过的、路过的盆友们,点点赞,收收藏,并加以指导,以备不时之需哈~