📜  Cassandra 中的数据操作

📅  最后修改于: 2021-09-10 02:21:03             🧑  作者: Mango

在本文中,我们将介绍Cassandra 中的以下DML 命令,它们可以帮助我们插入、更新、删除、查询数据等。在CQL 中,有以下数据操作命令。让我们一一讨论。

1. Insert 
2. Update 
3. Delete
4. Batch 

让我们举个例子:

表名: Employee_info

CREATE TABLE Employee_info
 (
  E_id int,
  E_name text,
  E_city text,
  PRIMARY KEY(E_id)
 ); 

DML 命令:

图 –数据操作命令

1. 插入:
在列族中,有很多行包含可以由用户预先指定的列。但是有一种情况,当用户在创建表后想要添加更多列时,我们可以使用数据操作命令。 INSERT’关键字用于插入数据。

插入数据有2种格式。

  • 格式 1:

    句法:

    INSERT INTO table_name (field _name1, field_name2, field_name3…)
                VALUES ('field_value1', 'field_value2', 'field_value3'…)
                USING  update_parameter[optional] ; 

    例如:

    INSERT INTO Employee_info(E_id, E_name, E_city) 
                VALUES (107, ‘Ashish’, ‘Delhi’);
    INSERT INTO Employee_info(E_id, E_name, E_city) 
           VALUES (110, ‘Rana’, ‘Noida’); 

    要查询数据或读取数据,请使用以下“SELECT”查询。

    Select * 
    from Employee_info; 

    输出:

    E_id E_name E_city
    107 Ashish Delhi
    110 Rana Noida

  • 格式 2:通过使用 JSON,我们还可以插入数据。

    句法:

    INSERT INTO table_name JSON '{"field_name1":"field_value1", 
                                       "field_name2":"field_value2", 
                                       "field_name3":"field_value3", ...}' 

    例如:

    INSERT INTO Employee_info JSON ’(“E_id” :”107”, 
                                          “E_name” : “Ashish”, 
                                           “E_city” : “Delhi”)’ ; 

    输出:使用 JSON 将数据插入表中。

    E_id E_name E_city
    107 Ashish Delhi

2. 更新:
要使用新数据更新现有数据,我们可以使用 Cassandra 中的“UPDATE”数据操作命令。

句法:

UPDATE table_name USING  update _parameter
       SET field_name1 = field_value1,
           field_name2 = field_value2,
           field_name3> = field_value3,
                    .....
WHERE field_name = field_value; 

例如:

UPDATE student USING TTL 500
SET E_name= ‘Ashish Rana’,
E_city= ‘Mumbai’,
WHERE E_id=107; 

输出:

E_id E_name E_city
107 Ashish Rana Mumbai
110 Rana Noida

笔记:
UPDATE 和 INSERT 语句支持以下参数。

1. TIMESTAMP
2. TTL (Time To Live) 

DELETE 和 BATCH 语句支持以下参数。

1. TIMESTAMP 

3. 删除:
当用户想根据某些条件删除一些现有数据时,我们可以在 Cassandra 中执行“删除”数据操作命令。

句法:

DELETE table_name  
    USING  update _parameter
     ... 
    WHERE condition; 

例如:

  • 示例 1:
    DELETE FROM Employee_info 
                USING TIMESTAMP 1450002143
     WHERE E_id = 107; 

    输出:

    E_id E_name E_city
    110 Rana Noida

  • 示例 2:
    DELETE E_city 
    FROM Employee_info
    WHERE E_id IN (107, 110); 

    输出:

    E_id E_name
    107 Ashish Rana
    110 Rana

4. 批次:
它用于通过一个 BATCH 语句进行分组来执行多个 INSERT、UPDATE 和 DELETE 语句。

句法:

batch_statement ::=  BEGIN [ UNLOGGED | COUNTER ] BATCH
                         [ USING update_parameter ( AND update_parameter )* ]
                           modification_statement ( ';' modification_statement )*
                            APPLY BATCH
modification_statement ::=  insert_statement | update_statement | delete_statement 

来源。

例如:

BEGIN BATCH
   INSERT INTO users (E_id, E_name, E_city) 
          VALUES (908, 'Rahul Rana', 'Meerut');
   INSERT INTO users (E_id, E_name, E_city) 
          VALUES (909, 'Gaurav Rana', 'Meerut');   
   UPDATE Employee_info SET E_city = 'Noida' WHERE E_id = '908';
   DELETE E_name 
          FROM Employee_info 
          WHERE E_id = 909;
APPLY BATCH; 

输出:

E_id E_name E_city
908 Rahul Rana Noida
909 Null Meerut