亲爱的小伙伴们😘,在求知的漫漫旅途中,若你对深度学习的奥秘、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()
三、要点总结
- 库的安装:连接前务必确保相关库已正确安装,如 mysql-connector-python、psycopg2、pymongo、redis 等,可通过 pip 命令安装。
- 连接参数:不同数据库连接参数各异。MySQL、PostgreSQL 需主机、用户、密码、数据库名;SQLite 指定数据库文件路径;MongoDB 用特定连接串格式;Redis 要注意端口与解码设置。
- 操作语法:执行 SQL 语句或数据库特定操作时,语法有别。关系型数据库遵循 SQL 规范,MySQL 占位符为 %s,SQLite 为 ?;PostgreSQL 有独特函数如序列操作;MongoDB 以文档为核心,操作围绕插入文档、查询集合展开;Redis 侧重于键值对及集合、有序集合操作。
- 资源关闭:操作完成后,及时关闭游标(若有)、连接等资源,防止资源泄露,确保程序稳定高效运行。
(六)连接 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 连接多种数据库的技能,如同手握多把钥匙,能开启不同数据宝藏之门,为项目开发与数据处理提供无尽动力,祝你在编程之旅中畅行无阻!
1090

被折叠的 条评论
为什么被折叠?



