处理数据库的库: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对象,如果要选择表的所有记录 - cond是一个str对象,如
- mdbstr插入(表,数据):returnstr命令插入新记录
mrldb类
mrldb基类:(mrldbcassandra、mrldbmsql、mrldbsqlite的基类)
- mrldb插入(表,数据):插入新记录
- 表是astr。
- 数据是带要插入{"col1":"value1","col2",3.14}的列和值的dict
- 表是astr。
- 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对象,如果要选择表的所有记录 - cond是一个str对象,如
- mrldbinit():从数据库结构中创建(或忽略(如果它们已经存在)表
- mrldb光标:一个连接,您可以使用mrldb光标执行(命令)
- mrldb结构:db结构的dict或未指定的nonetype对象
- mrldb\u配置:连接配置的dict
- mrldb获取信息:返回mrldb配置
- mrldb插入(表,数据):插入新记录
mrldbcassandra(集群,db=none,structure=none,username=none,password=none):卡桑德拉集群处理程序,需要库
卡桑德拉驱动程序
- 您可以使用所需的数据库,也可以不使用它
- 用户名和密码仅用于PlainTextAuthProvider,如果您为数据库配置了用户和密码,则我们将以匿名方式连接
mrldbmsql(主机,数据库=none,结构=none,用户=none,密码=none):Cassandra集群处理程序,需要库
MySQL
- 主机是主机的IP地址或主机的DNS可解析名称
- 您可以使用所需的数据库
- 用户名和密码仅用于PlainTextAuthProvider,如果您为数据库配置了用户和密码,则我们将以匿名方式连接
mrldbsqlite(file,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