Python 连接多种数据库全攻略:代码整合版

亲爱的小伙伴们😘,在求知的漫漫旅途中,若你对深度学习的奥秘、Java 与 Python 的奇妙世界,亦或是读研论文的撰写攻略有所探寻🧐,那不妨给我一个小小的关注吧🥰。我会精心筹备,在未来的日子里不定期地为大家呈上这些领域的知识宝藏与实用经验分享🎁。每一个点赞👍,都如同春日里的一缕阳光,给予我满满的动力与温暖,让我们在学习成长的道路上相伴而行,共同进步✨。期待你的关注与点赞哟🤗!

(一)连接 MySQL 数据库

import mysql.connector

# 建立连接
mydb = mysql.connector.connect(
    host="localhost",
    user="root",
    password="your_password",
    database="your_database"
)

# 创建游标
mycursor = mydb.cursor()

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

# 插入数据
sql = "INSERT INTO test_table (name, age) VALUES (%s, %s)"
val = ("Tom", 25)
mycursor.execute(sql, val)
mydb.commit()

# 查询数据
mycursor.execute("SELECT * FROM test_table")
result = mycursor.fetchall()
for row in result:
    print(row)

# 关闭游标与连接
mycursor.close()
mydb.close()

(二)连接 PostgreSQL 数据库

import psycopg2

# 连接
conn = psycopg2.connect(
    host="localhost",
    database="your_database",
    user="postgres",
    password="your_password"
)

# 创建游标
cur = conn.cursor()

# 创建序列
cur.execute("CREATE SEQUENCE IF NOT EXISTS test_seq")

# 插入数据
sql = "INSERT INTO test_table (id, name, age) VALUES (nextval('test_seq'), %s, %s)"
val = ("Jerry", 26)
cur.execute(sql, val)
conn.commit()

# 查询
cur.execute("SELECT * FROM test_table")
rows = cur.fetchall()
for row in rows:
    print(row)

# 关闭
cur.close()
conn.close()

(三)连接 SQLite 数据库

import sqlite3

# 连接
conn = sqlite3.connect('your_database.db')

# 创建游标
cursor = conn.cursor()

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

# 插入数据
cursor.execute("INSERT INTO test_table (name, age) VALUES (?,?)", ('Spike', 27))
conn.commit()

# 查询
cursor.execute("SELECT * FROM test_table")
records = cursor.fetchall()
for record in recordscursor.fetchall()):
    print(record)

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

(四)连接 MongoDB 数据库

from pymongo import MongoClient

# 连接
client = MongoClient("mongodb://localhost:25000/")

# 选择数据库与集合
db = client["your_database"]
collection = db["your_collection"]

# 插入文档
document = {"name": "Tyke", "age": 28}
collection.insert_one(document)

# 查询文档
results = collection.find()
for result in results:
    print(result)

# 关闭客户端
client.close()

(五)连接 Redis 数据库

import redis

# 连接
r = redis.Redis(
    host='localhost',
    port=6379,
    password='your_password',
    decode_responses=True
)

# 设置键值对
r.set('key1', 'value1')

# 获取值
value = r.get('key1')
print(value)

# 关闭连接
r.close()

三、要点总结

  1. 库的安装:连接前务必确保相关库已正确安装,如 mysql-connector-python、psycopg2、pymongo、redis 等,可通过 pip 命令安装。
  2. 连接参数:不同数据库连接参数各异。MySQL、PostgreSQL 需主机、用户、密码、数据库名;SQLite 指定数据库文件路径;MongoDB 用特定连接串格式;Redis 要注意端口与解码设置。
  3. 操作语法:执行 SQL 语句或数据库特定操作时,语法有别。关系型数据库遵循 SQL 规范,MySQL 占位符为 %s,SQLite 为 ?;PostgreSQL 有独特函数如序列操作;MongoDB 以文档为核心,操作围绕插入文档、查询集合展开;Redis 侧重于键值对及集合、有序集合操作。
  4. 资源关闭:操作完成后,及时关闭游标(若有)、连接等资源,防止资源泄露,确保程序稳定高效运行。

(六)连接 SQL Server 数据库

import pyodbc

# 建立连接,需根据实际情况修改服务器名称、数据库名称、用户名和密码等信息
conn = pyodbc.connect('DRIVER={SQL Server};SERVER=your_server_name;DATABASE=your_database_name;UID=your_username;PWD=your_password')

# 创建游标
cursor = conn.cursor()

# 创建表,示例创建一个简单的员工信息表
cursor.execute('''
    CREATE TABLE IF NOT EXISTS employees (
        id INT PRIMARY KEY IDENTITY(1,1),
        name VARCHAR(255),
        age INT
    )
''')

# 插入数据
insert_query = "INSERT INTO employees (name, age) VALUES (?,?)"
values = ("John", 30)
cursor.execute(insert_query, values)
conn.commit()

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

# 关闭游标与连接
cursor.close()
conn.close()

四、应用场景抉择

依据项目需求挑选数据库。若处理结构化数据、需复杂查询,MySQL、PostgreSQL 是首选;本地小型应用或测试,SQLite 轻便快捷;处理半结构化数据、追求灵活存储,MongoDB 表现出色;用于高性能缓存、会话管理,Redis 当仁不让。

掌握 Python 连接多种数据库的技能,如同手握多把钥匙,能开启不同数据宝藏之门,为项目开发与数据处理提供无尽动力,祝你在编程之旅中畅行无阻!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

♢.*

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值