Cassandra Query Language (CQL): wstawianie, aktualizowanie, usuwanie (przykład)

Spisie treści:

Anonim

W tym artykule dowiesz się-

  • Wstaw dane
  • Upsert Data
  • Uaktualnij dane
  • Usunąć dane
  • Cassandra Where Clause

Wstaw dane

Polecenie „Wstaw do” zapisuje dane w kolumnach Cassandry w postaci wiersza. Będzie przechowywać tylko te kolumny, które są podane przez użytkownika. Musisz koniecznie określić tylko kolumnę klucza podstawowego.

Nie zajmie miejsca na nie podane wartości. Po wstawieniu nie są zwracane żadne wyniki.

Składnia

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

Przykład

Oto migawka wykonanego polecenia „Wstaw do”, które spowoduje wstawienie jednego rekordu do tabeli Cassandra „Student”.

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

Po pomyślnym wykonaniu polecenia `` Wstaw do '', jeden wiersz zostanie wstawiony do tabeli Cassandra Student z RollNo 2, imię Michael, dział CS i semestr 2.

Oto migawka bieżącego stanu bazy danych.

Upsert Data

Cassandra podnosi na duchu. Upsert oznacza, że ​​Cassandra wstawi wiersz, jeśli klucz podstawowy już nie istnieje, w przeciwnym razie, jeśli klucz podstawowy już istnieje, zaktualizuje ten wiersz.

Uaktualnij dane

Polecenie „Aktualizuj” służy do aktualizacji danych w tabeli Cassandra. Jeśli po aktualizacji danych nie zostaną zwrócone żadne wyniki, oznacza to, że dane zostały pomyślnie zaktualizowane, w przeciwnym razie zostanie zwrócony błąd. Wartości kolumn są zmieniane w klauzuli „Set”, podczas gdy dane są filtrowane za pomocą klauzuli „Where”.

Składnia

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

Przykład

Oto zrzut ekranu przedstawiający stan bazy danych przed aktualizacją danych.

Oto migawka wykonanego polecenia „Aktualizuj”, które aktualizuje rekord w tabeli Uczniów.

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

Po pomyślnym wykonaniu polecenia „Aktualizuj ucznia”, nazwisko ucznia zostanie zmienione z „Clark” na „Hayden”, które ma numer 1.

Oto zrzut ekranu przedstawiający stan bazy danych po aktualizacji danych.

Cassandra Usuń dane

Polecenie „Usuń” usuwa cały wiersz lub niektóre kolumny z tabeli. Uczeń. Usunięcie danych nie powoduje ich natychmiastowego usunięcia z tabeli. Zamiast tego usunięte dane są oznaczane reliktem i są usuwane po zagęszczeniu.

Składnia

Delete from KeyspaceName.TableNameWhere ColumnName1=ColumnValue

Powyższa składnia usunie jeden lub więcej wierszy w zależności od filtrowania danych w klauzuli where.

Delete ColumnNames from KeyspaceName.TableNameWhere ColumnName1=ColumnValue

Powyższa składnia spowoduje usunięcie niektórych kolumn z tabeli.

Przykład

Oto migawka pokazująca aktualny stan bazy danych przed usunięciem danych.

Oto migawka polecenia, które usunie jeden wiersz z tabeli Student.

Delete from University.Student where rollno=1;

Po pomyślnym wykonaniu polecenia „Usuń” jeden wiersz zostanie usunięty z tabeli Student, w której wartość rollno wynosi 1.

Oto migawka pokazująca stan bazy danych po usunięciu danych.

Czego Cassandra nie obsługuje

Istnieją następujące ograniczenia w języku zapytań Cassandra (CQL).

  1. CQL nie obsługuje zapytań agregujących, takich jak max, min, avg
  2. CQL nie obsługuje grupowania według zapytań.
  3. CQL nie obsługuje złączeń.
  4. CQL nie obsługuje zapytań OR.
  5. CQL nie obsługuje zapytań o symbole wieloznaczne.
  6. CQL nie obsługuje zapytań Union, Intersection.
  7. Kolumn tabeli nie można filtrować bez utworzenia indeksu.
  8. Zapytanie Większe niż (>) i Mniejsze niż (<) jest obsługiwane tylko w kolumnie klastrowej.

    Język zapytań Cassandra nie nadaje się do celów analitycznych, ponieważ ma tak wiele ograniczeń.

Cassandra Where Clause

W Cassandrze odzyskiwanie danych jest delikatną kwestią. Kolumna jest filtrowana w Cassandrze przez utworzenie indeksu dla kolumn z kluczem innym niż podstawowy.

Składnia

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

Przykład

  • Oto migawka, która pokazuje pobieranie danych z tabeli Studentów bez filtrowania danych.
select * from University.Student;

Z tabeli Ucznia pobierane są dwa rekordy.

  • Oto migawka, która pokazuje pobieranie danych od Studenta z filtracją danych. Pobierany jest jeden rekord.

Dane są filtrowane według kolumny nazw. Pobierane są wszystkie rekordy, które mają nazwę równą Guru99.

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