NoSql之旅--Cassandra的Cql简介(二)
安装完Cassandra后我们就开始体验一下这个数据库的查询吧,传统的关系数据库使用的sql进行查询,而Cassandra使用的cql.
cql语法还是很多的,这里不一一详细阐述了,也没这个必要,具体的文档数不胜数,这里只是把最最常用的查询功能列举出来.
首先打开命令行(或是powershell)进入Cassandra安装目录下的bin文件夹,执行cqlsh.bat(powershell下执行cqlsh也ok).这里我进入的是powershell.
//进入cql客户端,powershell中直接用cqlsh登陆即可,cmd和命令行下需要使用cqlsh.bat进入
PS D:\apache-cassandra-2.1.7\bin> .\cqlsh
Connected to Test Cluster at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 2.1.7 | CQL spec 3.2.0 | Native protocol v3]
Use HELP for help.
WARNING: pyreadline dependency missing. Install to enable tab completion.
cqlsh>
先介绍一下keyspace,中文直译为键值空间,实际是一种命名空间的概念,这个和关系数据库中的数据库的地位类似.然后我们查询一下有哪些keyspace:
//显示keyspace
cqlsh> describe keyspaces; mykeyspace simplex system_traces system
结果显示查询到4个keyspace,红字表示部分.然后我们手动自己创建一个keyspace:
//创建keyspace
cqlsh> CREATE KEYSPACE IF NOT EXISTS myCas WITH REPLICATION = {'class': 'SimpleStrategy','replication_factor':1};
cqlsh> describe keyspaces; mycas mykeyspace simplex system_traces system
可以看到已经成功创建名字为mycas的keyspace.我们使用刚创建的keyspace:
//选择keyspace
cqlsh> use mycas;
cqlsh:mycas>
我们在当前keyspace下创建一个表user,并显示当前keyspace下的所有表:
//创建表
cqlsh:mycas> CREATE TABLE user (
id int,
user_name varchar,
PRIMARY KEY (id) ); cqlsh:mycas> describe tables; user
结果所示,当前keyspace下只有我们刚刚创建的user表.向表中插入一条数据:
//向表中添加数据
cqlsh> use mycas;
cqlsh:mycas> INSERT INTO users (id,user_name) VALUES (1,'zhangsan');
cqlsh:mycas> select * from users; id | user_name
----+-----------
| zhangsan
然后我们进行一下简单的条件查询:
//从表中查询数据
cqlsh:mycas> select * from users where id=1; id | user_name
----+-----------
| zhangsan (1 rows)
cqlsh:mycas> select * from users where user_name='zhangsan';
InvalidRequest: code=2200 [Invalid query] message="No secondary indexes on the restricted columns support the provided o
perators: "
可以看出查询主键可以,但是查询没有索引的user_name却无法查询.
我们创建一个索引后再次尝试:
//创建索引
cqlsh:mycas> create index on users(user_name);
cqlsh:mycas> select * from users where user_name='zhangsan'; id | user_name
----+-----------
| zhangsan
试一下更新:
//更新表中数据
cqlsh:mycas> update users set user_name='lisi';
SyntaxException: <ErrorMessage code=2000 [Syntax error in CQL query] message="line 1:33 mismatched input ';' expecting K
_WHERE">
cqlsh:mycas> update users set user_name='lisi' where id=1;
cqlsh:mycas> select * from users; id | user_name
----+-----------
| lisi
可以看出只能按照条件进行更新.
试一下删除:
//删除表中数据
SyntaxException: <ErrorMessage code=2000 [Syntax error in CQL query] message="line 1:17 mismatched input ';' expecting K
_WHERE">
cqlsh:mycas> delete from users where id=1;
cqlsh:mycas> select * from users; id | user_name
----+----------- (0 rows)
可以看出删除也只能按照条件进行删除.
更多具体的命令可以参看Cassandra的官方cql文档,非常全面.
NoSql之旅--Cassandra的Cql简介(二)的更多相关文章
- NoSql之旅--Cassandra安装篇(一)
有点迷茫了,头脑中只想起来一句话,"那就去学习吧". 我负责的项目中有一部分用到了Cassandra,当时也看过点,但是并没有太深入的了解,既然"学习劲头"正足 ...
- WCF学习之旅—TCP双工模式(二十一)
WCF学习之旅—请求与答复模式和单向模式(十九) WCF学习之旅—HTTP双工模式(二十) 五.TCP双工模式 上一篇文章中我们学习了HTTP的双工模式,我们今天就学习一下TCP的双工模式. 在一个基 ...
- Cassandra在CQL语言层面支持多种数据类型
Cassandra在CQL语言层面支持多种数据类型. CQL类型 对应Java类型 描述 ascii String ascii字符串 bigint long 64位整数 blob ByteBuffer ...
- {Django基础七之Ajax} 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解)
Django基础七之Ajax 本节目录 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解) 一 Ajax简介 ...
- Windbg 脚本命令简介 二, Windbg command
Windbg 脚本命令简介 二, Windbg script command $<, $><, $$<, $$><, $$>a< (Run Scri ...
- NoSQL Manager for Cassandra 3.2.0.1 带Key
NoSQL Manager for Cassandra 3.2.0.1 是一个Windows平台下Cassandra 数据库的高级管理工具.请低调使用. NoSQLManagerforCassandr ...
- {Django基础七之Ajax} 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解)
{Django基础七之Ajax} 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解) Django基础七之 ...
- 数据源管理 | 分布式NoSQL系统,Cassandra集群管理
本文源码:GitHub·点这里 || GitEE·点这里 一.Cassandra简介 1.基础描述 Cassandra是一套开源分布式NoSQL数据库系统.它最初由Facebook开发,用于储存收件箱 ...
- NOSQL之旅---HBase
最近因为项目原因,研究了Cassandra,Hbase等几个NoSQL数据库,最终决定采用HBase.在这里,我就向大家分享一下自己对HBase的理解. 在说HBase之前,我想再唠叨几句.做互联网应 ...
随机推荐
- Play libs
The play.libs package contains several useful libraries that will help you to achieve common program ...
- 为Apple Push开发的PHP PEAR 包:Services_Apple_PushNotification
Apple Push Notification Service:通过苹果服务器向app用户推送消息,无需启动app. 苹果官方文档:http://developer.apple.com/library ...
- 20个新鲜出炉的网站模板【HTML & PSD】
这里给大家分享20 个新鲜出炉的免费网站模板.这些设计元素将成为你下一个项目的重要素材,可以帮你节省很多的时间.与往常一样,我们经常漫游网络,寻找最好的资源, HTML.CSS 和 PSD 等等,记得 ...
- strurts2入门
MVC :struts2是一个经典开源的mvc框架.主要负责控制器(Controller) 处理请求特点: 核心控制器: +Actions; 与ServletAPI解耦合: 非单例,线程安全. ...
- js中如何获取纯正的undefined?
1.为什么要获取undefined? 因为undefined在javascript中不是保留字,可以被用户当做变量来赋值,这样如果我们后期需要用到undefined来检测一个变量的话,那么检测的值就不 ...
- SharePoint Online 创建门户网站系列之创建栏目
前 言 SharePoint Online的栏目,简单描述即显示在首页上的各个模块信息,这里,我们主要介绍我们首页上的栏目,包括简介类型.新闻列表类型.图片类型: 下面,让我们开始在SharePoin ...
- Java学习心得之 Linux下搭建JavaWeb环境
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Java学习心得之 Linux下搭建JavaWeb环境 1. 前言2. Java安装3. t ...
- SharePoint:WebPartPageUserException This page has encountered a critical error
遇到如下webpart莫名错误,很常见吧.一般用户是直接删掉,知道原因的不算太多. 解决办法(Solution): Usually, This error caused by wrong entrie ...
- 一个UILabel不同部分显示不同颜色
我们直接来看效果图吧: 需求:就是表格cell里面的状态Label,前面的"状态:"是黑色,后面的状态值是红色,他们在同一个Label上,怎么做呢? 解答:真的是会者不难,难者不会 ...
- NSString的内存管理问题 (转载)
NSString是一个不可变的字符串对象.这不是表示这个对象声明的变量的值不可变,而是表示它初始化以后,你不能改变该变量所分配的内存中的值,但你可以重新分配该变量所处的内存空间. 生成一个NSStri ...