python 代码连接数据库汇总(一)

以下是 Python 调用常见数据库的代码示例:


1. MySQL

# 安装库:pip install mysql-connector-python

import mysql.connector

# 连接数据库
conn = mysql.connector.connect(
    host="localhost",
    user="root",
    password="your_password",
    database="test_db"
)

cursor = conn.cursor()

# 创建表
cursor.execute("CREATE TABLE IF NOT EXISTS users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255))")

# 插入数据
cursor.execute("INSERT INTO users (name) VALUES ('Alice')")
conn.commit()

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

# 关闭连接
cursor.close()
conn.close()


2. PostgreSQL

# 安装库:pip install psycopg2

import psycopg2

# 连接数据库
conn = psycopg2.connect(
    host="localhost",
    database="test_db",
    user="postgres",
    password="your_password"
)

cursor = conn.cursor()

# 创建表
cursor.execute("CREATE TABLE IF NOT EXISTS users (id SERIAL PRIMARY KEY, name VARCHAR(255))")

# 插入数据
cursor.execute("INSERT INTO users (name) VALUES ('Bob')")
conn.commit()

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

# 关闭连接
cursor.close()
conn.close()


3. SQLite

# SQLite 无需安装,Python 自带库
import sqlite3

# 连接数据库(文件形式)
conn = sqlite3.connect('test.db')
cursor = conn.cursor()

# 创建表
cursor.execute("CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT)")

# 插入数据
cursor.execute("INSERT INTO users (name) VALUES ('Charlie')")
conn.commit()

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

# 关闭连接
cursor.close()
conn.close()


4. MongoDB

# 安装库:pip install pymongo

from pymongo import MongoClient

# 连接数据库
client = MongoClient('mongodb://localhost:27017/')
db = client['test_db']
collection = db['users']

# 插入文档
user = {"name": "David", "age": 30}
collection.insert_one(user)

# 查询文档
for doc in collection.find():
    print(doc)

# 关闭连接
client.close()


5. Redis

# 安装库:pip install redis

import redis

# 连接 Redis
r = redis.Redis(host='localhost', port=6379, db=0)

# 设置键值
r.set('key', 'value')

# 获取值
value = r.get('key')
print(value.decode('utf-8'))  # 输出: value

# 删除键
r.delete('key')


6. SQLAlchemy (ORM)

# 安装库:pip install sqlalchemy

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

Base = declarative_base()

# 定义数据模型
class User(Base):
    __tablename__ = 'users'
    id = Column(Integer, primary_key=True)
    name = Column(String(255))

# 连接数据库(以 SQLite 为例)
engine = create_engine('sqlite:///test.db')
Base.metadata.create_all(engine)

# 创建会话
Session = sessionmaker(bind=engine)
session = Session()

# 插入数据
new_user = User(name="Eve")
session.add(new_user)
session.commit()

# 查询数据
users = session.query(User).all()
for user in users:
    print(user.id, user.name)

# 关闭会话
session.close()


注意事项:

  1. 替换代码中的 host, user, password, database 为实际值。

  2. 生产环境中建议使用连接池或上下文管理器(如 with 语句)。

  3. 操作后务必关闭连接释放资源。

  4. 对敏感信息(如密码)建议使用环境变量或配置文件管理。

你可能感兴趣的:(python,python,数据库,开发语言)