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

Содержание:

Anonim

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

  • Вставить данные
  • Вставить данные
  • Обновить данные
  • Удалить данные
  • Кассандра, где пункт

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

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

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

Синтаксис

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

Пример

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

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

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

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

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

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

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

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

Синтаксис

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

Пример

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

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

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

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

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

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

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

Синтаксис

Delete from KeyspaceName.TableNameWhere ColumnName1=ColumnValue

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

Delete ColumnNames from KeyspaceName.TableNameWhere ColumnName1=ColumnValue

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

Пример

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

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

Delete from University.Student where rollno=1;

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

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

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

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

  1. CQL не поддерживает запросы агрегирования, такие как max, min, avg.
  2. CQL не поддерживает группировку по, имея запросы.
  3. CQL не поддерживает объединения.
  4. CQL не поддерживает запросы OR.
  5. CQL не поддерживает запросы с подстановочными знаками.
  6. CQL не поддерживает запросы Union и Intersection.
  7. Столбцы таблицы нельзя фильтровать без создания индекса.
  8. Запрос больше (>) и меньше (<) поддерживается только в столбце кластеризации.

    Язык запросов Cassandra не подходит для аналитических целей, потому что у него очень много ограничений.

Кассандра, где пункт

В Cassandra извлечение данных является деликатным вопросом. Столбец фильтруется в Cassandra путем создания индекса для столбцов, не являющихся первичными ключами.

Синтаксис

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

Пример

  • Вот снимок, который показывает получение данных из таблицы Student без фильтрации данных.
select * from University.Student;

Две записи извлекаются из таблицы Student.

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

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

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