Python学习笔记(五)之Python操作Redis、mysql、mongodb数据库
操作数据库
一、数据库
数据库类型主要有关系型数据库和菲关系型数据库。
数据库:用来存储和管理数的仓库,数据库是通过依据“数据结构”将数据格式化,以记录->表->库的关系存储。因此数据查询的效率比较高
关系型数据库:是依据关系模型创建的数据库。所谓的关系模型指:“一对一,一对多,多对多”等关系模型。关系模型就是二维表的模型,
关系型数据库:小型数据库,中型数据库,大型数据库。
小型数据库:access、foxbase(了解)
中型数据:mysql、sqlserver(可以学习一下,使用范围比较广(中小型企业))
MySQL是一个开源的完全免费的数据库系统,是一个快速的、可靠的和易于使用的数据库服务器
SQL Server是由微软开发的数据库管理系统,它只能在Windows上运行,它已广泛用于电子商务、银行、保险、电力等与数据库有关的行业
大型数据库:Oracle、db2、sybase
Oracle能在所有主流平台上运行,它是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。
db2能在所有主流平台上运行,适用于海量数据,在企业级的应用最为广泛。
非关系型数据库:基于“非关系模型”的数据库(列模型:存储的数据是一列列的。关系型数据库以一行作为一个记录;键值对模型:存储的数据是一个个“键值对”;文档类模型:以一个个文档来存储数据,有点类似“键值对”。)
列模型:Hbase
键值对模型:redis,MemcacheDB
文档类模型:mongoDB
二、python操作数据库
这里咱们介绍一下python怎么操作mysql、redis和mongodb。
- python操作mysql数据库 。
操作mysql数据库需要安装第三方模块pymysql。pip install pymysql
创建数据库连接引入pymysql模块,import pymysql,创建数据库连接conn = pymysql.connect(host=’127.0.0.1’,port=’3306’,user = ‘root’,passwd = ‘123456’,db=’data’,charset=’utf8’,autocommit=True)
注解:connect()函数包含数据库ip地址,端口号,用户名,密码,数据库实例名,编码,自动提交(如果这里不写默认,不会自动提交,需要在程序中添加conn.commint())
#创建游标cur = conn.cursor()
通过游标写入执行语句res = cur.execute(“select * from t_user;”)
注解:execute()返回该执行语句执行后受影响的条数,或者查询统计的个数
Res = cur.executemany(‘insert into students (name,age) values (%s,%s);’,[("andashu",18),("12345",20)])
# 获取最新自增ID new_id = cursor.lastrowid
通过游标返回结果cur.fetchall(),cur.fetchone(),cur.fetchmany()
关闭游标,关闭连接。cur.close() conn.close()
具体程序截图如下:

2.Python操作redis数据库 。
操作redis redis是一个nosql类型的数据库,数据都存在内存中,有很快的读写速度,python操作redis使用redis模块,pip安装即可
1) 连接数据库redis.Redis(host=’127.0.0.1’,port=6379,db=8)
注解:host=数据库ip,port=端口号(不可以写str类型),db=数据库名
2) 设置key,value值 r.set(‘name’,’wy’) r.setnx(key,value)key不存在时才会设置
r.setex(k,v,39)设置有效期
3) 获取数据库中的value r.get(k).decode()#k值必须存在否则decode()报错,必须先对get(k)判空.
4) 无需关闭数据库连接
代码如下:
import redis
r = redis.Redis(host='127.0.0.1',port=6379,db=0)#指定连接redis的端口和ip以及哪个数据库
r.set('name', 'value')#set string类型的值
r.setnx('name2', 'value')#设置的name的值,如果name不存在的时候才会设置
r.setex('name3', 'value', 3)#设置的name的值,和超时时间,过了时间key就会自动失效
r.mset(k1='v1',k2='v2')#批量设置值
r.get('name')#获取值
print(r.mget('k1','k2'))#批量获取key
r.delete('name')#删除值
r.delete('k1','k2')#批量删除
#======下面是操作哈希类型的
r.hset('hname', 'key', 'value')#set 哈希类型的值
r.hset('hname', 'key1', 'value2')#set 哈希类型的值
r.hsetnx('hname','key2','value23')#给name为hname设置key和value,和上面的不同的是key不存在的时候
#才会set
r.hmset('hname',{'k1':'v1','k2':'v2'})#批量设置哈希类型的key和value
r.hget('name', 'key')#获取哈希类型的值
print(r.hgetall('hname'))#获取这个name里所有的key和value
r.hdel('hname','key')#删除哈希类型的name里面指定的值
print(r.keys())#获取所有的key
3.python操作mongo数据库


