三种数据库(MySQL,Redis,MongoDB)和Python交互连接

三种数据库和Python交互连接

MySQL----->pymysql

安装

pip3 install pymysql

使用

# 导包
import pymysql
# 创建连接对象
conn = connect(参数列表)
"""
################### 参数列表 #####################
 * 参数host:连接的mysql主机,如果本机是'localhost'
 * 参数port:连接的mysql主机的端口,默认是3306
 * 参数user:连接的用户名
 * 参数password:连接的密码
 * 参数database:数据库的名称
 * 参数charset:通信采用的编码方式,推荐使用utf8
 
 连接对象操作说明:
 
关闭连接 conn.close()
提交数据 conn.commit()
撤销数据 conn.rollback()
conn.commit() 表示将修改操作提交到数据库
conn.rollback() 表示回滚数据
"""
# 创建游标
 # 调用连接对象的cursor()方法获取游标对象   
 cur =conn.cursor()
"""
##################游标操作说明####################
使用游标执行SQL语句: execute(operation [parameters ]) 执行SQL语句,返回受影响的行数,主要用于执行insert、update、delete、select等语句
获取查询结果集中的一条数据:cur.fetchone()返回一个元组, 如 (1,'张三')
获取查询结果集中的所有数据: cur.fetchall()返回一个元组,如((1,'张三'),(2,'李四'))

关闭游标: cur.close(),表示和数据库操作完成
"""

Redis

安装模块

pip3 install redis

基本使用

# 引⼊模块,这个模块中提供了StrictRedis对象,⽤于连接redis服务器,并按照不同类型提供 了不同⽅法,进⾏交互操作
from redis import StrictRedis
"""
StrictRedis对象⽅法
通过init创建对象,指定参数host、port与指定的服务器和端⼝连接,host默认为localhost,port默认为6379,db默认为0
"""
sr = StrictRedis(host='localhost', port=6379, db=0)

# 简写
# sr=StrictRedis()
"""
根据不同的类型,拥有不同的实例⽅法可以调⽤,与redis命令对应,⽅法需要的参数与命令的参数⼀致
"""

mongodb

  • MongoDB的数据库和集合能够自动创建

安装模块

pip install pymongo

使用

无需权限认证的方式创建连接对象以及集合操作对象


from pymongo import MongoClient

client = MongoClient(host,port) # 如果是本地连接host,port参数可以省略

collection = client[db名][集合名]
# collection = client.db名.集合名 # 与上边用法相同

需要权限认证的方式创建连接对象以及集合操作对象


from pymongo import MongoClient


# 创建数据库链接对象
client = MongoClient('127.0.0.1', 27017)

# 选择admin数据库
db = client['admin']
# 登录管理员,('账号','密码')
db.authenticate('python', 'python')

# 选择一个集合
collection = client['pydata']['text']
insert()添加数据

insert可以批量的插入数据列表,也可以插入一条数据

# collection.insert({一条数据})
# collection.insert([{数据一},{数据二}])
collection.insert_one({'name': '干将莫邪'})
# 批量插入数据, insert_many 批量插入为插入列表
collection.insert_many([{'name': '小乔'}, {'name': '大乔'}])
find_one()查找一条数据

接收一个字典形式的条件,返回字典形式的整条数据 如果条件为空,则返回第一条

ret = client.test.test.find_one({'name': 'test10001'})
print(ret) # 包含mongodb的ObjectId对象的字典
_ = ret.pop('_id') # 清除mongodb的ObjectId对象的k,v
print(ret)
####  find()查找全部数据
返回所有满足条件的结果,如果条件为空,则返回全部 结果是一个Cursor游标对象,是一个可迭代对象,可以类似读文件的指针,但是==只能够进行一次读取==
rets = collection.find({"name":"test10005"})for ret in rets:
    print(ret)
for ret in rets: #此时rets中没有内容
    print(ret)

update()更新数据(全文档覆盖或指定键值,更新一条或多条)
"""
语法:collection.update({条件}, {'$set':{指定的kv或完整的一条数据}}, multi=False/True, upsert=False/True)
multi参数:默认为False,表示更新一条; multi=True则更新多条; multi参数必须和$set一起使用
upsert参数:默认为False; upsert=True则先查询是否存在,存在则更新;不存在就插入
$set表示指定字段进行更新
"""
# 1 更新一条数据;全文档覆盖;存在就更新,不存在就插入
data = {'msg':'这是一条完整的数据1','name':'哈哈'}
client.test.test.update({'haha': 'heihei'}, {'$set':data}, upsert=True)
# 2 更新多条数据;全文档覆盖;存在就更新,不存在就插入
data = {'msg':'这是一条完整的数据2','name':'哈哈'} # 该完整数据是先查询后获取的
client.test.test.update({}, {'$set':data}, multi=True, upsert=True)
# 3 更新一条数据;指定键值;存在就更新,不存在就插入
data = {'msg':'指定只更新msg___1'}
client.test.test.update({}, {'$set':data}, upsert=True)
# 4 更新多条数据;指定键值;存在就更新,不存在就插入
data = {'msg':'指定只更新msg___2'}
client.test.test.update({}, {'$set':data}, multi=True, upsert=True)

delete_one()删除一条数据
collection.delete_one({'age': 20})
delete_many()删除全部数据
collection.delete_many({'name': '乔'})
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Redis数据库之间可以通过编程语言提供的客户端库来进行连接交互。以下是一些常见的连接方式: 1. RedisMySQL连接:可以使用MySQL自带的插件FEDERATED ENGINE实现,也可以使用编程语言提供的MySQL客户端库连接。 2. Redis与Oracle连接:可以使用Oracle官方提供的NoSQL数据库Oracle NoSQL实现,也可以使用编程语言提供的Oracle客户端库连接。 3. RedisMongoDB连接:可以使用MongoDB官方提供的Redis-MongoDB Connector实现,也可以使用编程语言提供的MongoDB客户端库连接。 在程序中,我们需要根据不同的数据库类型选择对应的客户端库,并根据库的API进行操作,例如连接数据库、查询、更新等。通常,连接数据库的步骤如下: 1. 导入客户端库。 2. 创建数据库连接,指定连接参数(例如主机名、端口号、用户名、密码等)。 3. 执行数据库操作。 4. 关闭连接。 以下是使用Python连接RedisMySQL的示例代码: ``` # 导入Redis客户端库 import redis # 创建Redis连接 redis_conn = redis.StrictRedis(host='localhost', port=6379, db=0) # 设置key-value redis_conn.set('mykey', 'myvalue') # 获取key-value print(redis_conn.get('mykey')) # 导入MySQL客户端库 import pymysql # 创建MySQL连接 mysql_conn = pymysql.connect(host='localhost', port=3306, user='root', password='password', db='mydb') # 创建游标对象 cursor = mysql_conn.cursor() # 查询数据 cursor.execute('SELECT * FROM mytable') # 获取查询结果 results = cursor.fetchall() # 输出结果 for row in results: print(row) # 关闭连接 mysql_conn.close() ``` 需要注意的是,不同的数据库操作有不同的语法和API,以上示例仅供参考。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值