在Python中操作MySQL通常使用以下五种方式:
- 使用Python标准库
sqlite3
- 使用
MySQLdb
(已废弃,但仍可用) - 使用
mysqlclient
- 使用
PyMySQL
- 使用
SQLAlchemy
以下是每种方式的示例代码:
- 使用
sqlite3
(仅适用于SQLite数据库,不适合MySQL):
import sqlite3
conn = sqlite3.connect('database.db')
cursor = conn.cursor()
cursor.execute('''CREATE TABLE IF NOT EXISTS stocks
(date text, trans text, symbol text, qty real, price real)''')
cursor.execute("INSERT INTO stocks VALUES ('2020-01-05','BUY','RHAT',100,35.14)")
conn.commit()
cursor.close()
- 使用
MySQLdb
(已废弃,不推荐):
import MySQLdb
conn = MySQLdb.connect(host="localhost", user="user", passwd="password", db="mydb")
cursor = conn.cursor()
cursor.execute("INSERT INTO mytable (field1, field2) VALUES ('value1', 'value2')")
conn.commit()
cursor.close()
- 使用
mysqlclient
:
import mysql.connector
conn = mysql.connector.connect(user='user', password='password', host='localhost', database='mydb')
cursor = conn.cursor()
cursor.execute("INSERT INTO mytable (field1, field2) VALUES (%s, %s)", ('value1', 'value2'))
conn.commit()
cursor.close()
- 使用
PyMySQL
:
import pymysql
conn = pymysql.connect(host='localhost', user='user', password='password', db='mydb')
cursor = conn.cursor()
cursor.execute("INSERT INTO mytable (field1, field2) VALUES (%s, %s)", ('value1', 'value2'))
conn.commit()
cursor.close()
- 使用
SQLAlchemy
:
from sqlalchemy import create_engine
engine = create_engine('mysql+pymysql://user:password@localhost/mydb')
with engine.connect() as conn:
conn.execute("INSERT INTO mytable (field1, field2) VALUES (%s, %s)", ('value1', 'value2'))
注意:在实际应用中,请根据你的环境配置(如Python版本、MySQL服务器类型等)选择合适的库,并确保已安装相关依赖。以上代码仅为操作MySQL的示例,并未包含完整的错误处理和其他生产环境中可能需要的参数配置。