Cassandra Query Language (CQL): Vložit do, Aktualizovat, Odstranit (Příklad)

V tomto článku se naučíte-

  • Vložte data
  • Upsert Data
  • Aktualizovat data
  • Odstranit data
  • Cassandra, kde klauzule

Vložte data

Příkaz „Vložit do“ zapíše data do sloupců Cassandra ve formě řádků. Uloží pouze ty sloupce, které jsou zadány uživatelem. Musíte nutně zadat pouze sloupec primárního klíče.

Nebude to trvat žádný prostor pro nedané hodnoty. Po vložení se nevrátí žádné výsledky.

Syntax

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

Příklad

Zde je snímek provedeného příkazu „Vložit do“, který vloží jeden záznam do tabulky Cassandra „Student“.

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

Po úspěšném provedení příkazu „Vložit do“ bude do tabulky Cassandra vložen jeden řádek Student s RollNo 2, Jméno Michael, oddělení CS a Semester 2.

Tady je snímek aktuálního stavu databáze.

Upsert Data

Cassandra dělá upsert. Upsert znamená, že Cassandra vloží řádek, pokud primární klíč již neexistuje, jinak, pokud primární klíč již existuje, tento řádek aktualizuje.

Aktualizovat data

Příkaz 'Aktualizovat' se používá k aktualizaci dat v tabulce Cassandra. Pokud po aktualizaci dat nejsou vráceny žádné výsledky, znamená to, že data byla úspěšně aktualizována, jinak bude vrácena chyba. Hodnoty sloupců se mění v klauzuli „Set“, zatímco data jsou filtrována pomocí klauzule „Where“.

Syntax

Update KeyspaceName.TableNameSet ColumnName1=new Column1Value,ColumnName2=new Column2Value,ColumnName3=new Column3Value,… Where ColumnName=ColumnValue

Příklad

Zde je snímek obrazovky, který zobrazuje stav databáze před aktualizací dat.

Tady je snímek provedeného příkazu 'Aktualizovat', který aktualizuje záznam v Studentské tabulce.

Update University.StudentSet name='Hayden'Where rollno=1;

Po úspěšném provedení příkazu 'Aktualizovat studenta' bude jméno studenta změněno z 'Clark' na 'Hayden', který má rollno 1.

Tady je snímek obrazovky, který zobrazuje stav databáze po aktualizaci dat.

Cassandra Odstranit data

Příkaz 'Odstranit' odstraní z tabulky Student celý řádek nebo některé sloupce. Když jsou data odstraněna, neodstraní se okamžitě z tabulky. Místo toho jsou odstraněná data označena náhrobkem a po zhutnění jsou odstraněna.

Syntax

Delete from KeyspaceName.TableNameWhere ColumnName1=ColumnValue

Výše uvedená syntaxe odstraní jeden nebo více řádků v závislosti na filtraci dat v klauzuli where.

Delete ColumnNames from KeyspaceName.TableNameWhere ColumnName1=ColumnValue

Výše uvedená syntaxe odstraní některé sloupce z tabulky.

Příklad

Tady je snímek, který zobrazuje aktuální stav databáze před odstraněním dat.

Zde je snímek příkazu, který odstraní jeden řádek z tabulky Student.

Delete from University.Student where rollno=1;

Po úspěšném provedení příkazu 'Odstranit' bude jeden řádek odstraněn z tabulky Student, kde je rollno hodnota 1.

Tady je snímek, který zobrazuje stav databáze po odstranění dat.

Co Cassandra nepodporuje

V dotazovacím jazyce Cassandra (CQL) existují následující omezení.

  1. CQL nepodporuje agregační dotazy jako max, min, avg
  2. CQL nepodporuje seskupování pomocí dotazů.
  3. CQL nepodporuje spojení.
  4. CQL nepodporuje dotazy OR.
  5. CQL nepodporuje dotazy se zástupnými znaky.
  6. CQL nepodporuje dotazy Union, Intersection.
  7. Sloupce tabulky nelze filtrovat bez vytvoření indexu.
  8. Větší než (>) a menší než (<) dotaz je podporován pouze na klastrovém sloupci.

    Jazyk dotazu Cassandra není vhodný pro analytické účely, protože má tolik omezení.

Cassandra, kde klauzule

V Cassandře je načítání dat citlivým problémem. Sloupec je filtrován v Cassandře vytvořením indexu na sloupcích neprimárního klíče.

Syntax

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

Příklad

  • Tady je snímek, který zobrazuje načítání dat ze Studentské tabulky bez filtrování dat.
select * from University.Student;

Ze Studentské tabulky jsou načteny dva záznamy.

  • Zde je snímek, který zobrazuje načítání dat od Studenta s filtrací dat. Načte se jeden záznam.

Data jsou filtrována podle sloupce názvu. Načtou se všechny záznamy, jejichž název se rovná Guru99.

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

Zajímavé články...