当前位置: 首页 > news >正文

神木网站建设免费下载优化大师

神木网站建设,免费下载优化大师,自己做网站还是公众号,广州商城网站建设插入数据 在表中创建数据 您可以使用命令 INSERT 将数据插入表中一行的列中。 下面给出了在表中创建数据的语法。 INSERT INTO <tablename> (<column1 name>, <column2 name>....) VALUES (<value1>, <value2>....) USING <option> 例子…

插入数据

在表中创建数据
您可以使用命令 INSERT 将数据插入表中一行的列中。 下面给出了在表中创建数据的语法。

INSERT INTO <tablename>
(<column1 name>, <column2 name>....)
VALUES (<value1>, <value2>....)
USING <option>

例子
让我们假设有一个名为 emp 的表,其中包含列(emp_id、emp_name、emp_city、emp_phone、emp_sal),您必须将以下数据插入到 emp 表中。

emp_idemp_nameemp_cityemp_phoneemp_sal
1ramHyderabad984802233850000
2robinHyderabad984802233940000
3rahmanChennai984802233045000
cqlsh:tutorialspoint> INSERT INTO emp (emp_id, emp_name, emp_city,emp_phone, emp_sal) VALUES(1,'ram', 'Hyderabad', 9848022338, 50000);cqlsh:tutorialspoint> INSERT INTO emp (emp_id, emp_name, emp_city,emp_phone, emp_sal) VALUES(2,'robin', 'Hyderabad', 9848022339, 40000);cqlsh:tutorialspoint> INSERT INTO emp (emp_id, emp_name, emp_city,emp_phone, emp_sal) VALUES(3,'rahman', 'Chennai', 9848022330, 45000);

确认
插入数据后,使用SELECT语句验证数据是否已经插入。 如果您使用 SELECT 语句验证 emp 表,它将为您提供以下输出。

cqlsh:tutorialspoint> SELECT * FROM emp;emp_id |  emp_city | emp_name |  emp_phone | emp_sal
--------+-----------+----------+------------+---------1 | Hyderabad |      ram | 9848022338 | 500002 | Hyderabad |    robin | 9848022339 | 400003 |   Chennai |   rahman | 9848022330 | 45000(3 rows)

 使用 Java API 创建数据

