📜  Cassandra-CQL数据类型(1)

📅  最后修改于: 2023-12-03 14:40:01.847000             🧑  作者: Mango

Cassandra CQL数据类型

Cassandra CQL(Cassandra Query Language)是由Apache Cassandra数据库使用的查询语言。如果你是一个Cassandra用户,你需要了解它的数据类型。本文将介绍Cassandra支持的主要数据类型。

数值类型

Cassandra支持以下数值类型:

  • int - 固定长度的整数,占据4个字节(-2^31到2^31-1)。
  • bigint - 固定长度的大整数,占据8个字节(-2^63到2^63-1)。
  • float - 4字节浮点数(IEEE-754)。
  • double - 8字节浮点数(IEEE-754)。
  • decimal -可变长度的小数类型,支持固定精度,占据1到9个字节。

以下是数值类型的一个示例:

CREATE TABLE products (
   id int PRIMARY KEY,
   price decimal
);
文本类型

Cassandra支持以下文本类型:

  • text - 字符串数据类型。长度不超过2^31-1个字符。
  • ascii -字符数据类型(ASCII码)。长度不超过2^31-1个字符。
  • varchar - 字符串数据类型,可变长度。长度不超过2^31-1个字符。
  • blob - 二进制数据类型。长度不超过2GB。

以下是文本类型的一个示例:

CREATE TABLE customers (
   id int PRIMARY KEY,
   name text,
   address varchar,
   phone ascii
);
布尔类型

Cassandra支持boolean类型。boolean类型有两个值:true和false。

以下是布尔类型的一个示例:

CREATE TABLE users (
   id int PRIMARY KEY,
   active boolean
);
时间类型

Cassandra支持以下时间类型:

  • timestamp - 时间戳数据类型。从1970年1月1日起的毫秒数。占据8个字节。
  • date - 日期数据类型。占据4个字节。

以下是时间类型的一个示例:

CREATE TABLE orders (
   id int PRIMARY KEY,
   order_date timestamp,
   delivery_date date
);
集合

Cassandra支持以下集合类型:

  • list - 有序列表。列表中的数据类型必须相同。
  • set - 无序集合。集合中的数据类型必须相同。重复的项将被忽略。
  • map - 键值对集合。键必须为相同的数据类型,值也必须为相同的数据类型。

以下是集合类型的一个示例:

CREATE TABLE inventory (
   id int PRIMARY KEY,
   items list<text>,
   colors set<text>,
   descriptions map<text, text>
);
自定义类型

Cassandra支持自定义类型。可以使用自定义类型作为表的列类型。

以下是自定义类型的一个示例:

CREATE TYPE address (
   street text,
   city text,
   state text,
   zip int,
);

CREATE TABLE customers (
   id int PRIMARY KEY,
   name text,
   address frozen<address>
);
空值

Cassandra支持空值。空值被称为NULL。

以下是空值的一个示例:

CREATE TABLE users (
   id int PRIMARY KEY,
   username text,
   email text,
   phone text
);

INSERT INTO users(id, username, email, phone) VALUES(1, 'johndoe', NULL, '555-555-1234');

以上就是Cassandra支持的主要数据类型。如果你正在开发Cassandra应用程序,务必深入了解这些类型。