Tokyo Cabinet创建表格型dbm

 

用Tokyo Cabinet实现与数据库一样的数据库功能,下面以2010年世界杯球员信息进行演示

 

表格内容如下

id   name    country   classid     createtime

1    莫斯    新西兰    1000003800  2010-05-18 09:21:00

2    列拉    新西兰    1000003800  2010-05-18 09:18:04

3    克劳奇  新西兰    1000003800  2010-05-18 09:18:07

4    德泽乌  新西兰    1000003800  2010-05-18 09:18:22

5    温特拉  新西兰    1000003800  2010-05-18 09:18:34

 

tctmgr命令参数

tctmgr create [-tl] [-td|-tb|-tt|-tx] path [bnum [apow [fpow]]]

tctmgr inform [-nl|-nb] path

tctmgr put [-nl|-nb] [-sx] [-dk|-dc|-dai|-dad] path pkey [cols...]

tctmgr out [-nl|-nb] [-sx] path pkey

tctmgr get [-nl|-nb] [-sx] [-px] [-pz] path pkey

tctmgr list [-nl|-nb] [-m num] [-pv] [-px] [-fm str] path

tctmgr search [-nl|-nb] [-ord name type] [-m num] [-sk num] [-kw] [-pv] [-px] [-ph] [-bt num] [-rm] [-ms type] path [name op expr ...]

tctmgr optimize [-tl] [-td|-tb|-tt|-tx] [-tz] [-nl|-nb] [-df] path [bnum [apow [fpow]]]

tctmgr setindex [-nl|-nb] [-it type] path name

tctmgr importtsv [-nl|-nb] [-sc] path [file]

tctmgr version

创建数据库

tctmgr create players

 

插入数据

tctmgr put players 1 "name" "莫斯" "country" "新西兰" "classid" 1000003800 "createtime" "2010-05-18 09:21:00"

tctmgr put players 2 "name" "列拉" "country" "西班牙" "classid" 1000003800 "createtime" "2010-05-18 09:18:04"

tctmgr put players 3 "name" "克劳奇" "country" "英格兰" "classid" 1000003800 "createtime" "2010-05-18 09:18:07"

tctmgr put players 4 "name" "德泽乌" "country" "荷兰" "classid" 1000003800 "createtime" "2010-05-18 09:18:22"

tctmgr put players 5 "name" "温特拉" "country" "希腊" "classid" 1000003800 "createtime" "2010-05-18 09:18:34"

 

查看数据

tctmgr list -pv players

结果如下:

1       name    莫斯    country 新西兰  classid 1000003800      createtime      2010-05-18 09:21:00

2       name    列拉    country 西班牙  classid 1000003800      createtime      2010-05-18 09:18:04

4       name    德泽乌  country 荷兰    classid 1000003800      createtime      2010-05-18 09:18:22

3       name    克劳奇  country 英格兰  classid 1000003800      createtime      2010-05-18 09:18:07

5       name    温特拉  country 希腊    classid 1000003800      createtime      2010-05-18 09:18:34

按条件查询数据

通过主键进行查询,查询球员id为3的信息

tctmgr get players 3

结果如下:

name    克劳奇

country 英格兰

classid 1000003800

createtime      2010-05-18 09:18:07

 

通过非主键查询

#查询克劳奇球员 相当于标准sql中的where 字段='字符串'

tctmgr search -pv players name STREQ "克劳奇" 

结果如下:

3       name    克劳奇  country 英格兰  classid 1000003800      createtime      2010-05-18 09:18:07

 

#查询以温开头的球员 相当于标准sql中的相当于标准sql中like '字符串%;

tctmgr search -pv players name STRBW "温" 

5       name    温特拉  country 希腊    classid 1000003800      createtime      2010-05-18 09:18:34

 

附查询条件表达式(前面加~,相当于标准sql中的非)

* STREQ : 完全包含字符串,相当于标准sql中的where 字段='字符串'

* STRINC : 包含此字符串,相当于标准sql中like '%字符串%'

* STRBW : 以此字符串开头的内容,相当于标准sql中like '字符串%'

* STREW : 以此字符串结尾的内容,相当于标准sql中like '%字符串'

* STRAND : 包含在某区间内的内容,如标准sql中like 'a-z',那么他只能是a到z的字母

* STROR : 不包含在某区间内的内容,如标准sql中like '!a-z',那么他只能是数字或其他的符号

* STRRX : 组合式结构,如标准sql中like "a"!b-m"#"

* NUMEQ : 数值大小一样 相当于标准sql中 where a='1'

* NUMGT : 数值大于某一值 相当于标准sql中 where a>'1'

* NUMGE : 数值大于等于某一值 相当于标准sql中 where a>='1'

* NUMLT : 数值小于某一值 相当于标准sql中 where a<'1'

* NUMLE : 数值小于某一值 相当于标准sql中 where a<='1'

* NUMBT : 数值处于某一数值区间,相当于标准sql中 where a> 1 and a < 10

* NUMOREQ : 数值不处于某一数值的区间,如果是a大于1,小于10的话,那这个表达式右边的内容应该相当于标准sql中 where a< 1 or a > 10

附排序

* STRASC : 按字面大小的升序排序

* STRDESC : 按字面大小的降序排序

* STRASC : 按数字大小的升序排序

* STRDESC : 按数字大小的降序排序

 

删除数据

tctmgr out players 2

#确认结果

tctmgr list -pv players

1       name    莫斯    country 新西兰  classid 1000003800      createtime      2010-05-18 09:21:00

4       name    德泽乌  country 荷兰    classid 1000003800      createtime      2010-05-18 09:18:22

3       name    克劳奇  country 英格兰  classid 1000003800      createtime      2010-05-18 09:18:07

5       name    温特拉  country 希腊    classid 1000003800      createtime      2010-05-18 09:18:34

 

删除数据库

rm players  (数据库所在的路径)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值