import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Session;public class Create_Data {public static void main(String args[]){//queriesString query1 = "INSERT INTO emp (emp_id, emp_name, emp_city, emp_phone,  emp_sal)"+ " VALUES(1,'ram', 'Hyderabad', 9848022338, 50000);" ;String query2 = "INSERT INTO emp (emp_id, emp_name, emp_city,emp_phone, emp_sal)"+ " VALUES(2,'robin', 'Hyderabad', 9848022339, 40000);" ;String query3 = "INSERT INTO emp (emp_id, emp_name, emp_city, emp_phone, emp_sal)"+ " VALUES(3,'rahman', 'Chennai', 9848022330, 45000);" ;//Creating Cluster objectCluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();//Creating Session objectSession session = cluster.connect("tp");//Executing the querysession.execute(query1);session.execute(query2);session.execute(query3);System.out.println("Data created");}
}

更新数据

更新表中的数据
UPDATE 是用于更新表中数据的命令。 更新表中的数据时使用以下关键字 -

Where - 此子句用于选择要更新的行。

Set - 使用此关键字设置值。

Must - 包括构成主键的所有列。

更新行时,如果给定行不可用,则 UPDATE 会创建一个新行。 下面给出的是 UPDATE 命令的语法 -

UPDATE <tablename>
SET <column name> = <new value>
<column name> = <value>....
WHERE <condition>

现在让我们将 robin 的 emp_city 更新为德里,并将他的薪水更新为 50000。下面给出的是执行所需更新的查询。

cqlsh:tutorialspoint> UPDATE emp SET emp_city='Delhi',emp_sal=50000WHERE emp_id=2;
import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Session;public class Update_Data {public static void main(String args[]){//queryString query = " UPDATE emp SET emp_city='Delhi',emp_sal=50000"//Creating Cluster objectCluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();//Creating Session objectSession session = cluster.connect("tp");//Executing the querysession.execute(query);System.out.println("Data updated");}}

查询数据

使用 Select 子句读取数据
SELECT 子句用于从 Cassandra 中的表中读取数据。 使用此子句,您可以读取整个表格、单个列或特定单元格。 下面给出的是 SELECT 子句的语法。

SELECT FROM <tablename>

以下示例显示如何使用 SELECT 子句读取整个表。 在这里,我们正在读取一个名为 emp 的表。

cqlsh:tutorialspoint> select * from emp;emp_id |  emp_city | emp_name |  emp_phone | emp_sal
--------+-----------+----------+------------+---------1 | Hyderabad |   ram    | 9848022338 | 500002 | null      |   robin  | 9848022339 | 500003 | Chennai   |   rahman | 9848022330 | 500004 | Pune      |   rajeev | 9848022331 | 30000(4 rows)

阅读必填栏目
以下示例显示如何读取表中的特定列。

cqlsh:tutorialspoint> SELECT emp_name, emp_sal from emp;emp_name | emp_sal
----------+---------ram | 50000robin | 50000rajeev | 30000rahman | 50000 (4 rows)

Where 子句
使用 WHERE 子句,您可以对所需的列施加约束。 其语法如下 -

SELECT FROM <table name> WHERE <condition>;

注意 - WHERE 子句只能用于作为主键的一部分或在其上具有二级索引的列。

在下面的示例中,我们正在读取薪水为 50000 的员工的详细信息。首先,将二级索引设置为列 emp_sal。

cqlsh:tutorialspoint> CREATE INDEX ON emp(emp_sal);
cqlsh:tutorialspoint> SELECT * FROM emp WHERE emp_sal=50000;emp_id |  emp_city | emp_name |  emp_phone | emp_sal
--------+-----------+----------+------------+---------1 | Hyderabad |      ram | 9848022338 | 500002 |      null |    robin | 9848022339 | 500003 |   Chennai |   rahman | 9848022330 | 50000

使用Java API

import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.ResultSet;
import com.datastax.driver.core.Session;public class Read_Data {public static void main(String args[])throws Exception{//queriesString query = "SELECT * FROM emp";//Creating Cluster objectCluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();//Creating Session objectSession session = cluster.connect("tutorialspoint");//Getting the ResultSetResultSet result = session.execute(query);System.out.println(result.all());}
}

删除数据

您可以使用命令 DELETE 从表中删除数据。 其语法如下 -

DELETE FROM <identifier> WHERE <condition>;

以下语句删除最后一行的 emp_sal 列 -

cqlsh:tutorialspoint> DELETE emp_sal FROM emp WHERE emp_id=3;

删除整行
以下命令从表中删除整行。

cqlsh:tutorialspoint> DELETE FROM emp WHERE emp_id=3;

使用Java API

import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Session;public class Delete_Data {public static void main(String args[]){//queryString query = "DELETE FROM emp WHERE emp_id=3;";//Creating Cluster objectCluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();//Creating Session objectSession session = cluster.connect("tp");//Executing the querysession.execute(query);System.out.println("Data deleted");}
}

CQL 数据类型

CQL 提供了一组丰富的内置数据类型,包括集合类型。 除了这些数据类型,用户还可以创建自己的自定义数据类型。 下表提供了 CQL 中可用的内置数据类型列表。

数据类型关键字描述
asciistrings表示 ASCII 字符串
bigintbigint表示 64-bit signed long
blobblobs表示任意常数 bytes
Booleanbooleans表示 true or false
counterintegers表示 计数器 column
decimalintegers, floats表示  decimal
doubleintegers表示64-bit IEEE-754 floating point
floatintegers, floats表示 32-bit IEEE-754 floating point
inetstrings表示 IP地址 IPv4 or IPv6
intintegers表示 32-bit signed int
textstrings表示 UTF8字符串
timestampintegers, strings表示  timestamp
timeuuiduuids表示 UUID
uuiduuids表示 1 或 4
UUID
varcharstrings表示uTF8字符串
varintintegers表示任意精度整数

集合类型
Cassandra 查询语言还提供了集合数据类型。 下表提供了 CQL 中可用的集合列表。

集合描述
list列表是一个或多个有序元素的集合。
map映射是键值对的集合。
set集合是一个或多个元素的集合。

用户定义的数据类型
Cqlsh 为用户提供了创建自己的数据类型的便利。 下面给出了处理用户定义的数据类型时使用的命令。

CREATE TYPE - 创建用户定义的数据类型。

ALTER TYPE - 修改用户定义的数据类型。

DROP TYPE - 删除用户定义的数据类型。

DESCRIBE TYPE - 描述用户定义的数据类型。

DESCRIBE TYPES - 描述用户定义的数据类型。

CQL集合

CQL 提供了使用集合数据类型的便利。 使用这些集合类型,您可以将多个值存储在单个变量中。 本章介绍如何在 Cassandra 中使用集合。

列表
列表用于以下情况

要保持元素的顺序,并且
一个值要存储多次。
您可以使用列表中元素的索引获取列表数据类型的值。

使用列表创建表
下面给出的示例创建了一个包含两列(名称和电子邮件)的示例表。 要存储多封电子邮件,我们使用列表。

CREATE TABLE data(name text PRIMARY KEY, email list<text>)

将数据插入列表
将数据插入列表中的元素时,请在方括号 [ ] 内输入以逗号分隔的所有值,如下所示。

cqlsh:tutorialspoint> INSERT INTO data(name, email) VALUES ('ramu',
['abc@gmail.com','cba@yahoo.com'])

更新列表
下面给出了一个示例,用于更新名为 data 的表中的列表数据类型。 在这里,我们正在向列表中添加另一封电子邮件。

cqlsh:tutorialspoint> UPDATE data
... SET email = email +['xyz@tutorialspoint.com']
... where name = 'ramu';

确认
如果您使用 SELECT 语句验证表,您将得到以下结果 -

cqlsh:tutorialspoint> SELECT * FROM data;name | email
------+--------------------------------------------------------------ramu | ['abc@gmail.com', 'cba@yahoo.com', 'xyz@tutorialspoint.com'](1 rows)

Set
Set 是一种数据类型,用于存储一组元素。 集合的元素将按排序顺序返回。

使用 Set 创建表
以下示例创建一个包含两列的示例表,名称和电话。 为了存储多个电话号码,我们使用 set。

CREATE TABLE data2 (name text PRIMARY KEY, phone set<varint>);

将数据插入集合
在将数据插入集合中的元素时,在花括号 { } 内输入以逗号分隔的所有值,如下所示。

INSERT INTO data2(name, phone)VALUES ('rahman',    {9848022338,9848022339});

更新集合
以下代码显示如何更新名为 data2 的表中的集合。 在这里,我们正在向集合中添加另一个电话号码。

cqlsh:tutorialspoint> UPDATE data2... SET phone = phone + {9848022330}... where name = 'rahman';

确认
如果您使用 SELECT 语句验证表,您将得到以下结果 -

cqlsh:tutorialspoint> SELECT * FROM data2;name | phone
--------+--------------------------------------rahman | {9848022330, 9848022338, 9848022339}(1 rows)

Map


Map 是一种数据类型,用于存储元素的键值对。


以下示例显示如何创建一个包含两列(名称和地址)的示例表。 为了存储多个地址值,我们使用 map。

CREATE TABLE data3 (name text PRIMARY KEY, address
map<timestamp, text>);

将数据插入Map
将数据插入Map中的元素时,在花括号 {} 内输入所有键:值对,以逗号分隔,如下所示。

INSERT INTO data3 (name, address)VALUES ('robin', {'home' : 'hyderabad' , 'office' : 'Delhi' } );

更新Map
以下代码显示如何更新名为 data3 的表中的地图数据类型。 这里我们改变的是key office 的值,也就是说,我们改变的是一个叫robin 的人的办公室地址。

cqlsh:tutorialspoint> UPDATE data3... SET address = address+{'office':'mumbai'}... WHERE name = 'robin';

确认
如果您使用 SELECT 语句验证表,您将得到以下结果 -

cqlsh:tutorialspoint> select * from data3;name | address
-------+-------------------------------------------robin | {'home': 'hyderabad', 'office': 'mumbai'}(1 rows)

CQL 用户定义的数据类型

CQL 提供了创建和使用用户定义数据类型的便利。 您可以创建一个数据类型来处理多个字段。 本章说明如何创建、更改和删除用户定义的数据类型。

创建用户定义的数据类型
命令 CREATE TYPE 用于创建用户定义的数据类型。 其语法如下 -

CREATE TYPE <keyspace name>. <data typename>
( variable1, variable2).

例子
下面给出了创建用户定义数据类型的示例。 在此示例中,我们正在创建一个包含以下详细信息的 card_details 数据类型。

属性属性名数据类型
credit card nonumint
credit card pinpinint
name on credit cardnametext
cvvcvvint
Contact details of card holderphoneset
cqlsh:tutorialspoint> CREATE TYPE card_details (... num int,... pin int,... name text,... cvv int,... phone set<int>
... );

注意 - 用于用户定义数据类型的名称不应与保留类型名称一致。

确认
使用 DESCRIBE 命令验证创建的类型是否已创建。

CREATE TYPE tutorialspoint.card_details (num int,pin int,name text,cvv int,phone set<int>);

更改用户定义的数据类型
ALTER TYPE - 命令用于改变现有的数据类型。 使用 ALTER,您可以添加新字段或重命名现有字段。

向类型添加字段
使用以下语法将新字段添加到现有的用户定义数据类型。

ALTER TYPE typename
ADD field_name field_type; 

以下代码将新字段添加到 Card_details 数据类型。 在这里,我们添加了一个名为 email 的新字段。

cqlsh:tutorialspoint> ALTER TYPE card_details ADD email text;

确认
使用 DESCRIBE 命令验证是否添加了新字段。

cqlsh:tutorialspoint> describe type card_details;
CREATE TYPE tutorialspoint.card_details (num int,pin int,name text,cvv int,phone set<int>,);

重命名类型中的字段
使用以下语法重命名现有的用户定义数据类型。

ALTER TYPE typename
RENAME existing_name TO new_name;

例子:

cqlsh:tutorialspoint> ALTER TYPE card_details RENAME email TO mail;

验证:

cqlsh:tutorialspoint> describe type card_details;
CREATE TYPE tutorialspoint.card_details (num int,pin int,name text,cvv int,phone set<int>,mail text);

删除用户定义的数据类型
DROP TYPE 是用于删除用户定义数据类型的命令。 下面给出了删除用户定义数据类型的示例。

例子
在删除之前,使用 DESCRIBE_TYPES 命令验证所有用户定义数据类型的列表,如下所示。

cqlsh:tutorialspoint> DESCRIBE TYPES;
card_details card

从这两种类型中,删除名为 card 的类型,如下所示。

cqlsh:tutorialspoint> drop type card;

使用 DESCRIBE 命令验证数据类型是否被丢弃。

cqlsh:tutorialspoint> describe types;card_details

写在最后

推荐大家在实际的环境中使用ScyllaDB,ScyllaDB是用C++重写的Cassandra,其官网宣称其每节点每秒可处理100万TPS。ScyllaDB完全兼容Apache Cassandra,拥有比Cassandra多10X倍的吞吐量,并降低了延迟。ScyllaDB是性能优异的NoSQL列存储数据库。

ScyllaDB在垃圾收集或者Compaction的时候不需要暂停(但是通过压测和Longevity测试发现Compaction的过程中对性能还是有很大影响)。

ScyllaDB在常规生产负载的时候可以添加或删除节点(通过nodetool来同步数据)。

ScyllaDB是一个P2P的分布式系统,集群中各节点之间相互平等。其数据分布于集群中的各节点,各节点之间每秒钟交换一次信息。

其每个节点使用Commit Log提交日志捕获写操作来保持数据的正确性。数据首先被写入MemTable(内存中的数据结构)中。当MemTable满后数据被写入SSTable(存储在硬盘上的数据文件)中。

用户可以使用类似于SQL的CQL来查询数据。用户可以链接至集群中的任意节点。

在集群中,一个Keyspace代表关系数据库中的一个数据库。一个Keyspace中可以包含多个表。
 

http://www.hrbkazy.com/news/55383.html

相关文章:

  • 百度免费邮箱注册seo免费优化工具
  • 营销型网站建设制作青岛网站排名推广
  • 苏宁网站优化与推广seo教育培训机构
  • 婚庆公司网站建设策划书东莞seo建站投放
  • 哪些网站可做矿机期货google在线代理
  • 网站个人备案步骤2345浏览器网址
  • 网站设计错误北京网站营销seo方案
  • 茶叶网站建设的优势广告关键词查询
  • 建设网站实训报告书临沂网站建设优化
  • 用软件什么做网站济南seo网站优化
  • 合肥市建设工程市场价格信息网站写文章免费的软件
  • 网站运营这么做网络营销产品推广方案
  • 专业做曝光引流网站站外推广渠道有哪些
  • seo营销型网站推广班级优化大师网页版
  • 有个专门做任务赚钱的网站全国疫情最新情况最新消息今天
  • 公司网站外包建设没有源代码汕头网站排名
  • 有代码怎么做网站百度山西授权代理
  • 专业建站网站北京seo公司公司
  • 网站怎么建设?百度搜索风云榜小说
  • 企划做网站我的百度账号登录
  • 免费手机网站建设站长之家是什么
  • 中国企业有哪些厦门谷歌seo公司有哪些
  • 银川做网站的公司谷歌搜索引擎下载
  • 网站搭建的意义湖南长沙seo
  • php做的网站优缺点百度推广有效果吗?
  • 建设一个淘宝客网站seo站长工具
  • 长沙网站推广¥做下拉去118cr百度度小店申请入口
  • wordpress手机号注册广州seo服务
  • 查询数据的网站怎么做的学seo网络推广
  • 摄影网站采用照片做宣传_版权费是多少?百度一下你就知道官网网页