关键字
TABLE --表
CREATE --创建表
DROP --删除表
SET --表中数据唯一
MULTISET --可以存在重复记录
VOLATILE --临时表
SHOW --展现表定义
FORMAT --格式化
NOT NULL --非空约束
TITLE ‘抬头’ --列抬头
UNIQUE --唯一性约束
ON COMMIT PRESERVE ROWS --临时表时使用,
创建表
– 创建普通表
CREATE MULTISET TABLE TEST.CUST (
STAT_DT DATE FORMAT ‘YYYYMMDD’ TITLE ‘统计日期’ NOT NULL
,HOST_CUST_ID VARCHAR(10) TITLE ‘客户号’ UNIQUE NOT NULL
)PRIMARY INDEX (HOST_CUST_ID)
;
–创建临时表
CREATE MULTISET VOLATILE TABLE VT_CUST (
STAT_DT DATE
,HOST_CUST_ID VARCHAR(10)
)ON COMMIT PRESERVE ROWS
;
–根据SQL结果集建表
CREATE MULTISET VOLATILE TABLE VT_CUST AS (
SELECT HOST_CUST_ID FROM TEST.CUST SAMPLE 1111
)WITH DATA ON COMMIT PRESERVE ROWS
;
–根据已有表创建新表
CREATE MULTISET VOLATILE TABLE VT_CUST2 AS VT_CUST1 WITH NO DATA ON COMMIT PRESERVE ROWS; --不含VT_CUST1的数据
CREATE MULTISET VOLATILE TABLE VT_CUST2 AS VT_CUST1 WITH DATA ON COMMIT PRESERVE ROWS; --含VT_CUST1的数据
–根据结果集创建表
CREATE MULTISET VOLATILE TABLE VT_CUST2 AS(
SELECT * FROM TEST.CUST
)WITH DATA
ON COMMIT PRESERVE ROWS; --不含VT_CUST1的数据
–SQL语句中的临时表 (多次引用同一段逻辑时可用)
WITH VT1 AS (SELECT * FROM TEST.CUST)
,VT2 AS (SELECT * FROM TEST.CUST )
SELECT * FROM VT1
;
数据操作
–插入数据
INSERT INTO VT_CUST (HOST_CUST_ID) VALUES (‘12345678’); --指定插入数据
INSERT INTO VT_CUST VALUES (DATE ‘2019-01-01’,‘12345678’); --全字段插入数据
INSERT INT VT_CUST SELECT * FROM VTABLE ;–插入结果集
–删除数据
DELETE FROM VT_CUST WHERE HOST_CUST_ID =‘12345678’ ;
–更改数据
UPDATE VT_CUST SET HOST_CUST_ID=‘99999999’ WHERE STAT_DT IS NULL ;
表结构操作
–增加列 (临时表不能更改表结构)
ALTER TABLE VT_CUST ADD BAL DECIMAL(18,2) ,BAL_SUM DECIMAL(20,2) ;
–删除列
ALTER TABLE VT_CUST DROP BAL ;
–修改列
ALTER TABLE VT_CUST ADD HOST_CUST_ID FORMAT VARCHAR(20) ;
–展示表定义
SHOW TABLE VT_CUST;