CREATE TABLE keyspace.table (
column1 TYPE PRIMARY KEY,
column2 TYPE,
column3 TYPE
);
Example:
CREATE TABLE users.profiles (
id TEXT PRIMARY KEY,
name TEXT,
email TEXT,
age TEXT
);
DROP TABLE keyspace.table;
DESCRIBE keyspace.table; DESC keyspace.table; -- Short form
SHOW TABLES;
-- All columns SELECT * FROM keyspace.table WHERE id = 'value'; -- Specific columns SELECT col1, col2, col3 FROM keyspace.table WHERE id = 'value'; -- Multiple conditions SELECT * FROM keyspace.table WHERE id = 'value' AND status = 'active';
INSERT INTO keyspace.table (col1, col2, col3)
VALUES ('val1', 'val2', 'val3');
-- Single column UPDATE keyspace.table SET col1 = 'new_value' WHERE id = 'value'; -- Multiple columns UPDATE keyspace.table SET col1 = 'val1', col2 = 'val2' WHERE id = 'value';
DELETE FROM keyspace.table WHERE id = 'value';
curl -X POST http://localhost:8080/api/v1/sql/execute \
-H "Content-Type: application/json" \
-d '{"sql": "SELECT * FROM users WHERE id = '\''user-1'\''"}'
curl -X POST http://localhost:8080/api/v1/sql/batch \
-H "Content-Type: application/json" \
-d '{
"statements": [
"INSERT INTO users (id, name) VALUES ('\''1'\'', '\''Alice'\'')",
"INSERT INTO users (id, name) VALUES ('\''2'\'', '\''Bob'\'')"
]
}'
-- Create
CREATE TABLE app.users (id TEXT PRIMARY KEY, username TEXT, email TEXT);
-- Insert
INSERT INTO app.users (id, username, email)
VALUES ('u1', 'alice', 'alice@example.com');
-- Read
SELECT * FROM app.users WHERE id = 'u1';
-- Update
UPDATE app.users SET email = 'new@example.com' WHERE id = 'u1';
-- Delete
DELETE FROM app.users WHERE id = 'u1';
-- Create catalog
CREATE TABLE shop.products (
sku TEXT PRIMARY KEY,
name TEXT,
price TEXT,
stock TEXT
);
-- Add product
INSERT INTO shop.products (sku, name, price, stock)
VALUES ('SKU-001', 'Widget', '19.99', '100');
-- Update price
UPDATE shop.products SET price = '17.99' WHERE sku = 'SKU-001';
-- Update stock
UPDATE shop.products SET stock = '95' WHERE sku = 'SKU-001';
-- Create sessions
CREATE TABLE auth.sessions (
session_id TEXT PRIMARY KEY,
user_id TEXT,
expires_at TEXT
);
-- Create session
INSERT INTO auth.sessions (session_id, user_id, expires_at)
VALUES ('sess-123', 'user-1', '2024-12-31');
-- Check session
SELECT * FROM auth.sessions WHERE session_id = 'sess-123';
-- Delete expired
DELETE FROM auth.sessions WHERE session_id = 'sess-123';
'value' or double quotes: "value"SELECT * FROM users;default: users.profiles or just profilesPRIMARY KEY❌ Forgot WHERE clause
SELECT * FROM users -- Missing WHERE
✅ Always use WHERE for queries
SELECT * FROM users WHERE id = 'user-1'
❌ Unquoted values
SELECT * FROM users WHERE id = user-1 -- No quotes
✅ Quote string values
SELECT * FROM users WHERE id = 'user-1'
❌ Wrong column count
INSERT INTO users (id, name) VALUES ('1', 'Alice', 'alice@example.com')
-- 2 columns, 3 values
✅ Match columns and values
INSERT INTO users (id, name, email) VALUES ('1', 'Alice', 'alice@example.com')
-- MySQL SELECT * FROM users WHERE id = 1; -- Cube (quote values) SELECT * FROM users WHERE id = '1';
-- Cassandra CQL (works as-is) SELECT * FROM users.profiles WHERE id = 'user-1'; -- Cube SQL (identical) SELECT * FROM users.profiles WHERE id = 'user-1';
-- Simple CRUD
CREATE TABLE test.data (id TEXT PRIMARY KEY, value TEXT);
INSERT INTO test.data (id, value) VALUES ('1', 'hello');
SELECT * FROM test.data WHERE id = '1';
UPDATE test.data SET value = 'world' WHERE id = '1';
DELETE FROM test.data WHERE id = '1';
-- With multiple columns
CREATE TABLE test.users (id TEXT PRIMARY KEY, name TEXT, email TEXT, age TEXT);
INSERT INTO test.users (id, name, email, age) VALUES ('u1', 'Alice', 'alice@example.com', '30');
SELECT name, email FROM test.users WHERE id = 'u1';
UPDATE test.users SET name = 'Alice J.', age = '31' WHERE id = 'u1';
-- Batch operations
INSERT INTO test.users (id, name, email) VALUES ('u2', 'Bob', 'bob@example.com');
INSERT INTO test.users (id, name, email) VALUES ('u3', 'Charlie', 'charlie@example.com');
UPDATE test.users SET email = 'bob.new@example.com' WHERE id = 'u2';
DELETE FROM test.users WHERE id = 'u3';
SQL_GUIDE.mdREADME.mdmvn exec:java -Dexec.mainClass="com.cube.examples.SQLExamples"./test-sql-api.shCube Database - Now with SQL Support! 🎉