zoukankan      html  css  js  c++  java
  • Python学习笔记(五)之Python操作Redis、mysql、mongodb数据库

    操作数据库

    一、数据库

    数据库类型主要有关系型数据库和菲关系型数据库。

    数据库:用来存储和管理数的仓库,数据库是通过依据数据结构”将数据格式化,以记录->->的关系存储。因此数据查询的效率比较高

    关系型数据库:是依据关系模型创建的数据库。所谓的关系模型指:“一对一,一对多,多对多”等关系模型。关系模型就是二维表的模型,

    关系型数据库:小型数据库,中型数据库,大型数据库。

    小型数据库:access、foxbase(了解)

    中型数据:mysqlsqlserver(可以学习一下,使用范围比较广(中小型企业))

    MySQL是一个开源的完全免费的数据库系统,是一个快速的、可靠的和易于使用的数据库服务器

    SQL Server是由微软开发的数据库管理系统,它只能在Windows上运行,它已广泛用于电子商务、银行、保险、电力等与数据库有关的行业

    大型数据库:Oracledb2sybase

    Oracle能在所有主流平台上运行,它是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。

    db2能在所有主流平台上运行,适用于海量数据,在企业级的应用最为广泛。

    非关系型数据库:基于“非关系模型”的数据库(列模型:存储的数据是一列列的。关系型数据库以一行作为一个记录;键值对模型:存储的数据是一个个“键值对”;文档类模型:以一个个文档来存储数据,有点类似“键值对”。)

    列模型:Hbase

    键值对模型:redis,MemcacheDB

    文档类模型:mongoDB

    二、python操作数据库

    这里咱们介绍一下python怎么操作mysqlredismongodb

    1. python操作mysql数据库 

    操作mysql数据库需要安装第三方模块pymysqlpip 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数据库

     

  • 相关阅读:
    606. Construct String from Binary Tree 【easy】
    520. Detect Capital【easy】
    28. Implement strStr()【easy】
    521. Longest Uncommon Subsequence I【easy】
    线程,进程,任务
    nginx for windows中的一项缺陷
    nginx在windwos中的使用
    关于wxwidgets图形界面的关闭窗口的按钮无效的解决办法
    进程与线程之间的资源的关系
    关于函数可重入需要满足的条件
  • 原文地址:https://www.cnblogs.com/yunyuan01/p/9307796.html
Copyright © 2011-2022 走看看