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

76 阅读2分钟

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'])会输出每个用户的名字。