Python交互数据库(Mysql | Mongodb | Redis)

简介: 数据库MysqlMysqlMySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,后来被Sun公司收购,Sun公司后来又被Oracle公司收购,目前属于Oracle旗下产品MySQL 软件采用了双授权政策...
数据库

Mysql

Mysql

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,后来被Sun公司收购,Sun公司后来又被Oracle公司收购,目前属于Oracle旗下产品

MySQL 软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库.

创建数据库

create database zhaozhao charset=utf8;

use zhaozhao;


create table zhaozhao_comic(

    id int unsigned primary key auto_increment not null,
    name varchar(100),
    zone varchar(100) 


);

insert into zhaozhao_comic values
    (0, "旋涡鸣人", "木叶村"),
    (0, "苏苏", "涂山"),
    (0, "曹焱兵", "镇魂街"),
    (0, "坂田银时", "万事屋");


操作数据库

from pymysql import *

def main():
    # 创建Connection连接
    conn = connect(host='172.16.221.143',port=3306,database='zhaozhao',user='root',password='root',charset='utf8')
    
    # 获得Cursor对象
    cs1 = conn.cursor()
    # 执行insert语句,并返回受影响的行数:添加一条数据

    # 增加
    count = cs1.execute('insert into zhaozhao_comic(name, zone) values("我爱罗", "风之国"),("奇拉比", "雷之国")')
    # 打印受影响的行
    print ("共有",count, "行受影响!")
    count = cs1.execute('insert into zhaozhao_comic values(0, "奥特曼", "M78星云")')
    # 打印受影响的行
    print ("共有",count, "行受影响!")

    # 执行
    conn.commit()

    # 删除
    count = cs1.execute('delete from zhaozhao_comic where name = "奇拉比" ')
    # 打印受影响的行
    print ("共有",count, "行受影响!")
    # 执行
    conn.commit()

    # 更改
    count = cs1.execute('update zhaozhao_comic set name="赛罗奥特曼" where name="奥特曼"')
    # 打印受影响的行
    print ("共有",count, "行受影响!")
    # 执行
    conn.commit()
    
    # 查询
    count = cs1.execute('select * from zhaozhao_comic where id < 5')
    # 打印受影响的行
    print ("共查到",count, "行数据!")

    for i in range(count):

        result = cs1.fetchone()
        print ("第%d次查到的数据为%s:"%(i+1, result))

    # 关闭Cursor对象
    cs1.close()
    # 关闭Connection对象
    conn.close()

if __name__ == '__main__':
    main()

Mongdb

Mongdb

MongoDB 是一个基于分布式文件存储的NoSQL数据库.
MongoDB由C++语言编写,运行稳定,性能高.
MongoDB旨在为WEB应用提供可扩展的高性能数据存储解决方案.

from pymongo import *

def main():
    
    # 创建连接对象
    client=MongoClient(host='localhost',port=27017)

    # 获得数据库,此处使用python数据库
    db=client.python

    # 增加
    
    db.stu.insert_one({'name':'佐助','gender':'男'})
    db.stu.insert_one({'name':'春野樱','gender':'女'})
    db.stu.insert_one({'name':'蒙奇 D 路飞','gender':'男'})
    db.stu.insert_one({'name':'索隆','gender':'男'})
    db.stu.insert_one({'name':'娜美','gender':'女'})


    # 查询

    #查询一条文档
    result=db.stu.find_one({'name':'索隆'})
    print (result)

    #查询多条文档
    result=db.stu.find({'gender':'男'})

    for item in result:
        print ('%s--%s'%(item['name'],item['gender']))


    # 修改

    #更新满足条件的第一条文档
    db.stu.update_one({'name':'佐助'},{'$set':{'name':'宇智波佐助'}})

    #更新满足条件的所有文档
    db.stu.update_many({'gender':"男"},{'$set':{'gender':'boy'}})


    # 删除
    # 删除满足条件的第一条文档
    db.stu.delete_one({'gender':'男'})

    #删除满足条件的所有文档
    db.stu.delete_many({'gender':'女'})


if __name__=='__main__':
    main()


redis

Redis

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持.
Redis是一个开源(BSD许可)的、内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件.

from redis import *

