欢迎访问宙启技术站
智能推送

使用Python的db()函数与其他编程语言进行数据库交互的方法和技巧

发布时间:2023-12-18 20:40:34

在Python中,我们可以使用不同的模块和库与数据库进行交互。其中,常用的方法是使用Python自带的SQLite3模块、第三方模块如psycopg2和MySQLdb,或者使用ORM(对象关系映射)库如SQLAlchemy。

1. 使用SQLite3模块:

SQLite3是Python的标准库,适用于小型应用和原型开发。以下是使用SQLite3进行数据库交互的例子:

import sqlite3

# 连接到数据库
conn = sqlite3.connect('example.db')

# 创建一个游标对象
cursor = conn.cursor()

# 创建一个表
cursor.execute('''CREATE TABLE stocks
                  (date text, trans text, symbol text, qty real, price real)''')

# 插入一行数据
cursor.execute("INSERT INTO stocks VALUES ('2006-01-05','BUY','RHAT',100,35.14)")

# 保存更改
conn.commit()

# 查询数据
cursor.execute("SELECT * FROM stocks")
rows = cursor.fetchall()
for row in rows:
    print(row)

# 关闭游标和数据库连接
cursor.close()
conn.close()

2. 使用psycopg2模块(与PostgreSQL交互):

psycopg2是一个流行的与PostgreSQL数据库交互的库。以下是一个使用psycopg2连接到数据库、插入数据并查询的例子:

import psycopg2

# 连接到数据库
conn = psycopg2.connect(database="mydb", user="myuser", password="mypassword", host="localhost", port="5432")

# 创建一个游标对象
cursor = conn.cursor()

# 插入一行数据
cursor.execute("INSERT INTO stocks (date, trans, symbol, qty, price) VALUES (%s, %s, %s, %s, %s)",
               ('2006-01-05', 'BUY', 'RHAT', 100, 35.14))

# 保存更改
conn.commit()

# 查询数据
cursor.execute("SELECT * FROM stocks")
rows = cursor.fetchall()
for row in rows:
    print(row)

# 关闭游标和数据库连接
cursor.close()
conn.close()

3. 使用MySQLdb模块(与MySQL交互):

MySQLdb是一个用于与MySQL数据库交互的Python库。以下是一个使用MySQLdb连接到数据库、插入数据并查询的例子:

import MySQLdb

# 连接到数据库
conn = MySQLdb.connect(host="localhost", user="myuser", passwd="mypassword", db="mydb")

# 创建一个游标对象
cursor = conn.cursor()

# 插入一行数据
cursor.execute("INSERT INTO stocks (date, trans, symbol, qty, price) VALUES (%s, %s, %s, %s, %s)",
               ('2006-01-05', 'BUY', 'RHAT', 100, 35.14))

# 保存更改
conn.commit()

# 查询数据
cursor.execute("SELECT * FROM stocks")
rows = cursor.fetchall()
for row in rows:
    print(row)

# 关闭游标和数据库连接
cursor.close()
conn.close()

4. 使用SQLAlchemy:

SQLAlchemy是一个强大而灵活的ORM库,可以与多种数据库进行交互。以下是使用SQLAlchemy进行数据库交互的例子:

from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base

# 创建一个引擎对象
engine = create_engine('sqlite:///example.db')

# 创建一个会话对象
Session = sessionmaker(bind=engine)
session = Session()

# 创建一个模型类
Base = declarative_base()

class Stock(Base):
    __tablename__ = 'stocks'
    date = Column(String, primary_key=True)
    trans = Column(String)
    symbol = Column(String)
    qty = Column(Integer)
    price = Column(Integer)

# 创建表
Base.metadata.create_all(engine)

# 插入一行数据
stock = Stock(date='2006-01-05', trans='BUY', symbol='RHAT', qty=100, price=35.14)
session.add(stock)
session.commit()

# 查询数据
stocks = session.query(Stock).all()
for stock in stocks:
    print(stock.date, stock.trans, stock.symbol, stock.qty, stock.price)

# 关闭会话
session.close()

这些例子展示了使用Python与数据库进行交互的一些常用方法和技巧。根据具体的数据库类型和需求,选择合适的模块和库以及使用适当的操作方法可以更好地实现数据库交互。