データベースの操作

動作環境

インストール手順は、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

公式マニュアルを和訳して記述