Nosql(hbase)与传统数据库的区别
2015-07-07 10:17
316 查看
本帖最后由 pig2 于 2014-5-21 18:23 编辑 问题导读: 1.nosql数据库能否删除列 2.nosql数据库如何删除一条记录 3.nosql数据库列族和lieder区别是什么? 4.nosql操作与传统数据库的操作区别在什么地方? 对于大多数做技术的人员,都知道我们传统数据库是什么样子的,那么如下图所示,我们操作的对象是行。 也就是增删改查,都是以为对象。 1.传统数据库增加删除介绍 图1 下面我们以mysql为例: 插入数据 mysql>INSERT INTO blog_user (`user_Name`,`user_Password`,`user_emial`)VALUES ('aboutyun','aboutyun', 'aboutyun@sina.com'); 删除数据: mysql> delete from blog_user where user_name="aboutyun"; 复制代码 2.Nosql数据库增加删除介绍 图2 以hbase为例: 创建表: create 'blog_user','userInfo' 复制代码 插入数据 这里是关键点,也是很多人不容易理解的地方 hbase(main):012:0> put'blog_user','www.aboutyun.com','userInfo:user_Name','aboutyun' 0 row(s) in 1.7530 seconds 复制代码 上面我们看到了 1所示是什么,我们在传统数据块里面根本没有,这是nosql所特有的,是一个rowkey,是系统自带的,也是nosql中一条记录的唯一标识。但是这个唯一标识,有跟我们的传统数据库是有所差别的。如图1所示,“记录1”便是rowkey. 2所示是我们插入的列user_Name,这也是最难以理解的地方,列竟然可以插入。并且其’value‘为3即'aboutyun' 我们插入了列,下面我们来查看一下效果: 下面来解释一下上面的含义: 我们会看到 1为rowkey,插入数据’www.aboutyun.com‘, 2为列族下面列的名字user_Name 3我们并没有在设计的添加这个列族,所以这个是系统自带的,这个是记录的操作时间,以时间戳的形式放到hbase里面。 4是我们插入的user_Name的值 下面我们在插入password: hbase(main):015:0> put'blog_user','www.aboutyun.com','userInfo:user_Password','aboutyun' 复制代码 再次查询结果: hbase(main):016:0> scan 'blog_user' ROW COLUMN+CELL www.aboutyun.com column=userInfo:user_Name, timestamp=1400663775901, value=aboutyun www.aboutyun.com column=userInfo:user_Password, timestamp=1400665203430, value=aboutyun 1 row(s) in 0.0390 seconds 复制代码 到这里,我们看到两行记录,传统数据块认为这是两行数据,对于nosql,这是一条记录。 删除列数据 删除数据分为删除列和删除记录 1.删除列 这里面的删除,没有删除 delete 'blog_user','www.aboutyun.com','userInfo:user_Password' 从上面我们看出列被删除了 2.删除记录: deleteall 'blog_user','www.aboutyun.com' 复制代码 这是删除之前显示结果,这里已经是 删除后结果 总结 对于传统数据库,增加列对于一个项目来讲,改变是非常大的。但是对于nosql,插入列和删除列,跟传统数据库里面的增加记录和删除记录类似 |
相关文章推荐
- Oracle使用存储过程下载Blob大对象
- SQL连接查询深度探险
- Could not connect to Redis at XX.XX.XX.XX:XX: Cannot assign requested address
- SqlServer中查看当前Open的Cursor方法
- mysql中通过not exists寻找两个表中的差异数据
- mysql的源码包方式安装(mysql5.5)
- Oracle中instr函数使用方法
- Mysql中一些比较有用的命令
- SQlServer2008 之 定时执行sql语句作业的制定
- SQL Server中查看对象定义的SQL语句
- 收缩数据库日志
- sqlldr的用法详解
- Oracle 表被其他的 过程/视图 引用
- 使用ORACLE在线重定义将普通表改为分区表
- SQL注入攻击
- 数据库三范式
- Slave延迟很大的优化方法总结(MySQL优化)
- mysql创建新用户
- SQLSERVER如何获取一个数据库中的所有表的名称、一个表中所有字段的名称
- sql