在Python中运行SQL查询可以通过多种方式实现,其中比较常用的有使用第三方库,如SQLite3和Pandas,以及使用ORM(对象关系映射)框架如SQLAlchemy。
使用SQLite3库
SQLite3是Python内置的一个轻量级的数据库,可以用于执行SQL查询。下面是一个示例代码:
import sqlite3
# 连接到数据库
conn = sqlite3.connect('example.db')
cur = conn.cursor()
# 创建一个表
cur.execute('''CREATE TABLE IF NOT EXISTS stocks
(date text, trans text, symbol text, qty real, price real)''')
# 插入数据
cur.execute("INSERT INTO stocks VALUES ('2021-01-05', 'BUY', 'AAPL', 100, 345.67)")
# 查询数据
cur.execute("SELECT * FROM stocks")
rows = cur.fetchall()
for row in rows:
print(row)
# 提交更改并关闭连接
conn.commit()
conn.close()
上面的代码演示了如何使用SQLite3库连接到数据库、创建表、插入数据以及执行查询。
使用Pandas库
Pandas是一个用于数据处理和分析的强大库,也可以用来执行SQL查询。下面是一个示例代码:
import pandas as pd
# 创建一个DataFrame
data = {'date': ['2021-01-05'],
'trans': ['BUY'],
'symbol': ['AAPL'],
'qty': [100],
'price': [345.67]}
df = pd.DataFrame(data)
# 将DataFrame写入数据库
conn = sqlite3.connect('example.db')
df.to_sql('stocks', conn, if_exists='replace', index=False)
# 从数据库中读取数据
query = "SELECT * FROM stocks"
df = pd.read_sql_query(query, conn)
print(df)
conn.close()
这段代码展示了如何使用Pandas库将DataFrame写入数据库并执行SQL查询。
使用SQLAlchemy
SQLAlchemy是一个Python的ORM(对象关系映射)框架,可以将Python对象映射到数据库表,并通过Python代码操作数据库。下面是一个示例代码:
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
# 创建引擎
engine = create_engine('sqlite:///example.db', echo=True)
# 创建基类
Base = declarative_base()
# 创建模型类
class Stock(Base):
__tablename__ = 'stocks'
id = Column(Integer, primary_key=True)
date = Column(String)
trans = Column(String)
symbol = Column(String)
qty = Column(Integer)
price = Column(Integer)
# 创建表
Base.metadata.create_all(engine)
# 创建会话
Session = sessionmaker(bind=engine)
session = Session()
# 插入数据
stock = Stock(date='2021-01-05', trans='BUY', symbol='AAPL', qty=100, price=345.67)
session.add(stock)
session.commit()
# 查询数据
stocks = session.query(Stock).all()
for s in stocks:
print(s.id, s.date, s.trans, s.symbol, s.qty, s.price)
session.close()
这段代码展示了如何使用SQLAlchemy创建模型类、插入数据、执行查询以及关闭会话。
旅行图
journey
title How to Run SQL in Python
section Using SQLite3
Connect to Database --> Create Table --> Insert Data --> Execute Query --> Commit Changes --> Close Connection
section Using Pandas
Create DataFrame --> Write to Database --> Read from Database
section Using SQLAlchemy
Create Engine --> Create Base --> Create Model --> Create Session --> Insert Data --> Execute Query --> Close Session
类图
classDiagram
class SQLite3 {
- connect()
- cursor()
- execute()
- fetchall()
- commit()
- close()
}
class Pandas {
- DataFrame()
- to_sql()
- read_sql_query()
}
class SQLAlchemy {
- create_engine()
- declarative_base()
- sessionmaker()
- add()
- commit()
- query()
}
综上所述,我们可以通过SQLite3库、Pandas库或SQLAlchemy框架在Python中运行SQL查询。每种方法都有其特点和适用场景,开发者可以根据实际需求选择合适的方式来操作数据库。