阅读量:3
1. MySQL 简介
MySQL 是一个开源的关系型数据库管理系统(RDBMS),广泛用于各种应用程序,支持多种操作系统。它使用 SQL 语言进行数据查询、管理和操作。
2. MySQL 的主要特点
- 跨平台:支持多种操作系统,如 Linux、Windows、Mac OS 等。
- 高性能:优化的查询处理和缓存机制,提供高并发处理能力。
- 安全性:提供用户认证、访问控制和数据加密等安全机制。
- 易用性:通过图形界面和命令行工具简化数据库管理。
3. Python 连接 MySQL
Python 通过 pymysql
库可以方便地与 MySQL 数据库进行交互。以下是一些基础操作的示例。
3.1 安装 pymysql
首先需要安装 pymysql
库:
pip install pymysql
3.2 连接数据库
使用 pymysql
连接 MySQL 数据库:
from pymysql import Connection conn = Connection( host="localhost", # 主机名(IP) port=3306, # 端口 user="root", # 账户 password="123456", # 密码 autocommit=True # 设置自动提交 )
3.3 选择数据库
conn.select_db("py_sql")
3.4 执行 SQL 语句
cursor = conn.cursor() # 获取到游标对象 cursor.execute("insert into student values(10001, '周杰轮', 31, '男')")
3.5 查询数据
cursor.execute("SELECT * FROM orders") result = cursor.fetchall() for r in result: print(r)
3.6 关闭连接
conn.close()
4. 数据导入与导出
4.1 从文本文件导入数据
假设有一个文本文件 D:/2011年1月销售数据.txt
,我们可以使用自定义的 TextFileReader
类读取数据,并将其导入到 MySQL 数据库中。
from file_define_mysql import TextFileReader from data_define_mysql import Record from pymysql import Connection text_file_reader = TextFileReader("D:/2011年1月销售数据.txt") jan_data: list[Record] = text_file_reader.read_data() conn = Connection( host="localhost", port=3306, user="root", password="123456", autocommit=True ) cursor = conn.cursor() conn.select_db("py_sql") for record in jan_data: sql = f"insert into orders(order_date, order_id, money, province) " \ f"values('{record.date}', '{record.order_id}', {record.money}, '{record.province}')" cursor.execute(sql) conn.close()
4.2 从 JSON 文件导入数据
类似地,可以从 JSON 文件读取数据并导入到 MySQL 数据库中。
from file_define_mysql import JsonFileReader from data_define_mysql import Record from pymysql import Connection json_file_reader = JsonFileReader("D:/2011年2月销售数据JSON.txt") feb_data: list[Record] = json_file_reader.read_data() conn = Connection( host="localhost", port=3306, user="root", password="123456", autocommit=True ) cursor = conn.cursor() conn.select_db("py_sql") for record in feb_data: sql = f"insert into orders(order_date, order_id, money, province) " \ f"values('{record.date}', '{record.order_id}', {record.money}, '{record.province}')" cursor.execute(sql) conn.close()
4.3 从 MySQL 导出数据到 JSON 文件
将 MySQL 中的数据导出到 JSON 文件。
from data_define_mysql import Record from pymysql import Connection f = open("d:/output.json", "w", encoding="UTF-8") conn = Connection( host="localhost", port=3306, user="root", password="123456", autocommit=True ) cursor = conn.cursor() conn.select_db("py_sql") cursor.execute("SELECT * FROM orders") result = cursor.fetchall() for r in result: record = Record(r[0], r[1], r[2], r[3]) f.write(record.to_json()) f.write("\n") conn.close() f.close()
5. 注意事项
- 数据安全:在处理敏感数据时,确保使用加密连接和安全密码。
- 错误处理:在实际应用中,应添加错误处理逻辑,确保程序的健壮性。
- 性能优化:在处理大量数据时,考虑使用批处理和索引优化查询性能。
通过以上示例和说明,可以基本掌握 Python 与 MySQL 的交互操作,实现数据的导入、导出和管理。