Python面试题:在 Python 中,如何连接并操作数据库?

在 Python 中,可以使用多种库来连接并操作数据库。常用的库有 sqlite3psycopg2(用于 PostgreSQL)、PyMySQL(用于 MySQL)、SQLAlchemy(一个 ORM 工具,支持多种数据库)。下面以 SQLite 和 MySQL 为例,介绍如何连接并操作数据库。

使用 sqlite3 库操作 SQLite 数据库

  1. 连接数据库
python 复制代码
import sqlite3

# 连接到 SQLite 数据库(如果数据库不存在,会自动创建)
conn = sqlite3.connect('example.db')

# 创建游标对象
cursor = conn.cursor()
  1. 创建表
python 复制代码
# 创建表
cursor.execute('''CREATE TABLE IF NOT EXISTS users
                  (id INTEGER PRIMARY KEY AUTOINCREMENT,
                   name TEXT NOT NULL,
                   age INTEGER NOT NULL)''')
  1. 插入数据
python 复制代码
# 插入数据
cursor.execute("INSERT INTO users (name, age) VALUES ('Alice', 30)")
cursor.execute("INSERT INTO users (name, age) VALUES ('Bob', 25)")

# 提交事务
conn.commit()
  1. 查询数据
python 复制代码
# 查询数据
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()

for row in rows:
    print(row)
  1. 更新数据
python 复制代码
# 更新数据
cursor.execute("UPDATE users SET age = 26 WHERE name = 'Bob'")

# 提交事务
conn.commit()
  1. 删除数据
python 复制代码
# 删除数据
cursor.execute("DELETE FROM users WHERE name = 'Alice'")

# 提交事务
conn.commit()
  1. 关闭连接
python 复制代码
# 关闭游标和连接
cursor.close()
conn.close()

使用 PyMySQL 库操作 MySQL 数据库

  1. 安装 PyMySQL
sh 复制代码
pip install pymysql
  1. 连接数据库
python 复制代码
import pymysql

# 连接到 MySQL 数据库
conn = pymysql.connect(
    host='localhost',
    user='yourusername',
    password='yourpassword',
    database='yourdatabase'
)

# 创建游标对象
cursor = conn.cursor()
  1. 创建表
python 复制代码
# 创建表
cursor.execute('''CREATE TABLE IF NOT EXISTS users
                  (id INT AUTO_INCREMENT PRIMARY KEY,
                   name VARCHAR(255) NOT NULL,
                   age INT NOT NULL)''')
  1. 插入数据
python 复制代码
# 插入数据
cursor.execute("INSERT INTO users (name, age) VALUES ('Alice', 30)")
cursor.execute("INSERT INTO users (name, age) VALUES ('Bob', 25)")

# 提交事务
conn.commit()
  1. 查询数据
python 复制代码
# 查询数据
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()

for row in rows:
    print(row)
  1. 更新数据
python 复制代码
# 更新数据
cursor.execute("UPDATE users SET age = 26 WHERE name = 'Bob'")

# 提交事务
conn.commit()
  1. 删除数据
python 复制代码
# 删除数据
cursor.execute("DELETE FROM users WHERE name = 'Alice'")

# 提交事务
conn.commit()
  1. 关闭连接
python 复制代码
# 关闭游标和连接
cursor.close()
conn.close()

使用 SQLAlchemy 库操作数据库

  1. 安装 SQLAlchemy
sh 复制代码
pip install sqlalchemy
  1. 连接数据库
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 User(Base):
    __tablename__ = 'users'
    id = Column(Integer, primary_key=True, autoincrement=True)
    name = Column(String)
    age = Column(Integer)

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

# 创建会话
Session = sessionmaker(bind=engine)
session = Session()
  1. 插入数据
python 复制代码
# 插入数据
new_user = User(name='Alice', age=30)
session.add(new_user)
session.commit()
  1. 查询数据
python 复制代码
# 查询数据
users = session.query(User).all()
for user in users:
    print(user.name, user.age)
  1. 更新数据
python 复制代码
# 更新数据
user = session.query(User).filter_by(name='Alice').first()
user.age = 31
session.commit()
  1. 删除数据
python 复制代码
# 删除数据
user = session.query(User).filter_by(name='Alice').first()
session.delete(user)
session.commit()

这三个示例展示了如何使用 sqlite3PyMySQLSQLAlchemy 库连接并操作数据库。根据具体需求和数据库类型,可以选择合适的库来实现数据库操作。

相关推荐
zmzmzmalo2 小时前
Linux ELF文件加载与内存管理揭秘
linux·网络·数据库
安_8 小时前
如何构建和使用向量索引?HNSW 和 IVF 有什么区别?
python·ai
Super 含9 小时前
Android 启动优化(五):线程、GC 与 IO 为什么会拖慢启动?
java·服务器·数据库
counting money9 小时前
Java IO流详解:从InputStream到文件操作实战
java·开发语言·python
用户47949283569159 小时前
字节Agent开发技术分享—旧会话越聊越笨,新会话又得重讲?我给 Matt Pocock Skill 炼了套《影分身之术》:本体想清楚,分身写代码,完事回来汇报
面试·agent
ltl9 小时前
向量检索引擎选型:决策树、RAG 回链与开放问题
数据库
坚持学习前端日记9 小时前
Python SQLAlchemy ORM 从0到1精通实战手册(基础到复杂高阶)
数据库·python·oracle
灯澜忆梦9 小时前
【MySQL17】进阶篇 | InnoDB引擎
数据库·mysql
北斗落凡尘10 小时前
LangGraph 入门实战(11)--输出模式
后端·python·langchain
anxiao_m10 小时前
2026制造业云桌面选型攻略,不同生产场景适配方案汇总
大数据·网络·数据库