前言
连接Mysql一般有几种方法,主要讲解mysql.connector以及pymysql的连接
后续如果用到其他库还会持续总结!
对于数据库中的表格,本人设计如下:(为了配合下面的操作)
1. mysql.connector
mysql.connector
是一个用于连接 MySQL 数据库的 Python 模块,它提供了一个官方的 MySQL 驱动程序,用于在 Python 中执行与 MySQL 数据库的交互。
概念:
连接器(Connector)
: mysql.connector 是 MySQL 官方提供的一个 Python 连接器,用于在 Python 程序中连接和操作 MySQL 数据库。游标(Cursor)
: 游标是用于执行 SQL 语句并获取结果的对象。通过游标,可以执行查询、插入、更新、删除等数据库操作。
执行代码前,需要安装如下包:pip install mysql-connector-python
示例代码如下:
import datetime
import mysql.connector
# 建立数据库连接
db_connection = mysql.connector.connect(
host="your_host", # 数据库主机地址
user="your_username", # 数据库用户名
password="your_password", # 数据库密码
database="your_database" # 数据库名称
)
if "__main__" == __name__:
try:
# 创建游标对象
cursor = db_connection.cursor()
# 示例1: 执行插入
insert_query = "INSERT INTO test_student (username,delete_flag,time) VALUES (%s, %s, %s)"
data = ('manong',0,datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
cursor.execute(insert_query, data)
# 提交事务
db_connection.commit()
# 执行 SQL 查询或操作
cursor.execute("SELECT * FROM test_student")
# 获取查询结果
result = cursor.fetchall()
for row in result:
print(row)
finally:
# 关闭游标和连接
cursor.close()
db_connection.close()
截图如下:
2. pymysql
pymysql 是一个纯 Python 实现的 MySQL 客户端库,用于在 Python 中连接和操作 MySQL 数据库。
DB-API 2.0 兼容: pymysql 遵循 Python 数据库 API 规范,使得在使用时更容易与其他数据库连接库切换。
对于作用以及API,与上述代码一致,只需要把包名替换即可!
运行前,先安装pymsql:pip install pymysql
修改的代码如下:
import pymysql
# 建立数据库连接
db_connection = pymysql.connect(
host="your_host", # 数据库主机地址
user="your_username", # 数据库用户名
password="your_password", # 数据库密码
database="your_database" # 数据库名称
)
最终截图如下:
由于pymysql
比mysql.connector
要更加常用(但两者代码又差不多),所以在此处科普其他的CRUD,现已有插入和查询
如果是删除数据,示例代码:
if "__main__" == __name__:
try:
# 创建游标对象
cursor = db_connection.cursor()
# 示例1: 执行删除
delete_query = "DELETE FROM test_student WHERE id = 9"
cursor.execute(delete_query)
# 提交事务
db_connection.commit()
# 执行 SQL 查询或操作
cursor.execute("SELECT * FROM test_student")
# 获取查询结果
result = cursor.fetchall()
for row in result:
print(row)
except:
db_connection.rollback();
finally:
# 关闭游标和连接
cursor.close()
db_connection.close()
截图如下:
增加一张表:
if "__main__" == __name__:
try:
# 创建游标对象
cursor = db_connection.cursor()
# 示例1: 创建一张表
create_query = """CREATE TABLE test_student1 (
username CHAR(20) NOT NULL,
age INT,
sex CHAR(1) )"""
cursor.execute(create_query)
# 示例1: 执行插入
insert_query = "INSERT INTO test_student1 (username,age,sex) VALUES (%s, %s, %s)"
data = ('manong', 18, 1)
cursor.execute(insert_query, data)
# 执行 SQL 查询或操作
cursor.execute("SELECT * FROM test_student1")
# 获取查询结果
result = cursor.fetchall()
for row in result:
print(row)
# 提交事务
db_connection.commit()
except:
db_connection.rollback();
finally:
# 关闭游标和连接
cursor.close()
db_connection.close()
截图如下:
数据库表如下: