Учебники

7) Язык запросов (CQL)

В этой статье вы узнаете

Вставить данные

Команда «Вставить в» записывает данные в столбцы Кассандры в виде строк. Он будет хранить только те столбцы, которые предоставлены пользователем. Вы должны обязательно указать только столбец первичного ключа.

Это не займет места для не заданных значений. Результаты не возвращаются после вставки.

Синтаксис

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

пример

Вот снимок выполненной команды «Вставить в», которая вставит одну запись в таблицу Кассандры «Студент».

Язык запросов Cassandra (CQL): вставка, обновление, удаление, чтение данных

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

После успешного выполнения команды «Вставить в» одна строка будет вставлена ​​в таблицу Cassandra Student с RollNo 2, именем Michael, отделом CS и Semester 2.

Вот снимок текущего состояния базы данных.

Язык запросов Cassandra (CQL): вставка, обновление, удаление, чтение данных

Upsert Data

Кассандра расстается. Upsert означает, что Cassandra вставит строку, если первичный ключ еще не существует, в противном случае, если первичный ключ уже существует, он обновит эту строку.

Обновить данные

Команда «Обновить» используется для обновления данных в таблице Cassandra. Если после обновления данных результаты не возвращаются, это означает, что данные успешно обновлены, в противном случае будет возвращена ошибка. Значения столбцов изменяются в предложении «Set», а данные фильтруются с помощью предложения «Where».

Синтаксис

Update KeyspaceName.TableName 
Set ColumnName1=new Column1Value,
      ColumnName2=new Column2Value,
      ColumnName3=new Column3Value,
       .
       .
       .
Where ColumnName=ColumnValue

пример

Вот скриншот, который показывает состояние базы данных перед обновлением данных.

Язык запросов Cassandra (CQL): вставка, обновление, удаление, чтение данных

Вот снимок выполненной команды «Обновить», которая обновляет запись в таблице Student.

Язык запросов Cassandra (CQL): вставка, обновление, удаление, чтение данных

Update University.Student
Set name='Hayden'
Where rollno=1;

После успешного выполнения команды «Обновить студента», имя студента изменится с «Кларк» на «Хайден» с номером 1.

Вот скриншот, который показывает состояние базы данных после обновления данных.

Язык запросов Cassandra (CQL): вставка, обновление, удаление, чтение данных

Кассандра Удалить данные

Команда «Удалить» удаляет всю строку или несколько столбцов из таблицы Student. Когда данные удаляются, они не удаляются из таблицы сразу. Вместо этого удаленные данные помечаются надгробной плитой и удаляются после уплотнения.

Синтаксис

Delete from KeyspaceName.TableName
	Where ColumnName1=ColumnValue

Приведенный выше синтаксис удалит одну или несколько строк в зависимости от фильтрации данных в предложении where.

Delete ColumnNames from KeyspaceName.TableName
	Where ColumnName1=ColumnValue

Приведенный выше синтаксис удалит некоторые столбцы из таблицы.

пример

Вот снимок, который показывает текущее состояние базы данных перед удалением данных.

Язык запросов Cassandra (CQL): вставка, обновление, удаление, чтение данных

Вот снимок команды, которая удалит одну строку из таблицы Student.

Язык запросов Cassandra (CQL): вставка, обновление, удаление, чтение данных

Delete from University.Student where rollno=1;

После успешного выполнения команды «Удалить» одна строка будет удалена из таблицы Student, где значение rollno равно 1.

Вот снимок, который показывает состояние базы данных после удаления данных.

Язык запросов Cassandra (CQL): вставка, обновление, удаление, чтение данных

Что Кассандра не поддерживает

Существуют следующие ограничения в языке запросов Cassandra (CQL).

  1. CQL не поддерживает агрегирующие запросы, такие как max, min, avg
  2. CQL не поддерживает групповые запросы.
  3. CQL не поддерживает объединения.
  4. CQL не поддерживает запросы OR.
  5. CQL не поддерживает подстановочные запросы.
  6. CQL does not support Union, Intersection queries.
  7. Table columns cannot be filtered without creating the index.
  8. Greater than (>) and less than (<) query is only supported on clustering column.

    Cassandra query language is not suitable for analytics purposes because it has so many limitations.

Cassandra Where Clause

In Cassandra, data retrieval is a sensitive issue. The column is filtered in Cassandra by creating an index on non-primary key columns.

Syntax

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

Example

  • Here is the snapshot that shows the data retrieval from Student table without data filtration.

Язык запросов Cassandra (CQL): вставка, обновление, удаление, чтение данных

select * from University.Student;

Two records are retrieved from Student table.

  • Вот снимок, который показывает получение данных от Студента с фильтрацией данных. Одна запись получена.

Данные фильтруются по имени столбца. Получены все записи, имя которых равно Guru99.

Язык запросов Cassandra (CQL): вставка, обновление, удаление, чтение данных

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