📅  最后修改于: 2023-12-03 14:40:01.652000             🧑  作者: Mango
Cassandra 是一个高度可扩展的分布式数据库,使用 CQL(Cassandra Query Language)作为其主要查询语言。在本文中,我们将介绍一些常用的 CQL 查询,以帮助开发人员优化他们的 Cassandra 数据库操作。
CREATE KEYSPACE my_keyspace
WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 3};
在这个例子中,我们使用 CREATE KEYSPACE
语句来创建一个名为 my_keyspace
的键空间。我们使用简单策略 SimpleStrategy
和复制因子 replication_factor
3 来设置键空间的复制配置。
CREATE TABLE my_keyspace.users (
id UUID PRIMARY KEY,
name TEXT,
email TEXT
);
在上述示例中,我们使用 CREATE TABLE
语句创建了一个名为 users
的表。表中有一个主键 id
,以及两个附加的列 name
和 email
。
INSERT INTO my_keyspace.users (id, name, email)
VALUES (uuid(), 'John Doe', 'john.doe@example.com');
上述示例展示了如何使用 INSERT INTO
语句将一行新的数据插入到 users
表中。
SELECT * FROM my_keyspace.users WHERE id = uuid();
在上述示例中,我们使用 SELECT
语句从 users
表中选择具有特定 id
值的行。
UPDATE my_keyspace.users SET email = 'johndoe@example.com' WHERE id = uuid();
上述示例展示了如何使用 UPDATE
语句更新 users
表中具有特定 id
值的行的 email
列。
DELETE FROM my_keyspace.users WHERE id = uuid();
在上述示例中,我们使用 DELETE FROM
语句从 users
表中删除具有特定 id
值的行。
INSERT INTO my_keyspace.users (id, name, email)
VALUES (uuid(), 'Jane Smith', 'jane.smith@example.com')
IF NOT EXISTS;
上述示例展示了如何使用 IF NOT EXISTS
条件在插入数据之前检查行是否已经存在。这可以避免重复数据的插入。
INSERT INTO my_keyspace.users (id, name, email)
VALUES (uuid(), 'Alice Brown', 'alice.brown@example.com')
USING TTL 86400;
上述示例展示了如何使用 USING TTL
子句设置插入的数据行的生存时间(TTL)为 86400 秒。在该时间到期后,数据行将被自动删除。
Cassandra 提供了各种聚合函数,以帮助计算数据集的统计信息,例如总和、平均值和计数等。
SELECT COUNT(*) FROM my_keyspace.users;
SELECT AVG(age) FROM my_keyspace.users;
SELECT SUM(sales) FROM my_keyspace.sales_data;
上述示例展示了如何使用 COUNT
、AVG
和 SUM
聚合函数来执行聚合查询。
以上是一些常用和有用的 CQL 查询示例,可帮助开发人员在他们的 Cassandra 数据库操作中更好地利用 CQL 查询语言的功能。请根据具体的业务需求选择适当的查询语句,并根据项目的架构和设计进行调整和优化。