Cassandra Query Language (CQL): inserir, atualizar, excluir (exemplo)

Índice:

Anonim

Neste artigo, você aprenderá-

  • Inserir dados
  • Upsert Data
  • Dados de atualização
  • Apagar Dados
  • Cláusula Cassandra Where

Inserir dados

O comando 'Inserir em' grava dados em colunas do Cassandra em forma de linha. Ele armazenará apenas as colunas fornecidas pelo usuário. Você deve necessariamente especificar apenas a coluna de chave primária.

Não ocupará nenhum espaço para valores não fornecidos. Nenhum resultado é retornado após a inserção.

Sintaxe

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

Exemplo

Aqui está o instantâneo do comando executado 'Inserir em' que irá inserir um registro na tabela 'Aluno' do Cassandra.

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

Após a execução bem-sucedida do comando 'Insert Into', uma linha será inserida na tabela Cassandra Student with RollNo 2, Name Michael, dept CS e Semester 2.

Aqui está o instantâneo do estado atual do banco de dados.

Upsert Data

Cassandra faz upsert. Upsert significa que o Cassandra irá inserir uma linha se uma chave primária ainda não existir, caso contrário, se a chave primária já existir, ele atualizará essa linha.

Dados de atualização

O comando 'Atualizar' é usado para atualizar os dados na tabela do Cassandra. Se nenhum resultado for retornado após a atualização dos dados, isso significa que os dados foram atualizados com sucesso, caso contrário, um erro será retornado. Os valores da coluna são alterados na cláusula 'Set' enquanto os dados são filtrados com a cláusula 'Where'.

Sintaxe

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

Exemplo

Aqui está a captura de tela que mostra o estado do banco de dados antes de atualizar os dados.

Aqui está o instantâneo do comando executado 'Atualizar' que atualiza o registro na tabela do Aluno.

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

Após a execução bem-sucedida do comando 'Atualizar aluno', o nome do aluno será alterado de 'Clark' para 'Hayden' que tem rollno 1.

Aqui está a captura de tela que mostra o estado do banco de dados após a atualização dos dados.

Cassandra Excluir Dados

O comando 'Excluir' remove uma linha inteira ou algumas colunas da tabela Aluno. Quando os dados são excluídos, eles não são excluídos da tabela imediatamente. Em vez disso, os dados excluídos são marcados com uma marca de exclusão e removidos após a compactação.

Sintaxe

Delete from KeyspaceName.TableNameWhere ColumnName1=ColumnValue

A sintaxe acima excluirá uma ou mais linhas, dependendo da filtragem de dados na cláusula where.

Delete ColumnNames from KeyspaceName.TableNameWhere ColumnName1=ColumnValue

A sintaxe acima excluirá algumas colunas da tabela.

Exemplo

Aqui está o instantâneo que mostra o estado atual do banco de dados antes de excluir os dados.

Aqui está o instantâneo do comando que irá remover uma linha da tabela Aluno.

Delete from University.Student where rollno=1;

Após a execução bem-sucedida do comando 'Excluir', uma linha será excluída da tabela Aluno, onde o valor de rollno é 1.

Aqui está o instantâneo que mostra o estado do banco de dados após a exclusão dos dados.

O que Cassandra não suporta

Existem as seguintes limitações na linguagem de consulta Cassandra (CQL).

  1. CQL não suporta consultas de agregação como max, min, avg
  2. CQL não suporta agrupar por, tendo consultas.
  3. CQL não suporta junções.
  4. CQL não suporta consultas OR.
  5. CQL não oferece suporte a consultas curinga.
  6. CQL não oferece suporte a consultas de união e interseção.
  7. As colunas da tabela não podem ser filtradas sem criar o índice.
  8. A consulta maior que (>) e menor que (<) só é suportada na coluna de cluster.

    A linguagem de consulta do Cassandra não é adequada para fins analíticos porque tem muitas limitações.

Cláusula Cassandra Where

No Cassandra, a recuperação de dados é uma questão delicada. A coluna é filtrada no Cassandra criando um índice em colunas de chave não primária.

Sintaxe

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

Exemplo

  • Aqui está o instantâneo que mostra a recuperação de dados da tabela do Aluno sem filtragem de dados.
select * from University.Student;

Dois registros são recuperados da tabela do Aluno.

  • Aqui está o instantâneo que mostra a recuperação de dados do Aluno com filtragem de dados. Um registro é recuperado.

Os dados são filtrados por coluna de nome. Todos os registros são recuperados com nome igual a Guru99.

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