Cassandra 쿼리 언어(CQL): 삽입, 업데이트(예)

데이터 삽입

Cassandra insert 문은 Cassandra 열에 행 형식으로 데이터를 씁니다. Cassandra 삽입 쿼리는 사용자가 제공한 열만 저장합니다. 반드시 기본 키 열만 지정해야 합니다.

주어진 값이 아닌 경우 공간을 차지하지 않습니다. 삽입 후에는 결과가 반환되지 않습니다.

통사론

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

다음은 Cassandra 테이블 'Student'에 하나의 레코드를 삽입하는 실행된 Cassandra Insert into table 쿼리의 스냅샷입니다.

데이터 삽입

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

Insert into Cassandra 명령을 성공적으로 실행하면 Cassandra 테이블 Student에 RollNo 2, 이름 Michael, 부서 CS 및 Semester 2의 행 하나가 삽입됩니다.

다음은 현재 데이터베이스 상태의 스냅샷입니다.

데이터 삽입

데이터 업데이트

카산드라는 화를 낸다. Upsert는 기본 키가 아직 존재하지 않는 경우 Cassandra가 행을 삽입함을 의미합니다.wise 기본 키가 이미 존재하는 경우 해당 행을 업데이트합니다.

데이터 업데이트

Cassandra 업데이트 쿼리는 다음의 데이터를 업데이트하는 데 사용됩니다. 카산드라 테이블. 데이터를 업데이트한 후 결과가 반환되지 않으면 데이터가 성공적으로 업데이트되었음을 ​​의미합니다.wise 오류가 반환됩니다. 'Where' 절로 데이터를 필터링하는 동안 'Set' 절에서 열 값이 변경됩니다.

통사론

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

다음은 데이터를 업데이트하기 전의 데이터베이스 상태를 보여주는 스크린샷입니다.

데이터 업데이트

다음은 Student 테이블의 레코드를 업데이트하는 실행된 Cassandra Update 명령의 스냅샷입니다.

데이터 업데이트

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

Cassandra 'Update Student'에서 업데이트 쿼리가 성공적으로 실행되면 학생 이름이 'Clark'에서 롤번호 1이 있는 'Hayden'으로 변경됩니다.

다음은 데이터 업데이트 후 데이터베이스 상태를 보여주는 스크린샷입니다.

데이터 업데이트

카산드라 데이터 삭제

'삭제' 명령은 Student 테이블에서 전체 행 또는 일부 열을 제거합니다. 데이터가 삭제되면 테이블에서 즉시 삭제되지 않습니다. 대신 삭제된 데이터에는 삭제 표시가 표시되고 압축 후 제거됩니다.

통사론

Delete from KeyspaceName.TableName
	Where ColumnName1=ColumnValue

위의 Cassandra 행 삭제 구문은 where 절의 데이터 필터링에 따라 하나 이상의 행을 삭제합니다.

Delete ColumnNames from KeyspaceName.TableName
	Where ColumnName1=ColumnValue

위 구문은 테이블에서 일부 열을 삭제합니다.

다음은 데이터를 삭제하기 전의 현재 데이터베이스 상태를 보여주는 스냅샷입니다.

카산드라 데이터 삭제

다음은 Student 테이블에서 한 행을 제거하는 명령의 스냅샷입니다.

카산드라 데이터 삭제

Delete from University.Student where rollno=1;

CQL 삭제 명령이 성공적으로 실행되면 롤노 값이 1인 Student 테이블에서 한 행이 삭제됩니다.

다음은 데이터 삭제 후 데이터베이스 상태를 보여주는 스냅샷입니다.

카산드라 데이터 삭제

카산드라가 지원하지 않는 것

다음이 있습니다wing CQL(Cassandra 쿼리 언어)의 제한 사항입니다.

  1. CQL은 max, min과 같은 집계 쿼리를 지원하지 않습니다. avg
  2. CQL은 쿼리를 통한 그룹화를 지원하지 않습니다.
  3. CQL은 조인을 지원하지 않습니다.
  4. CQL은 OR 쿼리를 지원하지 않습니다.
  5. CQL은 와일드카드 쿼리를 지원하지 않습니다.
  6. CQL은 Union, Intersection 쿼리를 지원하지 않습니다.
  7. 인덱스를 생성하지 않으면 테이블 열을 필터링할 수 없습니다.
  8. 초과(>) 및 미만(<) 쿼리는 클러스터링 열에서만 지원됩니다. Cassandra 쿼리 언어는 제한 사항이 너무 많기 때문에 분석 목적에 적합하지 않습니다.

카산드라 Where 절

In 카산드 라, 데이터 검색은 민감한 문제입니다. 열은 기본 키가 아닌 열에 인덱스를 생성하여 Cassandra에서 필터링됩니다.

통사론

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

  • 다음은 데이터 필터링 없이 Student 테이블에서 데이터 검색을 보여주는 스냅샷입니다.

카산드라 Where 절

select * from University.Student;

Student 테이블에서 두 개의 레코드가 검색됩니다.

  • 다음은 데이터 필터링을 통해 Student에서 데이터 검색을 보여주는 스냅샷입니다. 하나의 레코드가 검색됩니다.

데이터는 이름 열을 기준으로 필터링됩니다. 이름이 Guru99와 동일한 모든 레코드가 검색됩니다.

카산드라 Where 절

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