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  (數據庫所在的路徑)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章