当前位置: 首页 > news >正文

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

数据库

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()

相关文章:

  • Android Studio 3.0 下载 使用新功能介绍
  • Linux 常用端口
  • 利用OpenCV检测图像中的长方形画布或纸张并提取图像内容
  • Java的类的创建
  • Spring获取bean的工具类
  • ASP.NET Core 运行原理解剖[4]:进入HttpContext的世界
  • 基于centos7.3 redhat7.3安装LAMP(php7.0 php7.1)生产环境实践
  • C++ 迭代器二分搜索方法示例
  • Class类文件结构概述
  • Spring MVC-集成(Integration)-生成JSON示例(转载实践)
  • Spring MVC-集成(Integration)-集成LOG4J示例(转载实践)
  • WebSocket使用
  • CCF201703试题
  • 2017-09-12 前端日报
  • 看似“触手可及”的Oculus离我们有多远?
  • 《剑指offer》分解让复杂问题更简单
  • 10个最佳ES6特性 ES7与ES8的特性
  • Babel配置的不完全指南
  • docker-consul
  • node 版本过低
  • nodejs:开发并发布一个nodejs包
  • React16时代,该用什么姿势写 React ?
  • session共享问题解决方案
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • win10下安装mysql5.7
  • 阿里云应用高可用服务公测发布
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 机器学习 vs. 深度学习
  • 区块链技术特点之去中心化特性
  • 微信开源mars源码分析1—上层samples分析
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • 智能合约Solidity教程-事件和日志(一)
  • - 转 Ext2.0 form使用实例
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • ​卜东波研究员:高观点下的少儿计算思维
  • #LLM入门|Prompt#3.3_存储_Memory
  • (04)odoo视图操作
  • (搬运以学习)flask 上下文的实现
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (南京观海微电子)——COF介绍
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (转)Linq学习笔记
  • (转)大道至简,职场上做人做事做管理
  • .halo勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .net 开发怎么实现前后端分离_前后端分离:分离式开发和一体式发布
  • .Net面试题4
  • @德人合科技——天锐绿盾 | 图纸加密软件有哪些功能呢?
  • [ Linux 长征路第二篇] 基本指令head,tail,date,cal,find,grep,zip,tar,bc,unname
  • [2019.3.5]BZOJ1934 [Shoi2007]Vote 善意的投票
  • [BZOJ4554][TJOI2016HEOI2016]游戏(匈牙利)
  • [Docker]十一.Docker Swarm集群raft算法,Docker Swarm Web管理工具
  • [Gamma]阶段测试报告
  • [Google Guava] 1.1-使用和避免null
  • [HackMyVM]靶场Boxing