处理数据库的库:cassandra、mariadb、(mysql)、sqlite3

mrldb的Python项目详细描述


mrldb由rémi"mr e-rl"langdorph编写

版权所有(c)2019 Rémi Langdorph-mrerl@warlegend.net(在麻省理工学院许可下)

mrldb是用于python的powerfull数据库处理程序

链接:

pypi项目

Github回购

使用pypi安装:

pip install mrldb

此包支持以下数据库系统:mariadb、mysql、cassandra、sqlite3

文档

  • mrldbcluster):可以通过mdbcl访问最后创建的mrldbcluster数据库集群。
    • mrldbcluster获取名称):从别名或名称返回mrldb

    • mrldbcluster添加名称,db,别名=[]):添加具有名称的对象(如果对象具有相同名称,则覆盖),并链接别名

    • mrldbcluster添加别名名称,别名):将别名链接到名称

    • mrldbcluster获取群集信息::返回一个包含所有连接配置的dict{"name":{config…}

    • mrldbcluster[名称]:从别名或名称返回数据库

    • 对于名称,connection inmrldbcluster:遍历元组列表(dbname,connection)

    • mrldbclusterdbs:adict与所有连接{"conn1":<;mrldb>;,…}

    • mrldbcluster别名:adict包含所有别名和域名{"alias":"realname"…}

frommrldbimportMrlDBCluster,mdbclmycluster=MrlDBCluster()
  • mdbcl:返回上次创建的mrldbcluster
print(mdbcl)
  • mdbstr:生成SQL命令的对象(str)(与mrldb类中包含的对象相同)
    • mdbstr插入表,数据):returnstr命令插入新记录
      • table是必须执行insert的表的str
      • 数据是带要插入{"col1":"value1","col2",3.14}的列和值的dict
    • mdbstr更新表,数据,conds=none):returnstr更新现有记录的命令
      • 表是必须执行更新的表的str
      • 数据用列和值更新{"col1":"value1","col2",3.14}
      • cond是一个str对象作为"col1="test"和col2=5"nonetype对象,如果您想更新表的所有记录的话
    • mdbstr选择表格,列,conds=none):returnstr获取记录值的命令
      • table是执行select的表的str
      • 数据是带有要获取的列的列表或获取所有列的"*"
      • cond是一个str对象,如"col1="test"和col2=5"nonetype对象,如果要选择表的所有记录

mrldb

  • mrldb基类:(mrldbcassandra、mrldbmsql、mrldbsqlite的基类)

    • mrldb插入表,数据):插入新记录
      • 表是astr。
      • 数据是带要插入{"col1":"value1","col2",3.14}的列和值的dict
    • mrldb更新表,数据,conds=none):更新现有记录
      • 表是必须执行更新的表的str
      • 数据用列和值更新{"col1":"value1","col2",3.14}
      • cond是一个str对象作为"col1="test"和col2=5"nonetype对象,如果您想更新表的所有记录的话
    • mrldb选择表、列,conds=none):获取记录值
      • table是执行select的表的str
      • 数据是带有要获取的列的列表或获取所有列的"*"
      • cond是一个str对象,如"col1="test"和col2=5"nonetype对象,如果要选择表的所有记录
    • mrldbinit():从数据库结构中创建(或忽略(如果它们已经存在)表
    • mrldb光标:一个连接,您可以使用mrldb光标执行(命令)
    • mrldb结构:db结构的dict或未指定的nonetype对象
    • mrldb\u配置:连接配置的dict
    • mrldb获取信息:返回mrldb配置
  • mrldbcassandra集群,db=none,structure=none,username=none,password=none):卡桑德拉集群处理程序,需要库卡桑德拉驱动程序

    • 您可以使用所需的数据库,也可以不使用它
    • 用户名和密码仅用于PlainTextAuthProvider,如果您为数据库配置了用户和密码,则我们将以匿名方式连接
  • mrldbmsql主机,数据库=none,结构=none,用户=none,密码=none):Cassandra集群处理程序,需要库MySQL

    • 主机是主机的IP地址或主机的DNS可解析名称
    • 您可以使用所需的数据库
    • 用户名和密码仅用于PlainTextAuthProvider,如果您为数据库配置了用户和密码,则我们将以匿名方式连接
  • mrldbsqlitefile,structure=none,autocommit=0):sqlite文件处理程序,需要基本库sqlite3(不建议使用)

    • 文件是sqlite3 db file
    • autocommit是每个autocommit之间的时间(以秒为单位)(可以是浮点数),如果设置为0(默认值),则禁用此选项。

结构参数

使用structure,可以在dict中获取每个记录的列名和结果

结构是所有db类的参数,它必须是none项目或措辞:

MrlDBCassandra(...,structure={"table0":{"col1":"integer unique","col2":"text"},"table2":{"name":"text"}},...)

教程脚本:

frommrldbimportMrlDBCassandra,MrlDBCluster,mdbcl,mdbstr
  • 我们将一个简单的cassandra集群添加到mrldb集群,将cc0设置为db的别名
mdbcl.add("cassandracluster0",MrlDBCassandra("127.0.0.2"),aliases=["cc0"])
  • 我们可以在此连接中添加其他别名:
mdbcl.addalias("cassandracluster0",["cc0_","cassandra0","testcluster"])
  • 您可以使用密码和用户名连接到主机
mdbcl.add("cassandracluster1",MrlDBCassandra("127.0.0.3",username="admin",password="something"))
  • 也可以指定数据库
mdbcl.add("cassandracluster2",MrlDBCassandra("127.0.0.4",database="mydbtest",aliases=["cc3"]))
  • 最好的是,您可以提供具有高级功能的数据库结构
pip install mrldb
0

以下示例适用于所有不同的数据库系统

选择

  • 使用正确的结构,下面的命令将为每个记录提供一个名为a的dict找到值,(您可以用"*"
  • 替换列
pip install mrldb
1

结果=[{"col1":0},{"col1":1}…]

  • 您可以使用这个不带结构的函数,它只返回不带发音的结果
pip install mrldb
2

结果=[(0,),(1,)…]

  • 您可以使用条件
pip install mrldb
3

result=[{"col1":0,"col2":"test"},…]

  • 在sql中(不在cql中!),您可以执行SQL子请求,我们正在使用mdbstr类格式化它们
pip install mrldb
4

将执行此命令:"select*from table0 where(col2='test')或(in(select*from table2 where name='john')"

结果=[{"col1":0,"col2":"测试"},…]

插入

  • 数据是一个dict,包含所有要插入的值
pip install mrldb
5

更新

  • 使用data作为insert命令,可以使用conds指定条件
pip install mrldb
6

数据库初始化

  • 将创建表(如果存在则忽略)作为结构
pip install mrldb
7

使用structure={"table0":{"col1":"integer unique","col2":"text"},"table2":{"name":"text"}

将执行以下命令:

pip install mrldb
8

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java使用prepared语句在oracle中插入日期   对点具有双重值的java   使用多个通配符的java请求映射   java Springboot为什么要设置springbootstartertomcat   除了对JavaBean的请求之外,还使用servletContext的servlet   java如何清除OCSID。返回到池的连接时的CLIENTID JDBC客户端信息属性   将整型数组转换为光栅Java   java使用对象引用作为互斥锁   java为什么在编程语言中使用sin函数返回奇怪的sin值不像计算器   java如何将JButton链接到对象并调用相关方法   php用Java发送POST数据   导航属性的java模拟加载   java多个活动错误Android试图对空对象引用调用虚拟方法“”   java Android更改ActionBar文本颜色   如何使用带有java反射且不带开关的parant引用创建子类