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í.
- CQL nepodporuje agregační dotazy jako max, min, avg
- CQL nepodporuje seskupování pomocí dotazů.
- CQL nepodporuje spojení.
- CQL nepodporuje dotazy OR.
- CQL nepodporuje dotazy se zástupnými znaky.
- CQL nepodporuje dotazy Union, Intersection.
- Sloupce tabulky nelze filtrovat bez vytvoření indexu.
- 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';