データベースの操作¶
動作環境¶
インストール手順は、Cassandraのインストール を、キースペース、テーブルの作成は、データベースの定義 を参照すること。
[OS]
MacOSX 10.9.5
[JVM]
Java(TM) SE Runtime Environment (build 1.8.0_40-b27) Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode)
[バージョン]
- cqlsh 5.0.1
- Cassandra 3.7
- CQL spec 3.4.2
- Native protocol v4
データの操作¶
ここでは、データの検索、挿入、更新、削除を実行するCQLコマンドについて概説する。
Note
外部ファイルに定義したCQLコマンド(xxxxx.cql)を実行したい場合は、ファイルがあるディレクトリ上でcqlshを実行し、”source ‘xxxxxx.cql’”を実行する。
Note
使用可能なデータ型は CREATE TABLE を参照のこと。
SELECTステートメント¶
SELECTステートメントは以下の構文で記述される。
select_statement ::= SELECT [ JSON | DISTINCT ] ( select_clause | '*' )
FROM table_name
[ WHERE where_clause ]
[ GROUP BY group_by_clause ]
[ ORDER BY ordering_clause ]
[ PER PARTITION LIMIT (integer | bind_marker) ]
[ LIMIT (integer | bind_marker) ]
[ ALLOW FILTERING ]
select_clause ::= selector [ AS identifier ] ( ',' selector [ AS identifier ] )
selector ::= column_name
| term
| CAST '(' selector AS cql_type ')'
| function_name '(' [ selector ( ',' selector )* ] ')'
| COUNT '(' '*' ')'
where_clause ::= relation ( AND relation )*
relation ::= column_name operator term
'(' column_name ( ',' column_name )* ')' operator tuple_literal
TOKEN '(' column_name ( ',' column_name )* ')' operator term
operator ::= '=' | '<' | '>' | '<=' | '>=' | '!=' | IN | CONTAINS | CONTAINS KEY
group_by_clause ::= column_name ( ',' column_name )*
ordering_clause ::= column_name [ ASC | DESC ] ( ',' column_name [ ASC | DESC ] )*
実行例は以下の通りである。
SELECT name, occupation FROM users WHERE userid IN (199, 200, 207);
SELECT JSON name, occupation FROM users WHERE userid = 199;
SELECT name AS user_name, occupation AS user_occupation FROM users;
SELECT time, value
FROM events
WHERE event_type = 'myEvent'
AND time > '2011-02-03'
AND time <= '2012-01-01'
SELECT COUNT (*) AS user_count FROM users;
Todo
公式マニュアルを和訳して記述
INSERTステートメント¶
INSERTステートメントは以下の構文で記述される。
insert_statement ::= INSERT INTO table_name ( names_values | json_clause )
[ IF NOT EXISTS ]
[ USING update_parameter ( AND update_parameter )* ]
names_values ::= names VALUES tuple_literal
json_clause ::= JSON string [ DEFAULT ( NULL | UNSET ) ]
names ::= '(' column_name ( ',' column_name )* ')'
実行例は以下の通りである。
INSERT INTO NerdMovies (movie, director, main_actor, year)
VALUES ('Serenity', 'Joss Whedon', 'Nathan Fillion', 2005)
USING TTL 86400;
INSERT INTO NerdMovies JSON
' { "movie": "Serenity", "director": "Joss Whedon", "year": 2005 }';
Todo
公式マニュアルを和訳して記述
UPDATEステートメント¶
Todo
公式マニュアルを和訳して記述
DELETEステートメント¶
Todo
公式マニュアルを和訳して記述