SQL建表方式

本文介绍了在DataWorksODPSSQL环境下创建表的三种方式:1)常规建表,包括分区表和生命周期管理;2)创建同构表,只复制结构;3)创建带数据的同构表,同时复制结构和数据。分区表有助于提升查询效率,生命周期管理能自动清除过期数据,同构表则方便构建相同结构的表。
摘要由CSDN通过智能技术生成

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:
在这里插入图片描述

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值