一、Cassandra Query 措辞的基本模式
Cassandra query 措辞采取 CQL(Cassandra Query Language,Cassandra 查询措辞)。CQL 的语法与大多数关系型数据库中利用的 SQL 语法类似:
```

SELECT Columns
FROM Table
WHERE Predicates
LIMIT Limit Values;
```
大略的来说,Cassandra Query 措辞哀求你在 `FROM`,`WHERE`,`SELECT`,并 `LIMIT` 之间放置精确的语ntax。
二、CQL 数据类型
要理解 Cassandra Query language, 你须要理解该措辞中的数据类型. 以下是 Cassandra query 措辞中的大部分数据类型,你须要熟习:
- `int`:整型数字。
- `bigint`:长整型。
- `float`:浮点数。
- `double`:Double精度浮点数。
- `text`:Cassandra 的笔墨类型。
- `blob`:二进制数据类型。
- `timestamp`:UTC 韶光戳。
三、CQL操作符
Cql 操作符让你在表中实行 complex queries 操作。以下列出了一些常见的 Cql 操作符:
- `equal to`(`=`)用于即是操作。
- `not equal to` (`<>`) 用于不即是操作。
- `greater than or equal to`(`>=`)或 `less than or equal to`( `<=`) 用于定义大于即是或小于等级的范围。
- `contains` (`contains`) , `in` (`IN`) 用于凑集语义,可以在多行中搜索给定的值。
- `like pattern` (`LIKE`) Cql 的 `LIKE` 模式与在关系型数据库中利用的类似模式事情。
- `IS NULL` 和 `IS NOT NULL` 用于设置或检讨工具的 `NULL` 情形。
四、进阶的查询组成
Cassandra Query language 许可链接 `WHERE` predicates, `ORDER BY`s, `LIMIT`s, and table references into a single query (查询语句):
```
SELECT Column(s)
FROM Table(s).Column_Family(s)
WHERE Predicate(s)
ORDER BY Column(s) Desc|Asc
LIMIT X;
```
五、CQL 中用于繁芜查询的聚合函数
对付统计和 sum 这类操作,CQL 供应聚合函数,例如 `count`, `sum`, `max`, `min`, `average`,等等。例如打算用户的 ages 的均匀值和最大值:
```
SELECT AVG(age) , MAX(age)
FROM users ;
```
六、Indexing
在 Cassandra中,查询优先级要高于 insert/update 操作。但是,Cassandra在不索引的情形下仍旧能够提高查询性能:它通过分号和 Bloom filters 来缓解读操作带来的压力。然而, 索引可确保读取操作尽可能快。根据 CQL 可以利用以下各种类型的索引创建:
- `PRIMARY KEY` : Cassandra表的紧张键。必须有且只有一组主键。
- `INDEX`: 赞助索引。
- `STATIC`: 静态索引。
- `GROUPING`: 用于表聚合的索引。
- `MATERIALIZED`: 将索引存储为一个物料化视图。
- `SASI (Secondary Index) `: 通过创建一个新表来实现所有不在主表上的列的索引。
七、CASSANDRA QUERY WITH MULTI-GROUPED RESULTS
在 Cassandra 里,我们可以利用同一个 SELECT statement 从多个表取得数据,并汇总数据,然后再对其进行处理。
例如,一次从表 `inventory` 和 `orders`取得数据:
```
SELECT i.product, SUM(o.quantity) as total FROM inventory i JOIN orders o ON i.id = o.item_id GROUP BY i.product;
```
综上,CASSANDRA Query Language, 即 CQL (Cassandra Query Language) 是非关系库中一种强大有效的查询措辞办理方案,它具备高度的扩展和高可用性,同时具备一些类 SQL 语法。理解 CQL 的根本语法和数据类型,节制操作符的利用和繁芜的语句构建,能确保在 Cassandra Database 中实行高度相应、高性能且准确的查询语句。
末了把稳:由于性能缘故原由,Cql 常日鼓励将繁芜或常常实行的查询转换为存储 procedures,存储 procedures(存储过程、函数和触发器凑集)在 Cassandra DB 中可以简化和优化 complex query patterns。