Python学习笔记(五)之Python操作Redis、mysql、mongodb数据库的更多相关文章
- ES6学习笔记<五> Module的操作——import、export、as
import export 这两个家伙对应的就是es6自己的 module功能. 我们之前写的Javascript一直都没有模块化的体系,无法将一个庞大的js工程拆分成一个个功能相对独立但相互依赖的小 ...
- python学习笔记(二)、字符串操作
该一系列python学习笔记都是根据<Python基础教程(第3版)>内容所记录整理的 1.字符串基本操作 所有标准序列操作(索引.切片.乘法.成员资格检查.长度.最小值和最大值)都适用于 ...
- python学习笔记1之-python简介及其环境安装
python学习笔记之-python简介及其环境安装 最近几年python之火不用多说,最近开始利用时间自学python,在学习的过程中,按照自己的思路和理解记录下学习的过程,并分享出来,如果正好你也 ...
- python学习笔记五 模块上(基础篇)
模块学习 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要 ...
- Python学习笔记整理总结【Memcache & Redis】
一.Memcached1.简介Memcached 是一个高性能的分布式内存对象缓存系统,一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度.提高可扩展性.用来存储 ...
- Python学习笔记整理总结【Memcache & Redis(基础+主从架构)】
一.Memcached1.简介Memcached 是一个高性能的分布式内存对象缓存系统,一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度.提高可扩展性.用来存储 ...
- Python学习笔记1_初识Python
一.Python的发展 1.CNRI时期:CNRI是自助Python发展初期的重要单位,Python1.5版之前的成果大部分都在此时期内完成 2.BeOpen时期:Guido van Rossum与B ...
- Python学习笔记之二——Python的运行机制,一般人肯定不会
前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:XX Python解释器简介 解释器是一种让其他程序运行起来的程 ...
- Python学习笔记1-搭建Python环境 和 Python Hello World!
一.搭建Python开发环境 1.选择开发工具 首先要寻找一个Python的开发工具,Python的开发工具有很多,有pyCharm .Eclipse.Visual studio等等 ,使用最多的还是 ...
- Python学习笔记五:字符串常用操作,字典,三级菜单实例
字符串常用操作 7月19日,7月20日 ,7月22日,7月29日,8月29日,2月29日 首字母大写:a_str.capitalize() 统计字符串个数:a_str.count(“x”) 输出字符, ...
随机推荐
- linux安装jdk7步骤
linux安装jdk7步骤: 1.首先使用命令查看linux系统版本号: lsb_release -a 2.下载对应的jdk版本,笔者使用的是jdk-7u79-linux-x64.tar.gz: 3. ...
- ServiceStack.Redis 使用
Redis官网提供了很多开源的C#客户端.例如,Nhiredis ,ServiceStack.Redis ,StackExchange.Redis等.其中ServiceStack.Redis应该算是比 ...
- Hibernate笔记7--JPA CRUD
1.环境搭建,注意包结构的问题,src下建立名为META-INF的文件夹,放persistence.xml,位置放错,读不到会报错. <?xml version="1.0" ...
- 跨平台移动开发phonegap/cordova 3.3全系列教程-开发环境搭建
操作系统:windwos xp 1. 安装JDK 打开如下网站下载JDK http://www.oracle.com/technetwork/java/javase/downloads/index ...
- Android商城开发系列(十)—— 首页活动广告布局实现
在上一篇博客当中,我们讲了频道布局的实现,接下来我们讲解一下活动广告布局的实现,效果如下图: 这个是用viewpager去实现的,新建一个act_item.xml,代码如下所示: <?xml v ...
- hadoop2.4 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
在Ubuntu上安装完hadoop2.4以后,使用以下命令: hadoop fs -ls // :: WARN util.NativeCodeLoader: Unable to load native ...
- pyinstaller打包python源程序访问hive
1.需求 使用hvie server一段时间后,业务部门需要自己不定时的查询业务数据,之前这一块都是他们提需求我们来做,后来发现这样重复一样的工作放在我们这边做是在没有效率,遂提出给他们工具或者web ...
- 又一次摔MFC坑里了
因为公司的个项目最近开始写MFC了,又遇到一个坑爹的问题,使用的View视图模式在VS2010中创建的工程,默认就带入了许多的Style,例如Office 2007的许多漂亮样式确实很方便,但是同样也 ...
- World Wind Java开发之十三——加载Geoserver发布的WMS服务(转)
这篇是转载的平常心博客,原地址见:http://www.v5cn.cn/?p=171 1.WMSTiledImageLayer类说明 一个WMSTiledImageLayer类对象只能对应一个WMS发 ...
- Deep Learning 优化方法总结
Stochastic Gradient Descent (SGD) SGD的参数 在使用随机梯度下降(SGD)的学习方法时,一般来说有以下几个可供调节的参数: Learning Rate 学习率 We ...