📜  Apache Cassandra 中预定义的数据类型

📅  最后修改于: 2021-09-09 10:26:40             🧑  作者: Mango

先决条件 – Cassandra 中的用户定义类型 (UDT)
在本文中,我们将讨论 Cassandra 中不同类型的数据类型,它们在 Cassandra 中用于各种目的,例如数据建模、创建表等。

基本上,Cassandra 中有 3 种数据类型。我们来看一下。

图 – Cassandra 中的数据类型

现在,我们将在这里讨论 Cassandra 中的内置数据类型。

内置数据类型:
它是 Cassandra 中预定义的数据类型。我们可以直接使用,根据需要简单地给出数据类型名称。 Cassandra 中有许多内置数据类型。让我们一一讨论。

  • 布尔值:
    它是一种表示两个值(真或假)的数据类型。因此,我们可以在只需要两个值的地方使用这种类型的数据类型。
    true or false 

    句法:

    CREATE TABLE table_name(
     field_name1 Boolean,
     ...
     ); 
  • 斑点:
    它用于二进制大对象,例如音频、视频或其他多媒体,有时还用于存储为 blob 的二进制可执行代码。
    binary large objects 

    句法:

    CREATE TABLE table_name(
     field_name1 blob,
     ...
     ); 
  • ASCII:
    它用于字符串类型,例如单词和句子。它代表了字符的ASCII值。例如,对于 ‘A’ ASCII 值为 65。因此,它将存储其 ASCII 值。
    65 for A, 97 for a, etc. 

    句法:

    CREATE TABLE table_name(
     field_name1 ascii,
     ...
     ); 
  • 大整数:
    它用于 64 位有符号长整数。基本上它用于高范围的整数,大致表示从 -(2^32) 到 +(2^32) 的值。
    only for integers -(2^32) to +(2^32) 

    句法:

    CREATE TABLE table_name(
     field_name1 bigint,
     ...
     ); 
  • 柜台:
    它用于整数并表示计数器列。这些列代表列族的行的一部分,列族基本上包含数值,包含列数。
    1, 2, 3... (integer)  

    句法:

    CREATE TABLE table_name(
     field_name1 counter,
     ...
     ); 
  • 十进制:
    它用于保存整数和浮点值。在十进制数据类型中,重要的是要注意当我们尝试保存十进制值(例如 .907(点 907))时,它会给出错误“在输入处没有可行的替代方案”。 (…DecimalValue) 值 (1, [.]…)”。如果我们需要像这样保存小数,那么从零开始,例如 0.907。
    10.45, 1, -1, 0.32...  

    句法:

    CREATE TABLE table_name(
     field_name1 DECIMAL,
     ...
     ); 
  • 双倍的:
    它用于表示 64 位浮点的整数。它包括一个带小数点的数字。例如:5.838、10.45 等。
    10.4556, 3.566, 0.5875 etc.  

    句法:

    CREATE TABLE table_name(
     field_name1 double,
     ...
     ); 
  • 漂浮:
    它用于表示 32 位浮点数的数字。它代表一个带小数点的数值。例如:6.254、5.23 等。
    5.423, 2.31, 3.12...[32 bit floating point]  

    句法:

    CREATE TABLE table_name(
     field_name1 float,
     ...
     ); 
  • 内网:
    它用于表示包含数字和字符的 IP 地址。基本上它代表一个IP地址,IPv4或IPv6。例如,64.233.160.0 对于这种类型的地址,我们可以使用 inet 数据类型。
    64.233.160.0 ...[IP address, IPv4 or IPv6]  

    句法:

    CREATE TABLE table_name(
     field_name1 inet,
     ...
     ); 
  • 内部:
    它用于表示 32 位有符号整数。它代表正数和负数。 int 的范围从 -(2^16) 到 +(2^16) [仅限整数]。
    24, 907, -9,  ... 

    [表示 32 位有符号 int -(2^16) 到 +(2^16) [仅整数]]

    句法:

    CREATE TABLE table_name(
     field_name1 int,
     ...
     ); 
  • 文本:
    用于存储代表UTF8编码字符串的字符串类型。它通过使用 Cassandra 中的 1 位到 4 个 8 位类型以 Uni-code 对所有有效点进行编码。
    Ashish, rana, ...[Represents UTF8 encoded string]   

    句法:

    CREATE TABLE table_name(
     field_name1 text,
     ...
     ); 
  • 变量字符:
    它被用于存储表示UTF8编码的字符串任意字符串。
    Ashish, rana, a$#34, A67dgg...

    [任意字符串,代表UTF8编码的字符串]

    句法:

    CREATE TABLE table_name(
     field_name1 varchar,
     ...
     ); 
  • 时间戳:
    它用于表示时间戳,这对于存储时间戳的确切时间格式值非常有用。例如,如果我们想在 1995 年 12 月 15 日凌晨 4:00 存储,那么时间戳将是:
    1995-12-15 04:00 +0530 

    这里+0530代表印度的子午线。

    [formats: yyyy-mm-dd HH:mm or yyyy-mm-dd HH:mm:ss]  

    句法:

    CREATE TABLE table_name(
     field_name1 timestamp,
     ...
     ); 
  • 变体:
    它用于表示任意精度的整数,例如 124、24、1、5468 等。
    1, 24, 07, 897, 4568, etc.  

    句法:

    CREATE TABLE table_name(
     field_name1 variant,
     ...
     );