Python 数据库操作指南:MySQL、MongoDB、Redis 等 在现代应用程序中,数据库是不可或缺的组成部分,Python 作为一种流行的编程语言,其生态系统中也有大量的数据库操作工具。本文将介绍 Python 中操作 MySQL、MongoDB、Redis 等常见数据库的方法和技巧。 MySQL 操作 MySQL 是一种关系型数据库,应用广泛。Python 中有很多库可以操作 MySQL,比如 MySQL Connector、PyMySQL、mysql-connector-python 等。以下示例使用 mysql-connector-python 库。 首先需要安装该库,使用 pip install mysql-connector-python 安装即可。下面是一个简单的 MySQL 查询示例: ```python import mysql.connector cnx = mysql.connector.connect(user='user', password='password', host='127.0.0.1', database='database_name') cursor = cnx.cursor() query = ("SELECT * FROM table_name") cursor.execute(query) for row in cursor: print(row) cursor.close() cnx.close() ``` 这里使用了 mysql.connector.connect 方法连接数据库,指定了用户名、密码、主机名和数据库名。然后创建了一个游标 cursor,使用 execute 方法执行查询语句,最后使用 for 循环遍历查询结果。 插入、更新和删除操作也很简单,可以使用 execute 方法执行相应的 SQL 语句即可。注意,在执行插入操作时需要使用 commit 方法提交更改。 ```python import mysql.connector cnx = mysql.connector.connect(user='user', password='password', host='127.0.0.1', database='database_name') cursor = cnx.cursor() insert_query = ("INSERT INTO table_name (column1, column2, column3) " "VALUES (%s, %s, %s)") data = ('value1', 'value2', 'value3') cursor.execute(insert_query, data) update_query = ("UPDATE table_name SET column1=%s WHERE column2=%s") data = ('new_value', 'value2') cursor.execute(update_query, data) delete_query = ("DELETE FROM table_name WHERE column1=%s") data = ('value1',) cursor.execute(delete_query, data) cnx.commit() cursor.close() cnx.close() ``` MongoDB 操作 MongoDB 是一种非关系型数据库,使用文档存储数据。Python 中有很多库可以操作 MongoDB,比如 PyMongo、mongoengine、Mongokit 等。以下示例使用 PyMongo 库。 首先需要安装该库,使用 pip install pymongo 安装即可。下面是一个简单的 MongoDB 查询示例: ```python import pymongo client = pymongo.MongoClient("mongodb://localhost:27017/") db = client["database_name"] collection = db["collection_name"] query = {"column1": "value1"} result = collection.find(query) for document in result: print(document) client.close() ``` 这里使用了 pymongo.MongoClient 方法连接 MongoDB,指定了主机名和端口号。然后选择了数据库和集合,使用 find 方法执行查询,最后使用 for 循环遍历查询结果。 插入、更新和删除操作也很简单,可以使用 insert_one、insert_many、update_one、update_many、replace_one、delete_one、delete_many 等方法执行相应的操作即可。 ```python import pymongo client = pymongo.MongoClient("mongodb://localhost:27017/") db = client["database_name"] collection = db["collection_name"] document = {"column1": "value1", "column2": "value2", "column3": "value3"} doc_id = collection.insert_one(document).inserted_id query = {"column2": "value2"} new_value = {"$set": {"column1": "new_value"}} collection.update_one(query, new_value) query = {"column1": "value1"} collection.delete_one(query) query = {"column1": "value1"} collection.delete_many(query) client.close() ``` Redis 操作 Redis 是一种内存数据库,支持键值存储。Python 中有很多库可以操作 Redis,比如 redis、redis-py、walrus 等。以下示例使用 redis-py 库。 首先需要安装该库,使用 pip install redis 安装即可。下面是一个简单的 Redis 操作示例: ```python import redis r = redis.Redis(host='localhost', port=6379, db=0) r.set('key', 'value') print(r.get('key')) r.delete('key') print(r.get('key')) ``` 这里使用了 redis.Redis 方法连接 Redis,指定了主机名、端口号和数据库编号。然后使用 set 方法设置键值对,使用 get 方法获取键对应的值,使用 delete 方法删除键值对。 除了基本操作外,Redis 还支持事务和管道等高级操作。可以使用 pipeline 方法创建一个管道,使用 watch 方法监视一个键,使用 multi 方法开启一个事务,然后执行操作并使用 execute 方法提交事务。 ```python import redis r = redis.Redis(host='localhost', port=6379, db=0) pipe = r.pipeline() pipe.watch('key') pipe.multi() pipe.incr('key') pipe.incr('key') pipe.execute() print(r.get('key')) r.delete('key') ``` 在这个示例中,使用 watch 方法监视键 key,然后开启了一个事务并使用 incr 方法自增键的值,最后使用 execute 方法提交事务。如果在执行事务期间键的值发生了改变,则事务会失败,这可以保证事务的原子性。 总结 Python 中操作 MySQL、MongoDB、Redis 等常见数据库的方法和技巧多种多样,我们需要根据具体情况选择合适的工具库。本文介绍了 mysql-connector-python、PyMongo、redis-py 等工具库的基本使用方法,帮助读者快速上手数据库操作。