数据库连接轻松搞定:Python 数据库推荐
SQLite3:轻巧便捷的数据库连接#
首先,让我们认识一下 SQLite3 这个轻巧便捷的库。它是 Python 中自带的数据库模块,适用于小型应用和快速原型开发。
让我们来看看 SQLite3 的魔法:
import sqlite3
## 连接数据库
conn = sqlite3.connect("mydatabase.db")
## 创建表格
cursor = conn.cursor()
cursor.execute("CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)")
## 插入数据
cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ("Alice", 25))
cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ("Bob", 30))
## 查询数据
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()
for row in rows:
print(row)
## 关闭连接
conn.close()
运行上述代码,你将看到插入的数据和查询结果输出在终端上,SQLite3 让数据库连接变得如此简单!
MySQL Connector:连接MySQL#
接下来,我们要介绍 MySQL Connector 这个强大的库。它是用于连接 MySQL 数据库的官方驱动,适用于中小型应用和生产环境。
MySQL Connector 的安装非常简单,使用以下命令:
pip install mysql-connector-python
让我们看看 MySQL Connector 的魔法:
import mysql.connector
## 连接数据库
conn = mysql.connector.connect(
host="localhost",
user="root",
password="your_password",
database="mydatabase"
)
## 创建表格
cursor = conn.cursor()
cursor.execute("CREATE TABLE IF NOT EXISTS users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), age INT)")
## 插入数据
cursor.execute("INSERT INTO users (name, age) VALUES (%s, %s)", ("Alice", 25))
cursor.execute("INSERT INTO users (name, age) VALUES (%s, %s)", ("Bob", 30))
## 查询数据
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()
for row in rows:
print(row)
## 关闭连接
conn.close()
运行上述代码,你将看到插入的数据和查询结果输出在终端上,MySQL Connector 让数据库连接变得如此高效!
SQLAlchemy:强大的ORM框架#
最后,让我们来认识 SQLAlchemy 这个强大的库。它是 Python 中最流行的 ORM(Object-Relational Mapping)框架,适用于复杂的数据库操作和应用。
SQLAlchemy 的安装非常简单,使用以下命令:
pip install sqlalchemy
让我们看看 SQLAlchemy 的魔法:
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
## 连接数据库
engine = create_engine("sqlite:///mydatabase.db", echo=True)
Base = declarative_base()
## 定义数据表模型
class User(Base):
__tablename__ = "users"
id = Column(Integer, primary_key=True)
name = Column(String)
age = Column(Integer)
## 创建数据表
Base.metadata.create_all(engine)
## 创建会话
Session = sessionmaker(bind=engine)
session = Session()
## 插入数据
user1 = User(name="Alice", age=25)
user2 = User(name="Bob", age=30)
session.add_all([user1, user2])
session.commit()
## 查询数据
users = session.query(User).all()
for user in users:
print(user.name, user.age)
## 关闭会话
session.close()
运行上述代码,你将看到插入的数据和查询结果输出在终端上,SQLAlchemy 让数据库操作变得如此高端!
数据库连接案例#
下面我们来看一个实际应用的数据库连接案例:从 CSV 文件中读取数据并存储到数据库。
import csv
## 连接数据库(使用 SQLite3 示例)
conn = sqlite3.connect("mydatabase.db")
cursor = conn.cursor()
## 创建表格
cursor.execute("CREATE TABLE IF NOT EXISTS books (id INTEGER PRIMARY KEY, title TEXT, author TEXT)")
## 从 CSV 文件中读取数据
with open("books.csv", "r") as file:
reader = csv.reader(file)
next(reader) ## 跳过标题行
for row in reader:
title, author = row
cursor.execute("INSERT INTO books (title, author) VALUES (?, ?)", (title, author))
## 查询数据
cursor.execute("SELECT * FROM books")
rows = cursor.fetchall()
for row in rows:
print(row)
## 关闭连接
conn.close()
运行上述代码,你将看到读取的数据和查询结果输出在终端上,通过这样简单的数据库连接,你可以更好地管理和查询数据。