Introduction
Apache Cassandra is a highly scalable, distributed NoSQL database designed to handle large amounts of data across many commodity servers with no single point of failure. This cheat sheet provides a quick reference to some of the most commonly used Cassandra commands and CQL (Cassandra Query Language) statements.
Apache Cassandra Commands Cheat Sheet
Keyspace Management
Command |
Description |
Syntax |
Example |
CREATE KEYSPACE |
Creates a new keyspace. |
CREATE KEYSPACE keyspace_name WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 3}; |
CREATE KEYSPACE school WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 3}; |
ALTER KEYSPACE |
Modifies an existing keyspace. |
ALTER KEYSPACE keyspace_name WITH replication = {'class': 'NetworkTopologyStrategy', 'datacenter1': 3}; |
ALTER KEYSPACE school WITH replication = {'class': 'NetworkTopologyStrategy', 'datacenter1': 3}; |
DROP KEYSPACE |
Deletes a keyspace and all its data. |
DROP KEYSPACE keyspace_name; |
DROP KEYSPACE school; |
DESCRIBE KEYSPACE |
Displays the schema of a keyspace. |
DESCRIBE KEYSPACE keyspace_name; |
DESCRIBE KEYSPACE school; |
Table Management
Command |
Description |
Syntax |
Example |
CREATE TABLE |
Creates a new table. |
CREATE TABLE keyspace_name.table_name (column_definitions PRIMARY KEY (column_name)); |
CREATE TABLE school.students (student_id UUID PRIMARY KEY, first_name TEXT, last_name TEXT, age INT); |
ALTER TABLE |
Modifies an existing table. |
ALTER TABLE keyspace_name.table_name ADD column_name data_type; |
ALTER TABLE school.students ADD email TEXT; |
DROP TABLE |
Deletes a table and all its data. |
DROP TABLE keyspace_name.table_name; |
DROP TABLE school.students; |
TRUNCATE TABLE |
Deletes all data from a table. |
TRUNCATE TABLE keyspace_name.table_name; |
TRUNCATE TABLE school.students; |
DESCRIBE TABLE |
Displays the schema of a table. |
DESCRIBE TABLE keyspace_name.table_name; |
DESCRIBE TABLE school.students; |
Data Manipulation
Command |
Description |
Syntax |
Example |
INSERT |
Adds a new record to a table. |
INSERT INTO keyspace_name.table_name (column1, column2) VALUES (value1, value2); |
INSERT INTO school.students (student_id, first_name, last_name, age) VALUES (uuid(), 'John', 'Doe', 20); |
UPDATE |
Modifies existing records in a table. |
UPDATE keyspace_name.table_name SET column1 = value1 WHERE condition; |
UPDATE school.students SET age = 21 WHERE student_id = 'some-uuid'; |
DELETE |
Removes records from a table. |
DELETE FROM keyspace_name.table_name WHERE condition; |
DELETE FROM school.students WHERE student_id = 'some-uuid'; |
SELECT |
Retrieves data from a table. |
SELECT column1, column2 FROM keyspace_name.table_name WHERE condition; |
SELECT first_name, last_name FROM school.students WHERE age > 18; |
Batch Operations
Command |
Description |
Syntax |
Example |
BEGIN BATCH |
Begins a batch operation. |
BEGIN BATCH ... APPLY BATCH; |
BEGIN BATCH INSERT INTO school.students (student_id, first_name, last_name, age) VALUES (uuid(), 'Jane', 'Doe', 22); INSERT INTO school.students (student_id, first_name, last_name, age) VALUES (uuid(), 'Tom', 'Smith', 23); APPLY BATCH; |
User Management
Command |
Description |
Syntax |
Example |
CREATE USER |
Creates a new user. |
CREATE USER username WITH PASSWORD 'password'; |
CREATE USER john WITH PASSWORD 'password123'; |
ALTER USER |
Modifies an existing user. |
ALTER USER username WITH PASSWORD 'new_password'; |
ALTER USER john WITH PASSWORD 'newpassword123'; |
DROP USER |
Deletes a user. |
DROP USER username; |
DROP USER john; |
GRANT |
Grants a role or permission to a user. |
GRANT permission ON resource TO username; |
GRANT ALL ON KEYSPACE school TO john; |
REVOKE |
Revokes a role or permission from a user. |
REVOKE permission ON resource FROM username; |
REVOKE ALL ON KEYSPACE school FROM john; |
Index Management
Command |
Description |
Syntax |
Example |
CREATE INDEX |
Creates an index on a table column. |
CREATE INDEX index_name ON keyspace_name.table_name (column_name); |
CREATE INDEX student_last_name_idx ON school.students (last_name); |
DROP INDEX |
Deletes an index from a table. |
DROP INDEX keyspace_name.index_name; |
DROP INDEX school.student_last_name_idx; |
CQL Functions
Command |
Description |
Syntax |
Example |
TTL |
Returns the time-to-live value for a column. |
SELECT TTL(column_name) FROM keyspace_name.table_name WHERE condition; |
SELECT TTL(age) FROM school.students WHERE student_id = 'some-uuid'; |
WRITETIME |
Returns the write timestamp of a column. |
SELECT WRITETIME(column_name) FROM keyspace_name.table_name WHERE condition; |
SELECT WRITETIME(age) FROM school.students WHERE student_id = 'some-uuid'; |
Conclusion
Mastering Cassandra commands and CQL is essential for efficiently managing and querying Cassandra databases. This cheat sheet provides a quick reference to some of the most commonly used commands, helping you navigate and operate your Cassandra databases more effectively. Keep this guide handy to make the most of Apache Cassandra. Happy coding!
By understanding and using these commands, you can simplify your database management processes, enhance your efficiency, and ensure your databases are well-maintained.