巨杉数据库SequoiaDB的常用操作
2017-07-02 13:23
447 查看
巨杉数据库的基本操作。巨杉可以通过nosql的方式对数据库进行操作,也可以通过自带的sql对对数据库进行操作。但是自带的sql方式比较弱,有以下缺点: 1.语法比较苛刻,关键字as不能省略,如select a._id as id from xx.xx as a,两个as都不能省。 2.错误提示不明显,无法清楚语法哪里出错。 3.很多语法不支持 如:db.exec("select a.* from scott.person as a") --a.*报错 db.exec("select a.name,a.age from scott.person as a,scott.personNameAge as b where a.name=b.name") --报错a,b关联 4.表关联性能非常差。 --下面为巨杉数据库的常用操作 root@iZwz91f71l9kck30hh2hkoZ:~# sdb > db = new Sdb('localhost',11810) --连接巨杉 > db.createCS("scott") --建立集合空间 > db.scott.createCL("person") --建立集合 > db.help() --帮助 > db.scott.help() > db.scott.person.help() --增 > db.scott.person.insert({name:"hadoop",age:10}) > db.scott.person.insert({name:"spark",age:5}) > db.execUpdate("insert into scott.person (name,value) values ('sdb',3)") --sql写法 --查 > db.scott.person.find() > db.scott.person.find({},{name:1}) --select name from xx.xx > db.scott.person.find({name:"hadoop"},{name:1}) --select name from xx.xx where name='hadoop' > db.exec("select * from scott.person") --sql写法 --改 > db.scott.person.update({$set:{age:11}},{name:"hadoop"}) --update xx.xx set age=11 where name='hadoop' > db.scott.person.update({$unset:{age:""}},{name:"hadoop"}) --先匹配name='hadoop'的记录,再drop掉age字段 > db.execUpdate("update scott.person set age=11 where name='hadoop'") --sql写法 --删 > db.scott.person.remove({name:"hadoop"}) --delete from table xx.xx where name='hadoop' > db.scott.person.remove() --delete from table xx.xx > db.scott.person.truncate() --truncate table xx.xx > db.dropCL("person") --drop table xx > db.execUpdate("delete from scott.person where name='hadoop'") --sql写法 --drop字段 > db.scott.person.update({$unset:{age:""}}) --alter table scott.person drop column age; Takes 0.1191s. --insert...select db.execUpdate("insert into scott.person select * from scott.personNameAge") --不能插入多次,objectid不能重复 db.execUpdate("insert into scott.person select id,name from scott.personNameScore") --可以插入多次 --insert(for循环) for(var i=0; i<=7; i++) db.scott.rq.insert({rq:i}) for(var i=1; i<=100; i++) db.scott.test.insert({id:i,name:"name"+i,rq:i%7}) --limit n offset m 从下标为m开始,取n条记录 > db.exec("select bsfwtmc from scott.t_yjd order by _id limit 3 offset 3") { "bsfwtmc": "惠城区河南岸办税服务厅二厅" } { "bsfwtmc": "惠城区小金口办税服务厅" } { "bsfwtmc": "惠城区水口办税服务厅" } Return 3 row(s). --主键_id的查询 db.scott.t_bsfwt.find({_id:{"$oid":"589bcbf01a7edd1f1b000000"}}) > db.exec("select max(_id) as id from scott.t_bsfwt") { "id": { "$oid": "589bcbf01a7edd1f1b00020d" } } Return 1 row(s). Takes 0.9621s. > db.exec("select min(_id) as id from scott.t_bsfwt") { "id": { "$oid": "589bcbf01a7edd1f1b000000" } } --exists查null的字段 选择集合 bar 中存在字段 age 的记录 > db.foo.bar.find({age:{$exists:1}}) 选择集合 bar 中嵌套对象 content 不存在 name 字段的记录 > db.foo.bar.find({"content.name":{$exists:0}}) --like操作,正则表达式Regex查找0到9开头的记录 db.exec("select gzzkb from scott.t_bsfwt where gzzkb like '^[0-9]' ") db.scott.t_bsfwt.find({bsfwt_dm:{$regex:'24419.*',$options:'i'}}) > db.scott.person.find({name:Regex("b","i")}) --like '%b%' > db.scott.person.find({name:Regex("^.bc$","i")}) --like '_bc%' > db.scott.person.find({name:Regex("^.bb$","i")}) --like '_bb%' --分页查询 import org.bson.BasicBSONObject; import com.sequoiadb.base.CollectionSpace; import com.sequoiadb.base.DBCollection; import com.sequoiadb.base.DBCursor; import com.sequoiadb.base.Sequoiadb; public class TestSdb_page{ public static void main(String[] args) { String connString="iZ94ps2ghdsZ:11810"; String username=""; String password=""; Sequoiadb db = new Sequoiadb(connString, username, password); CollectionSpace scott = db.getCollectionSpace("scott"); DBCollection cl = scott.getCollection("cl"); //cl.query(matcher, selector, orderBy, hint, skipRows, returnRows) cl.query("", "", "", "", 0, 20) } }
相关文章推荐
- 对数据库操作的常用函数大全
- ASP常用数据库连接及操作的方法和技巧
- 通过配置DS操作数据库的常用代码
- ASP编程中连接数据库和数据库操作的常用代码
- ASP编程中连接数据库和数据库操作的常用代码
- ORACLE数据库常用操作
- mysql常用操作-----数据库的备份和恢复
- Enterprise Library2.0数据库常用操作
- PHP 下与几个常用数据库的操作函数
- 操作 SQL Server Mobile 2005 数据库的常用 C# 代码
- ASP常用数据库连接及操作的方法和技巧
- 常用的数据库和数据库操作
- (转)数据库操作常用函数大全(Sql Server 2000 oracle9i)
- 转 操作 SQL Server Mobile 2005 数据库的常用 C# 代码
- 操作 SQL Server Mobile 2005 数据库的常用 C# 代码 (转自黎波)
- 数据库操作常用函数大全(Sql Server 2000 oracle9i)
- 我常用的数据库操作bin
- 常用数据库建表操作SQL代码
- mobile 5 中操作SDF数据库的常用方法
- mobile 5 中操作SDF数据库的常用方法