SQL3种建表方式

注:测试环境为DataWorks ODPS SQL。
本文简述3种建表方式,1常用建表(含分区表、生命周期)、2同构表、3带数据同构表
1.1常用建表语句
建表时指定表名、字段名、字段类型;可适当添加注释信息;
create table 表名(
字段1 类型,
字段2 类型

)
;

--1建表语句,相关注释为局部注释,查看表信息时,看不到注释。
create table test(
    id string,--编号
    name string,--姓名
    age decimal(3,0)--年龄
)
;
--2相关注释可在查看表信息时,同时看到注释
create table test(
    id string COMMENT '编号',
    name string comment '姓名',
    age decimal(3,0) comment '年龄'
)
comment '测试表'
;

1.2创建分区表,并指定生命周期
数据量过大时,全表查询会影响查询效率,可创建分区表,查询时只查询某个分区的数据;
生命周期,指表数据存在的时间,超过指定时间,会自动清除。如学生成绩,只关注一学期的成绩,可以设置生命周期为180天;

create table stu_check(
    stu_id string COMMENT '学号',
    name string comment '姓名',
    score decimal(2,1) COMMENT '测试分数'
)COMMENT '学生测试表' 
PARTITIONED  by (dt STRING COMMENT '测试时间') --指定分区字段
LIFECYCLE 3  --指定生命周期为3天,不需要自动清除数据,可不设置
;
--以测试时间为分区,查询时,只查看某次考试的分数,如查看dt=‘20230705’的学生测试分数:
select stu_id ,name ,score from stu_check where dt = '20230705';

2创建同构表
根据已有表,创建相同结构的表,只同构表结构,不复制数据;

create table test2 like test;
--test2为新创建表,test为已存在表;

3创建带数据同构表
根据已有表,创建相同结构的表,同构表结构,复制数据;

create table test3 as select id,name,age from test;
--test3为新创建表,test为已存在表;

测试代码:

--测试表test插入一条数据
insert into test 
values('1','张三',22)
;
--创建带数据同构表
create table test3 as select id,name,age from test;
--查询数据(测试结果1)
select id,name,age from test3;

测试结果1:
在这里插入图片描述

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