CASSANDRA学习笔记 (五)理解Cassandra的表

先看一个建表语句:

cqlsh> USE tutorialspoint;
cqlsh:tutorialspoint>; CREATE TABLE emp(
   emp_id int PRIMARY KEY,
   emp_name text,
   emp_city text,
   emp_sal varint,
   emp_phone varint
   );

表务必要有一个primary key,这是每一行的唯一标识。

 

此处插入对Cassandra支持类型的介绍:

Cassandra CQL数据类型

 

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

数据类型常量描述
asciistrings表示ASCII字符串
bigintbigint表示64位有符号长
blobblobs表示任意字节
Booleanbooleans表示true或false
counterintegers表示计数器列
decimalintegers, floats表示变量精度十进制
doubleintegers表示64位IEEE-754浮点
floatintegers, floats表示32位IEEE-754浮点
inetstrings表示一个IP地址,IPv4或IPv6
intintegers表示32位有符号整数
textstrings表示UTF8编码的字符串
timestampintegers, strings表示时间戳
timeuuiduuids表示类型1 UUID
uuiduuids表示类型1或类型4
  UUID
varcharstrings表示uTF8编码的字符串
varintintegers表示任意精度整数

我看到这个表之后有一些疑问:

1、text和varchar有什么区别?

A: 没区别,“text is just an alias for varchar!”

2. uuid 和 timeuuid有什么区别?

http://www.it1352.com/503683.html

timeuuid产生的序列号和时间顺序强相关(和用 now() 类似,只是它比较易理解),uuid则不这么强相关。

3. varint是什么?

可变精度有符号整数,和 Java 中的 java.math.BigInteger 类似;

4. Counter是什么?

Counter是一种限制很多了类型,一般情况一张表里如果有一个counter类型的字段,这张表就只能作为计数器使用了,其他字段都只能作为标识和辅助。Counter类型可以支持自增操作,符合它计数器类型的定义。除此之外,其他数字类型的字段都不支持自增操作。

它初始化之后,就不能再被设置值了,只能以+N或者-N的形式操作。

有counter类型字段的表,里面的行不能被删除,也不能支持ttl,因为这等同于超时删除。

详情见这个翻译:https://www.cnblogs.com/didda/p/4789013.html

 

OK,继续看。

 

集合类型

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

集合描述
list列表是一个或多个有序元素的集合。
mapmap是键值对的集合。
set集合是一个或多个元素的集合。(并不排重?

用户定义的数据类型:

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

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

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

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

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

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

 

 

继续回到表相关的知识。

修改表的示例语句:

cqlsh:tutorialspoint> ALTER TABLE emp
   ... ADD emp_email text;  -- 增加列
cqlsh:tutorialspoint> ALTER TABLE emp DROP emp_email;   --删除列

删除表:

cqlsh:tutorialspoint> DROP TABLE emp;

清空表数据:

cqlsh:tp> TRUNCATE student;

 

Done.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Cassandra中建的方式有多种,可以使用CQL命令或Java代码来创建。引用中给出了使用Java代码创建的示例。通过调用Ddl.createTable方法,可以传递一个Java Bean对象作为第一个参数,该对象包含了的结构信息,第二个参数指示是否覆盖原来的。具体示例代码如下: ```java Ddl.createTable(new CassandraTable(), false); ``` 引用中提到了在使用Cassandra建立新时遇到的错误。该错误可能是由DOWN节点引起的架构版本不匹配导致的。如果不是这个问题,可以检查system.local和system.peers中节点的架构版本。需要确保所有节点的架构版本一致。 引用中给出了一个建语句的示例,使用CQL命令在tutorialspoint键空间下创建了一个名为emp的,包含了emp_id、emp_name、emp_city、emp_sal和emp_phone等列。 综上所述,要在Cassandra中建,可以使用Java代码调用Ddl.createTable方法,也可以使用CQL命令执行CREATE TABLE语句。123 #### 引用[.reference_title] - *1* [根据Javabean创建Cassandra数据](https://blog.csdn.net/abckingaa/article/details/123523901)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] - *2* [cassandra异常处理 · Messay](https://blog.csdn.net/u011250186/article/details/112608110)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] - *3* [CASSANDRA学习笔记理解Cassandra](https://blog.csdn.net/kexinmei/article/details/103510782)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值