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

发表于:2017-9-07 11:03

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:_昭昭_    来源:51Testing软件测试网采编

分享:
  
数据库
  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()
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号