Cassandra Dotazovací jazyk (CQL): vložit do, aktualizovat (příklad)
Vložte data
Jedno Cassandra příkaz insert zapíše data Cassandra sloupce v řádkové formě. Cassandra vložit dotaz uloží pouze ty sloupce, které jsou zadány uživatelem. Musíte nutně zadat pouze sloupec primárního klíče.
Nezabere žádný prostor pro neuvedené hodnoty. Po vložení nejsou vráceny žádné výsledky.
Syntax
Insert into KeyspaceName.TableName(ColumnName1, ColumnName2, ColumnName3 . . . .) values (Column1Value, Column2Value, Column3Value . . . .)
Příklad
Zde je snímek popravených Cassandra Vložit do tabulky dotaz, který vloží jeden záznam Cassandra stůl 'Student'.
Insert into University.Student(RollNo,Name,dept,Semester) values(2,'Michael','CS', 2);
Po úspěšném provedení příkazu Vložit do Cassandra, bude vložen jeden řádek do Cassandra tabulka Student s RollNo 2, Name Michael, oddělení CS a Semestr 2.
Zde je snímek aktuálního stavu databáze.
Upsert Data
Cassandra dělá upsert. Upsert to znamená Cassandra vloží řádek, pokud primární klíč již neexistuje, jinak pokud primární klíč již existuje, aktualizuje tento řádek.
Aktualizovat data
Jedno Cassandra Aktualizační dotaz se používá k aktualizaci dat v Cassandra tabulka. 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 klauzuli 'Where'.
Syntax
Update KeyspaceName.TableName Set ColumnName1=new Column1Value, ColumnName2=new Column2Value, ColumnName3=new Column3Value, . . . Where ColumnName=ColumnValue
Příklad
Zde je snímek obrazovky, který ukazuje stav databáze před aktualizací dat.
Zde je snímek popravených Cassandra Příkaz Aktualizovat, který aktualizuje záznam v tabulce Student.
Update University.Student Set name='Hayden' Where rollno=1;
Po úspěšném provedení aktualizačního dotazu v Cassandra 'Aktualizovat studenta', jméno studenta se změní z 'Clark' na 'Hayden', který má rollno 1.
Zde je snímek obrazovky, který ukazuje stav databáze po aktualizaci dat.
Cassandra Smazat data
Příkaz 'Delete' odstraní celý řádek nebo některé sloupce z tabulky Student. Když jsou data smazána, neodstraní se z tabulky okamžitě. Místo toho jsou smazaná data označena náhrobním kamenem a po zhutnění jsou odstraněna.
Syntax
Delete from KeyspaceName.TableName Where ColumnName1=ColumnValue
Výše Cassandra syntaxe delete řádku odstraní jeden nebo více řádků v závislosti na filtraci dat v klauzuli where.
Delete ColumnNames from KeyspaceName.TableName Where ColumnName1=ColumnValue
Výše uvedená syntaxe odstraní některé sloupce z tabulky.
Příklad
Zde je snímek, který ukazuje 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 CQL Delete bude smazán jeden řádek z tabulky Student, kde hodnota rollno je 1.
Zde je snímek, který ukazuje stav databáze po smazání dat.
Co Cassandra nepodporuje
Existují následující omezení Cassandra dotazovací jazyk (CQL).
- CQL nepodporuje agregační dotazy jako max, min, avg
- CQL nepodporuje seskupování podle 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.
- Dotaz větší než (>) a menší než (<) je podporován pouze ve sloupci shlukování. Cassandra dotazovací jazyk není vhodný pro analytické účely, protože má mnoho omezení.
Cassandra Kde klauzule
In Cassandra, načítání dat je citlivý problém. Kolona se přefiltruje Cassandra vytvořením indexu na neprimárních klíčových sloupcích.
Syntax
Select ColumnNames from KeyspaceName.TableName Where ColumnName1=Column1Value AND ColumnName2=Column2Value AND . . .
Příklad
- Zde je snímek, který ukazuje načítání dat z tabulky Student bez filtrace dat.
select * from University.Student;
Z tabulky Student jsou načteny dva záznamy.
- Zde je snímek, který ukazuje načítání dat od Studenta s filtrací dat. Je načten jeden záznam.
Data jsou filtrována podle sloupce názvu. Jsou načteny všechny záznamy, které mají jméno rovné Guru99.
select * from University. Student where name='Guru99';