In diesem Artikel lernen Sie:
- Daten einfügen
- Upsert-Daten
- Daten aktualisieren
- Daten löschen
- Cassandra Where Klausel
Daten einfügen
Der Befehl 'Einfügen in' schreibt Daten in Zeilenform in Cassandra-Spalten. Es werden nur die vom Benutzer angegebenen Spalten gespeichert. Sie müssen unbedingt nur die Primärschlüsselspalte angeben.
Für nicht angegebene Werte wird kein Platz benötigt. Nach dem Einfügen werden keine Ergebnisse zurückgegeben.
Syntax
Insert into KeyspaceName.TableName(ColumnName1, ColumnName2, ColumnName3… )values (Column1Value, Column2Value, Column3Value… )
Beispiel
Hier ist der Schnappschuss des ausgeführten Befehls 'Einfügen in', der einen Datensatz in die Cassandra-Tabelle 'Student' einfügt.
Insert into University.Student(RollNo,Name,dept,Semester) values(2,'Michael','CS', 2);
Nach erfolgreicher Ausführung des Befehls 'Einfügen in' wird eine Zeile in die Cassandra-Tabelle Student mit RollNo 2, Name Michael, Abteilung CS und Semester 2 eingefügt.
Hier ist der Schnappschuss des aktuellen Datenbankstatus.
Upsert-Daten
Cassandra ist verärgert. Upsert bedeutet, dass Cassandra eine Zeile einfügt, wenn ein Primärschlüssel noch nicht vorhanden ist. Andernfalls wird diese Zeile aktualisiert, wenn der Primärschlüssel bereits vorhanden ist.
Daten aktualisieren
Mit dem Befehl 'Update' werden die Daten in der Cassandra-Tabelle aktualisiert. Wenn nach dem Aktualisieren der Daten keine Ergebnisse zurückgegeben werden, bedeutet dies, dass die Daten erfolgreich aktualisiert wurden. Andernfalls wird ein Fehler zurückgegeben. Spaltenwerte werden in der 'Set'-Klausel geändert, während Daten mit der' Where'-Klausel gefiltert werden.
Syntax
Update KeyspaceName.TableNameSet ColumnName1=new Column1Value,ColumnName2=new Column2Value,ColumnName3=new Column3Value,… Where ColumnName=ColumnValue
Beispiel
Hier ist der Screenshot, der den Datenbankstatus vor dem Aktualisieren der Daten zeigt.
Hier ist die Momentaufnahme des ausgeführten Befehls 'Aktualisieren', mit dem der Datensatz in der Student-Tabelle aktualisiert wird.
Update University.StudentSet name='Hayden'Where rollno=1;
Nach erfolgreicher Ausführung des Befehls 'Update Student' wird der Name des Schülers von 'Clark' in 'Hayden' mit der Rollennummer 1 geändert.
Hier ist der Screenshot, der den Datenbankstatus nach dem Aktualisieren der Daten zeigt.
Cassandra Daten löschen
Der Befehl 'Löschen' entfernt eine ganze Zeile oder einige Spalten aus der Tabelle Student. Wenn Daten gelöscht werden, werden sie nicht sofort aus der Tabelle gelöscht. Stattdessen werden gelöschte Daten mit einem Grabstein markiert und nach der Komprimierung entfernt.
Syntax
Delete from KeyspaceName.TableNameWhere ColumnName1=ColumnValue
Die obige Syntax löscht eine oder mehrere Zeilen, abhängig von der Datenfilterung in der where-Klausel.
Delete ColumnNames from KeyspaceName.TableNameWhere ColumnName1=ColumnValue
Die obige Syntax löscht einige Spalten aus der Tabelle.
Beispiel
Hier ist der Schnappschuss, der den aktuellen Datenbankstatus vor dem Löschen von Daten anzeigt.
Hier ist die Momentaufnahme des Befehls, mit dem eine Zeile aus der Tabelle Student entfernt wird.
Delete from University.Student where rollno=1;
Nach erfolgreicher Ausführung des Befehls 'Löschen' werden eine Zeile aus der Tabelle Student gelöscht, wobei der Rollno-Wert 1 ist.
Hier ist der Schnappschuss, der den Datenbankstatus nach dem Löschen von Daten anzeigt.
Was Cassandra nicht unterstützt
In der Cassandra-Abfragesprache (CQL) gibt es folgende Einschränkungen.
- CQL unterstützt keine Aggregationsabfragen wie max, min, avg
- CQL unterstützt kein Gruppieren nach Abfragen.
- CQL unterstützt keine Joins.
- CQL unterstützt keine ODER-Abfragen.
- CQL unterstützt keine Platzhalterabfragen.
- CQL unterstützt keine Union, Intersection-Abfragen.
- Tabellenspalten können nicht gefiltert werden, ohne den Index zu erstellen.
- Abfragen größer als (>) und kleiner als (<) werden nur für Clustering-Spalten unterstützt.
Die Cassandra-Abfragesprache ist nicht für Analysezwecke geeignet, da sie so viele Einschränkungen aufweist.
Cassandra Where Klausel
In Cassandra ist das Abrufen von Daten ein heikles Thema. Die Spalte wird in Cassandra gefiltert, indem ein Index für Nicht-Primärschlüsselspalten erstellt wird.
Syntax
Select ColumnNames from KeyspaceName.TableName Where ColumnName1=Column1Value ANDColumnName2=Column2Value AND…
Beispiel
- Hier ist der Schnappschuss, der den Datenabruf aus der Student-Tabelle ohne Datenfilterung zeigt.
select * from University.Student;
Zwei Datensätze werden aus der Schülertabelle abgerufen.
- Hier ist der Schnappschuss, der den Datenabruf von Student mit Datenfilterung zeigt. Ein Datensatz wird abgerufen.
Daten werden nach Namensspalte gefiltert. Es werden alle Datensätze abgerufen, deren Name Guru99 entspricht.
select * from University.Student where name='Guru99';