【5.0】基础串联之pymysql
【一】pymysql简解
- pymysql 是一个用于 Python 的第三方模块,用于连接并操作 MySQL 数据库。
- 它是 Python 官方提供的 MySQLdb 模块的一个替代方案,具有更好的兼容性和性能。
【二】使用方法
【1】安装 pymysql:
- 可以通过 pip 命令进行安装:
pip install pymysql
【2】连接到数据库:
- 在使用 pymysql 之前,需要先建立与 MySQL 数据库的连接。
- 连接的方法如下所示:
import pymysql
# 建立连接
conn = pymysql.Connect(
host='localhost',
port=3306,
user='username',
password='password',
db='database_name',
charset='utf8'
)
【3】创建游标并执行 SQL 语句:
- 在连接成功后,需要创建一个游标对象,用于执行 SQL 查询和操作。
- 游标对象的创建方式如下:
# 创建游标对象
cursor = conn.cursor()
【3】执行 SQL 查询:
- pymysql 提供了多个方法用于执行查询语句
- 如
execute()
和executemany()
等。
- 如
- 执行查询语句的示例代码如下:
# 执行查询语句
cursor.execute("SELECT * FROM table_name")
# 获取查询结果
result = cursor.fetchall()
【4】执行 SQL 更新和操作:
- 对于更新和操作类的 SQL 语句
- 可以使用
execute()
方法执行。
- 可以使用
- 执行更新操作的示例代码如下:
# 执行更新操作
cursor.execute("UPDATE table_name SET column1='value' WHERE column2='condition'")
# 提交事务
conn.commit()
【5】关闭连接:
- 在完成所有数据库操作后,需要关闭连接,释放资源。
- 关闭连接的方法如下:
# 关闭游标
cursor.close()
# 关闭连接
conn.close()
【三】封装成类
- 当使用 pymysql 进行数据库操作时,可以通过类封装的方式来组织代码,提高代码的可复用性和可维护性。
- 下面是一个示例,展示如何使用类封装 pymysql 的方法:
import pymysql
class MySQLHelper:
def __init__(self, host, port, user, password, db, charset='utf8'):
self.conn = pymysql.connect(
host=host,
port=port,
user=user,
password=password,
db=db,
charset=charset
)
self.cursor = self.conn.cursor()
def execute_query(self, query):
self.cursor.execute(query)
result = self.cursor.fetchall()
return result
def execute_update(self, update):
self.cursor.execute(update)
self.conn.commit()
def close(self):
self.cursor.close()
self.conn.close()
-
上述代码定义了一个名为
MySQLHelper
的类- 该类具有连接数据库、执行查询、执行更新以及关闭连接等方法。
-
在使用时
- 可以先创建一个
MySQLHelper
对象 - 并传入参数以建立与数据库的连接
- 然后使用该对象调用相应的方法进行数据库操作。
- 示例如下:
- 可以先创建一个
# 创建 MySQLHelper 对象
db_helper = MySQLHelper(
host='localhost',
port=3306,
user='username',
password='password',
db='database_name',
charset='utf8'
)
# 执行查询操作
result = db_helper.execute_query("SELECT * FROM table_name")
print(result)
# 执行更新操作
db_helper.execute_update("UPDATE table_name SET column1='value' WHERE column2='condition'")
# 关闭连接
db_helper.close()
- 通过使用类进行封装,可以将数据库操作的逻辑集中在一个类中,提高代码的可读性和可维护性。
- 同时,还可以对该类进行扩展,添加其他常用的数据库操作方法,以满足不同的业务需求。
【进阶方法】
【1】连接数据库:
- 在
__init__
方法中使用pymysql.connect()
方法连接到数据库。
def __init__(self, host, port, user, password, db, charset='utf8'):
self.conn = pymysql.connect(
host=host,
port=port,
user=user,
password=password,
db=db,
charset=charset
)
self.cursor = self.conn.cursor()
【2】执行查询操作:
- 使用
execute_query()
方法执行 SELECT 查询语句,并返回查询结果。
def execute_query(self, query):
self.cursor.execute(query)
result = self.cursor.fetchall()
return result
【3】执行更新操作:
- 使用
execute_update()
方法执行 INSERT、UPDATE 或 DELETE 操作,然后调用commit()
方法提交更改。
def execute_update(self, update):
self.cursor.execute(update)
self.conn.commit()
【4】关闭连接:
- 在类的
close()
方法中关闭游标和连接。
def close(self):
self.cursor.close()
self.conn.close()
【5】常用的 SQL 命令:
- CREATE TABLE:创建表格。
- SELECT:从数据库中检索数据。
- INSERT INTO:将新记录插入到表中。
- UPDATE:更新表中的数据。
- DELETE FROM:从表中删除数据。
【6】集成类
class MySQLHelper:
# ...
def create_table(self, table_name, columns):
query = f"CREATE TABLE {table_name} ({columns})"
self.cursor.execute(query)
self.conn.commit()
def select(self, table_name, columns='*', condition=''):
query = f"SELECT {columns} FROM {table_name}"
if condition:
query += f" WHERE {condition}"
self.cursor.execute(query)
result = self.cursor.fetchall()
return result
def insert(self, table_name, values):
query = f"INSERT INTO {table_name} VALUES ({values})"
self.cursor.execute(query)
self.conn.commit()
def update(self, table_name, set_values, condition):
query = f"UPDATE {table_name} SET {set_values} WHERE {condition}"
self.cursor.execute(query)
self.conn.commit()
def delete(self, table_name, condition):
query = f"DELETE FROM {table_name} WHERE {condition}"
self.cursor.execute(query)
self.conn.commit()
- 通过上述代码
- 你可以使用
create_table()
方法来创建表 - 使用
select()
方法来查询表中的数据 - 使用
insert()
方法来插入新记录 - 使用
update()
方法来更新表中的数据 - 使用
delete()
方法来删除表中的数据。
- 你可以使用
本文来自博客园,作者:Chimengmeng,转载请注明原文链接:https://www.cnblogs.com/dream-ze/p/17581825.html