def main():

    #创建StrictRedis对象,与redis服务器建立连接
    sr=StrictRedis()

    # 添加

    #添加键py1,值为gj
    result=sr.set('name','zhaozhao')
    #输出响应结果,如果添加成功则返回True,否则返回False
    print ("添加结果:",result)

    # 查询

    #获取键py1的值
    result = sr.get('name')
    #输出键的值,如果键不存在则返回None
    print ("获取的值为:",result)


    # 修改

    #设置键py1的值,如果键已经存在则进行修改,如果键不存在则进行添加
    result = sr.set('name','zhaozhaolee')
    #输出响应结果,如果操作成功则返回True,否则返回False
    print (result)

    # 删除

    #设置键py1的值,如果键已经存在则进行修改,如果键不存在则进行添加
    result = sr.delete('name')
    #输出响应结果,如果删除成功则返回受影响的键数,否则则返回0
    print (result)



if __name__=="__main__":
    main()

目录
相关文章
|
10月前
|
缓存 NoSQL 关系型数据库
MySQL 与 Redis 如何保证双写一致性?
我是小假 期待与你的下一次相遇 ~
995 7
|
缓存 NoSQL 关系型数据库
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
|
关系型数据库 应用服务中间件 nginx
Docker一键安装中间件(RocketMq、Nginx、MySql、Minio、Jenkins、Redis)
本系列脚本提供RocketMQ、Nginx、MySQL、MinIO、Jenkins和Redis的Docker一键安装与配置方案,适用于快速部署微服务基础环境。
|
10月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
964 6
|
缓存 NoSQL 关系型数据库
Redis和Mysql如何保证数据⼀致?
1. 先更新Mysql,再更新Redis,如果更新Redis失败,可能仍然不⼀致 2. 先删除Redis缓存数据,再更新Mysql,再次查询的时候在将数据添加到缓存中 这种⽅案能解决1 ⽅案的问题,但是在⾼并发下性能较低,⽽且仍然会出现数据不⼀致的问题,⽐如线程1删除了 Redis缓存数据,正在更新Mysql,此时另外⼀个查询再查询,那么就会把Mysql中⽼数据⼜查到 Redis中 1. 使用MQ异步同步, 保证数据的最终一致性 我们项目中会根据业务情况 , 使用不同的方案来解决Redis和Mysql的一致性问题 : 1. 对于一些一致性要求不高的场景 , 不做处理例如 : 用户行为数据 ,
|
缓存 NoSQL 关系型数据库
Redis与MySQL的数据一致性
在高并发环境下,保持 Redis 和 MySQL 的数据一致性是一个复杂但重要的问题。通过采用读写穿透、写穿透、分布式锁、双写一致性保障和延时双删策略,可以有效地减少数据不一致的风险,确保系统的稳定性和可靠性。通过合理的缓存策略和数据同步机制,可以显著提升系统的性能和用户体验。
887 22
|
消息中间件 缓存 NoSQL
缓存与数据库的一致性方案,Redis与Mysql一致性方案,大厂P8的终极方案(图解+秒懂+史上最全)
缓存与数据库的一致性方案,Redis与Mysql一致性方案,大厂P8的终极方案(图解+秒懂+史上最全)
|
NoSQL 关系型数据库 MongoDB
接口管理工具深度对比:Apipost与Apifox在Redis/MongoDB支持上的关键差异
近期在团队工具选型时,系统对比了Apifox和Apipost两款接口管理工具,我们的体会是:Apipost适合需要同时管理多种数据库的中大型项目,特别是涉及Redis/MongoDB等非关系型数据库的场景,Apifox仅建议在纯关系型数据库架构且预算有限的小型项目中短期使用。
564 3
|
关系型数据库 MySQL 应用服务中间件
《docker基础篇:8.Docker常规安装简介》包括:docker常规安装总体步骤、安装tomcat、安装mysql、安装redis
《docker基础篇:8.Docker常规安装简介》包括:docker常规安装总体步骤、安装tomcat、安装mysql、安装redis
578 7
|
SQL 关系型数据库 MySQL
Python中使用MySQL模糊查询的方法
本文介绍了两种使用Python进行MySQL模糊查询的方法:一是使用`pymysql`库,二是使用`mysql-connector-python`库。通过这两种方法,可以连接MySQL数据库并执行模糊查询。具体步骤包括安装库、配置数据库连接参数、编写SQL查询语句以及处理查询结果。文中详细展示了代码示例,并提供了注意事项,如替换数据库连接信息、正确使用通配符和关闭数据库连接等。确保在实际应用中注意SQL注入风险,使用参数化查询以保障安全性。

推荐镜像

更多