Python数据库编程:SQLite、MySQL与MongoDB

Python提供了多种方式来进行数据库编程,包括使用关系型数据库(如SQLite和MySQL)和NoSQL数据库(如MongoDB)。

SQLite

SQLite是一个C语言库,它实现了轻量级的磁盘文件数据库,不需要一个单独的服务器进程或操作系统。Python的sqlite3模块提供了与SQLite数据库的接口。

例如,以下是一个简单的SQLite数据库编程示例:

复制代码

python复制代码

|---|---------------------------------------------------------------------------------|
| | import sqlite3 |
| | |
| | # 连接到SQLite数据库(如果不存在则会被创建) |
| | conn = sqlite3.connect('test.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)) |
| | |
| | # 提交事务 |
| | conn.commit() |
| | |
| | # 查询数据 |
| | cursor.execute("SELECT * FROM users") |
| | for row in cursor: |
| | print(row) |
| | |
| | # 关闭连接 |
| | conn.close() |

MySQL

Python使用mysql-connector-python库来连接和操作MySQL数据库。首先,你需要安装这个库,可以通过pip进行安装:pip install mysql-connector-python。以下是一个简单的示例:

复制代码

python复制代码

|---|---------------------------------------------------------------------------------------------------------------|
| | import mysql.connector |
| | |
| | # 连接到MySQL数据库 |
| | conn = mysql.connector.connect(user='username', password='password', host='localhost', database='test_db') |
| | |
| | # 创建一个游标对象 |
| | cursor = conn.cursor() |
| | |
| | # 执行SQL查询 |
| | cursor.execute("SELECT * FROM users") |
| | for row in cursor: |
| | print(row) |
| | |
| | # 关闭连接 |
| | conn.close() |

MongoDB

MongoDB是一个开源的NoSQL数据库,使用BSON(二进制JSON)格式来存储数据。Python使用pymongo库来连接和操作MongoDB数据库。首先,你需要安装这个库,可以通过pip进行安装:pip install pymongo。以下是一个简单的示例:

复制代码

python复制代码

|---|---------------------------------------------------------------------------------------------|
| | from pymongo import MongoClient |
| | |
| | # 连接到MongoDB数据库 |
| | client = MongoClient('localhost', 27017) |
| | db = client['test_db'] # 选择或创建一个数据库 |
| | collection = db['users'] # 选择或创建一个集合(类似于关系型数据库中的表) |
| | |
| | # 插入一些数据 |
| | user1 = {"name": "Alice", "age": 25} # 一个文档对象,表示一个用户记录 |
| | user2 = {"name": "Bob", "age": 30} # 一个文档对象,表示一个用户记录 |
| | collection.insert_many([user1, user2]) # 将这两个用户插入到集合中 |
| | |
| | # 查询数据 |
| | for user in collection.find(): # find()方法返回一个游标,游标中包含了集合中的所有文档对象(即用户记录) |
| | print(user) # 输出每个用户记录的内容,默认会输出整个文档对象的内容,也可以通过指定字段来输出部分内容,如print(user['name'])会输出每个用户的名字。 |

相关推荐
2501_942191771 分钟前
YOLO11-Seg-SwinTransformer榛子缺陷识别实战
python
a程序小傲1 分钟前
中国邮政Java面试被问:Netty的FastThreadLocal优化原理
java·服务器·开发语言·面试·职场和发展·github·哈希算法
小宇的天下3 分钟前
Cadence allegro---Design Compare
数据库
淦。。。。6 分钟前
题解:P14013 [POCamp 2023] 送钱 / The Generous Traveler
开发语言·c++·经验分享·学习·其他·娱乐·新浪微博
小北方城市网8 分钟前
SpringBoot 集成 MyBatis-Plus 实战(高效 CRUD 与复杂查询):简化数据库操作
java·数据库·人工智能·spring boot·后端·安全·mybatis
橙露10 分钟前
C#在视觉检测中的优势:工业智能化转型的利器
开发语言·c#·视觉检测
醇氧11 分钟前
java.lang.NumberFormatException: For input string: ““
java·开发语言·spring
闻道且行之13 分钟前
基于 LLM 的 MCP 架构实战:服务端搭建、工具开发与 Dify 集成全流程
python·架构·nlp·dify·mcp
利刃大大15 分钟前
【ES6】变量与常量 && 模板字符串 && 对象 && 解构赋值 && 箭头函数 && 数组 && 扩展运算符 && Promise/Await/Async
开发语言·前端·javascript·es6
大猫会长20 分钟前
postgreSQL中,RLS的using与with check
开发语言·前端·javascript