暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

oushudb-基本概念

原创 宗恩 2023-02-07
460

在关系型数据库中,表由行和列组成。

其中表的列的数目和顺序是固定的,每个列都有一个名字,并且有指定的数据类型,即限制着这个 列可以存储的范围。比如,声明为数值类型的列不可以存储字符串,否则该列不能用于数学计算, 声明为字符串类型的列可以存储几乎任意类型的数据,但是却不能进行数学计算。常用的数据类型 有:用于整数的integer类型、用于可能为分数的numeric类型、用于字符串的text类型、用于日期 的date类型等等,在后面的课程中,我们会对OushuDB支持的这些数据类型进行详细的介绍。 与表的列不同,表的行数目是变化的,它反映了在某个时刻表中存储的数据量。行是没有顺序的, 除非在查询时对其进行要求,另外,行也没有唯一的标识符,不同行的数据完全相同的情况是被允 许的,如果不希望这样,也可以通过一些限制来处理。

下面,我们来使用CREATE TABLE命令创建一个表。 在这个命令里,你需要为声明新表的名称、各列的名称及数据类型。比如:

这样就创建了一个有两个列的名为my_first_table的默认格式表。第一个列的名字是first_column,数据 类型为text;第二个列的名字是second_column,数据类型是integer。

OushuDB现在支持多种存储格式:AO、ORC和Magma。AO是按行存储的格式,而ORC、Magma是按 行列存储的格式。 其中Magma 是在4.0.0.0发布的全新的存储格式。Magma和ORC都支持update/ delete, 且Magma还支持index。

这三种存储格式的特性支持情况如图所示,大家可以根据自己的需求来选择。

CREATE TABLE my_first_table (
    first_column text,
    second_column integer

);

这三种不同的存储格式下,创建表的命令也有所区别,下面给出几个例子以供参考。

# 默认创建的是AO表
CREATE TABLE rank1 (id int, rank int, year smallint,gender char(1), count int );

# 和上面的创建的表一样,显式指定存储格式类型
CREATE TABLE rank2 (id int, rank int, year smallint,gender char(1), count int ) with (appendonly =true, orientation =row);

当我们不再需要一个表,那么可以用DROP TABLE命令删除它。如删除一个表名为my_first_table的表:

好的,学习以上内容,就可以完成一个表的创建了。
下面我们来说一下,在创建表时可以设置的缺省值和约束。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论