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中可用的内置数据类型的列表。

数据类型 常量 描述
ascii strings 表示ASCII字符串
bigint bigint 表示64位有符号长
blob blobs 表示任意字节
Boolean booleans 表示true或false
counter integers 表示计数器列
decimal integers, floats 表示变量精度十进制
double integers 表示64位IEEE-754浮点
float integers, floats 表示32位IEEE-754浮点
inet strings 表示一个IP地址,IPv4或IPv6
int integers 表示32位有符号整数
text strings 表示UTF8编码的字符串
timestamp integers, strings 表示时间戳
timeuuid uuids 表示类型1 UUID
uuid uuids 表示类型1或类型4
    UUID
varchar strings 表示uTF8编码的字符串
varint integers 表示任意精度整数

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

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 列表是一个或多个有序元素的集合。
map map是键值对的集合。
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.

你可能感兴趣的:(CASSANDRA)