Cassandra クエリ言語(CQL): Insert Into、Update (例)

データの挿入

また, Cassandra insert ステートメントはデータを書き込みます Cassandra 行形式の列。 Cassandra 挿入クエリは、ユーザーによって指定された列のみを保存します。必ず主キー列のみを指定する必要があります。

指定されていない値のためのスペースは必要ありません。 挿入後に結果は返されません。

構文

Insert into KeyspaceName.TableName(ColumnName1, ColumnName2, ColumnName3 . . . .)
values (Column1Value, Column2Value, Column3Value . . . .)

これが実行されたスナップショットです Cassandra 1 つのレコードを挿入するテーブルクエリに挿入します。 Cassandra テーブル「学生」。

データの挿入

Insert into University.Student(RollNo,Name,dept,Semester) values(2,'Michael','CS', 2);

コマンドが正常に実行された後、Insert into Cassandraに 1 行が挿入されます。 Cassandra 表 ロール番号 2 の学生、名前はマイケル、部門 CS、学期 2。

これは、現在のデータベース状態のスナップショットです。

データの挿入

データの更新/挿入

Cassandra アップサートを行います。アップサートとは次のことを意味します Cassandra 主キーがまだ存在しない場合は行を挿入します。その他wise 主キーがすでに存在する場合は、その行が更新されます。

Update Data

また, Cassandra 更新クエリは、 Cassandra テーブル。データの更新後に結果が返されない場合は、データが正常に更新されたことを意味します。wise エラーが返されます。列の値は「Set」句で変更され、データは「Where」句でフィルタリングされます。

構文

Update KeyspaceName.TableName 
Set ColumnName1=new Column1Value,
      ColumnName2=new Column2Value,
      ColumnName3=new Column3Value,
       .
       .
       .
Where ColumnName=ColumnValue

以下は、データを更新する前のデータベースの状態を示すスクリーンショットです。

Update Data

これが実行されたスナップショットです Cassandra Student テーブルのレコードを更新する Update コマンド。

Update Data

Update University.Student
Set name='Hayden'
Where rollno=1;

で更新クエリが正常に実行された後、 Cassandra 「学生を更新」すると、学生名が「Clark」からロール番号 1 の「Hayden」に変更されます。

データ更新後のデータベースの状態を示すスクリーンショットは次のとおりです。

Update Data

Cassandra データの削除

コマンド「削除」は、テーブル Student から行全体または一部の列を削除します。 データが削除されても、テーブルからすぐには削除されません。 代わりに、削除されたデータには廃棄マークが付けられ、圧縮後に削除されます。

構文

Delete from KeyspaceName.TableName
	Where ColumnName1=ColumnValue

上記 Cassandra delete row 構文は、where 句のデータ フィルタリングに応じて 1 つ以上の行を削除します。

Delete ColumnNames from KeyspaceName.TableName
	Where ColumnName1=ColumnValue

上記の構文はテーブルからいくつかの列を削除します。

以下は、データを削除する前の現在のデータベースの状態を示すスナップショットです。

Cassandra データの削除

以下は、Student テーブルから XNUMX 行を削除するコマンドのスナップショットです。

Cassandra データの削除

Delete from University.Student where rollno=1;

CQL 削除コマンドが正常に実行されると、ロール番号値が 1 である Student テーブルから XNUMX 行が削除されます。

以下は、データ削除後のデータベースの状態を示すスナップショットです。

Cassandra データの削除

この試験は Cassandra サポートしていません。

以下がありますwing の制限 Cassandra クエリ言語 (CQL)。

  1. CQL は、max、min、などの集計クエリをサポートしていません。 avg
  2. CQL は、クエリによるグループ化をサポートしていません。
  3. CQL は結合をサポートしていません。
  4. CQL は OR クエリをサポートしていません。
  5. CQL はワイルドカード クエリをサポートしていません。
  6. CQL は、Union クエリや Intersection クエリをサポートしていません。
  7. インデックスを作成しないとテーブルの列をフィルタリングできません。
  8. 「より大きい」(>) および「より小さい」(<) クエリは、クラスタリング列でのみサポートされます。 Cassandra クエリ言語には多くの制限があるため、分析目的には適していません。

Cassandra Where句

In Cassandra、データの取得はデリケートな問題です。列は次でフィルタリングされます Cassandra 非主キー列にインデックスを作成することによって。

構文

Select ColumnNames from KeyspaceName.TableName Where ColumnName1=Column1Value AND
	ColumnName2=Column2Value AND
	.
	.
	.

  • 以下は、データ フィルタリングを行わない Student テーブルからのデータ取得を示すスナップショットです。

Cassandra Where句

select * from University.Student;

Student テーブルから XNUMX つのレコードが取得されます。

  • 以下は、データ フィルタリングを使用した Student からのデータ取得を示すスナップショットです。 XNUMX つのレコードが取得されます。

データは名前列によってフィルターされます。 Guru99 と等しい名前を持つすべてのレコードが取得されます。

Cassandra Where句

select * from University. Student where name='Guru99';