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

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
简介: 数据库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()

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
6天前
|
存储 JSON NoSQL
学习 MongoDB:打开强大的数据库技术大门
MongoDB 是一个基于分布式文件存储的文档数据库,由 C++ 编写,旨在为 Web 应用提供可扩展的高性能数据存储解决方案。它与 MySQL 类似,但使用文档结构而非表结构。核心概念包括:数据库(Database)、集合(Collection)、文档(Document)和字段(Field)。MongoDB 使用 BSON 格式存储数据,支持多种数据类型,如字符串、整数、数组等,并通过二进制编码实现高效存储和传输。BSON 文档结构类似 JSON,但更紧凑,适合网络传输。
31 15
|
2天前
|
NoSQL 关系型数据库 MySQL
Linux安装jdk、mysql、redis
Linux安装jdk、mysql、redis
56 7
|
3天前
|
存储 Oracle 关系型数据库
数据库传奇:MySQL创世之父的两千金My、Maria
《数据库传奇:MySQL创世之父的两千金My、Maria》介绍了MySQL的发展历程及其分支MariaDB。MySQL由Michael Widenius等人于1994年创建,现归Oracle所有,广泛应用于阿里巴巴、腾讯等企业。2009年,Widenius因担心Oracle收购影响MySQL的开源性,创建了MariaDB,提供额外功能和改进。维基百科、Google等已逐步替换为MariaDB,以确保更好的性能和社区支持。掌握MariaDB作为备用方案,对未来发展至关重要。
13 3
|
3天前
|
安全 关系型数据库 MySQL
MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!
《MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!》介绍了MySQL中的三种关键日志:二进制日志(Binary Log)、重做日志(Redo Log)和撤销日志(Undo Log)。这些日志确保了数据库的ACID特性,即原子性、一致性、隔离性和持久性。Redo Log记录数据页的物理修改,保证事务持久性;Undo Log记录事务的逆操作,支持回滚和多版本并发控制(MVCC)。文章还详细对比了InnoDB和MyISAM存储引擎在事务支持、锁定机制、并发性等方面的差异,强调了InnoDB在高并发和事务处理中的优势。通过这些机制,MySQL能够在事务执行、崩溃和恢复过程中保持
18 3
|
3天前
|
SQL 关系型数据库 MySQL
数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog
《数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog》介绍了如何利用MySQL的二进制日志(Binlog)恢复误删除的数据。主要内容包括: 1. **启用二进制日志**:在`my.cnf`中配置`log-bin`并重启MySQL服务。 2. **查看二进制日志文件**:使用`SHOW VARIABLES LIKE &#39;log_%&#39;;`和`SHOW MASTER STATUS;`命令获取当前日志文件及位置。 3. **创建数据备份**:确保在恢复前已有备份,以防意外。 4. **导出二进制日志为SQL语句**:使用`mysqlbinlog`
22 2
|
10天前
|
SQL 关系型数据库 MySQL
数据库数据恢复—Mysql数据库表记录丢失的数据恢复方案
Mysql数据库故障: Mysql数据库表记录丢失。 Mysql数据库故障表现: 1、Mysql数据库表中无任何数据或只有部分数据。 2、客户端无法查询到完整的信息。
|
16天前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
117 15
|
17天前
|
关系型数据库 MySQL 数据库
数据库数据恢复—MYSQL数据库文件损坏的数据恢复案例
mysql数据库文件ibdata1、MYI、MYD损坏。 故障表现:1、数据库无法进行查询等操作;2、使用mysqlcheck和myisamchk无法修复数据库。
|
21天前
|
SQL 关系型数据库 MySQL
MySQL导入.sql文件后数据库乱码问题
本文分析了导入.sql文件后数据库备注出现乱码的原因,包括字符集不匹配、备注内容编码问题及MySQL版本或配置问题,并提供了详细的解决步骤,如检查和统一字符集设置、修改客户端连接方式、检查MySQL配置等,确保导入过程顺利。
|
29天前
|
关系型数据库 MySQL 数据库
GBase 数据库如何像MYSQL一样存放多行数据
GBase 数据库如何像MYSQL一样存放多行数据