NoSQL数据库概览及其与SQL语法的比较

NoSQL数据库概览及其与SQL语法的比较

分类:软件项目实践中的SQL语言一瞥

* Neo4j:一个图数据库,支持ACID事务

* InfiniteGraph:用来维持和遍历对象间的关系,支持分布式数据存储

* AllegroGraph:结合使用了内存和磁盘,提供了高可扩展性,支持SPARQ、RDFS++和Prolog推理

六、NoSQL和SQL语法的简单比较

前面介绍了NoSQL的基本情况,下面以HBase和ORACLE为例,对NoSQL和SQL的语法进行简单的比较。HBase数据库被认为是安全特性最完善的NoSQL数据库产品之一,它被证实是一个强大的工具,尤其是在已经使用Hadoop的场合。如今,它已经是Apache顶级项目,有着众多的开发人员和兴旺的用户社区。

1.创建表

如果要创建一个表“mytable”,其中包含了一个“info”字段,那么:

(1)ORACLE中的语法为:

create table mytable

(

info varchar(30)not null

);

(2)HBase中的语法为:

create ‘mytable’, ‘cf’

该命令创建了一个有一个列族(“cf”)的表“mytable”。

2.写数据

如果要向表中写入数据“hello hbase”,那么:

(1)ORACLE中的语法为:

insert into mytable(info) values(‘hello hbase’);

(2)HBase中的语法为:

put ‘mytable’, ‘first’, ‘cf:info’, ‘hello hbase’

该命令在“mytable”表的“first”行中的“cf:info”列对应的数据单元中插入“hello hbase”。

3.读(查)数据

如果要从表中读出单条数据,那么:

(1)ORACLE中的语法为:

select * from mytable where info = ‘hello hbase’;

(2)HBase中的语法为:

get ‘mytable’, ‘first’

该命令输出了该行的数据单元。

如果要从表中读出所有数据,那么:

(1)ORACLE中的语法为:

select * from mytable;

(2)HBase中的语法为:

scan ‘mytable’

该命令输出了所有数据。

4.删数据

如果要从表中删除数据,那么:

(1)ORACLE中的语法为:

delete from mytable where info = ‘hello hbase’;

(2)HBase中的语法为:

put ‘mytable’, ‘first’, ‘cf:info’, ‘hello hbase1’

该命令用最新的值覆盖了旧的值,就相当于将原数据删除了。

5.修改数据

如果要在表中修改数据,那么:

(1)ORACLE中的语法为:

update mytable set info = ‘hello hbase1’ where info = ‘hellohbase’;

(2)HBase中的语法为:

put ‘mytable’, ‘first’, ‘cf:info’, ‘hello hbase1’

该命令用最新的值覆盖了旧的值,就相当于修改了原数据。

6.删表

如果要删除表,那么:

(1)ORACLE中的语法为:

drop table mytable;

(2)HBase中的语法为:

disable ‘mytable’

drop ‘mytable’

该命令先将表“disable”掉,然后再“drop”掉。

我们可以看到,HBase的语法比较的简单,因此完全可以将上述所有命令放到一个shell脚本中,让命令批量执行。下面,我们来具体操作一下:

第一步,编写名为“command.sh”的脚本,其内容如下:

exec /root/zhouzx/hbase-1.0.1/bin/hbase shell <<EOF

create ‘mytable’, ‘cf’

put ‘mytable’, ‘first’, ‘cf:info’, ‘hello hbase’

get ‘mytable’, ‘first’

scan ‘mytable’

put ‘mytable’, ‘first’, ‘cf:info’, ‘hello hbase1’

disable ‘mytable’

drop ‘mytable’

EOF

第二步,将该脚本上传到Linux机器的安装HBase的用户下,依次执行“dos2unix command.sh”和“chmod 777command.sh”命令来转换文件格式和对文件赋权限。

第三步,执行“./command.sh”命令,在Linux界面上,我们可以看到如下输出信息:

HBase Shell; enter ‘help<RETURN>’ for list of supportedcommands.

Type "exit<RETURN>" to leave the HBase Shell

Version 1.0.1, r66a93c09df3b12ff7b86c39bc8475c60e15af82d, Fri Apr17 22:14:06 PDT 2015

create ‘mytable’, ‘cf’

0 row(s) in 0.6660 seconds

Hbase::Table – mytable

put ‘mytable’, ‘first’, ‘cf:info’, ‘hello hbase’

0 row(s) in 0.1140 seconds

get ‘mytable’, ‘first’

懂得倾听别人的忠告。

NoSQL数据库概览及其与SQL语法的比较

相关文章:

你感兴趣的文章:

标签云: