HANA数据库—创建数据库、创建表、复制表

文章介绍了如何在HANA数据库中创建SCHEMA,包括创建和删除的SQL语法,并详细阐述了行存储表和列存储表的适用场景及创建方法。此外,还讲解了复制表格的两种方式:创建LIKE表和基于查询创建新表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、创建SCHEMA

--创建schema:
--语法:CREATE SCHEMA <schema_name> [OWNED BY <user_name>]
/*OWNED BY:指定schema的拥有者,如果省略。当前用户将是这个shema的拥有者*/
create schema my_schema;
create schema my_schema OWNED BY system.
--删除schema:
--语法:DROP SCHEMA <schema_name> [<drop_option>]
drop_option: CASCADE | RESTRICT
/*默认的drop_option为:RESTRICT(限制约束)
RESTRICT:直接删除没有依赖的对象,如果对象有依赖关系,会抛出错误信息。
CASCADE:直接删除所有对象。*/
CREATE SCHEMA my_schema;
CREATE TABLE my_schema.t (a INT);
DROP SCHEMA my_schema CASCADE;
select * from tables  where schema_name='P1526659201'  --查询schema:P1526659201下的所有表

二、创建TABLE

HANA数据库可以存储ROW TABLE(行表)和COLUMN TABLE(列表),分别适用于不同的场景

行存储表适用于场景

  1. 一次处理一条记录的情况
  2. 应用需要访问完整记录或记录的大部分(即一条记录中的所有字段或大多数字段)
  3. 不需要压缩率
  4. 没有或很少的聚集、分组等复杂操作
  5. 表中的记录行数不是很多
SQL创建行存储表
CREATE TABLE accounts( 
	act_no CHAR(18), 
	act_name NVARCHAR(100),
	balance DECIMAL(15,2),
	PRIMARY KEY (act_no)
) ;
    

列存储表适用场景

  1. 通常只是在一个或少量列上执行计算操作
  2. 表在进行搜索时通常基于少量列上的值
  3. 表有很多列
  4. 表有很多行,并且通常进行的是列式操作(比如:聚集计算和where中字段值查找)
  5. 需要很高的压缩率
SQL创建列存储表
-- CHANDAO.ZT_BUGS definition

CREATE COLUMN TABLE "CHANDAO"."ZT_BUGS" (
	"ID" VARCHAR(10) NOT NULL ,
	"PROJECT" VARCHAR(10),
	"PRODUCT" VARCHAR(10),
	"INJECTION" VARCHAR(10),
	"IDENTITY" VARCHAR(10),
	"BRANCH" VARCHAR(10),
	"MODULE" VARCHAR(10),
	"EXCUTION" VARCHAR(10),
	"PLAN" VARCHAR(10),
	"STORY" VARCHAR(10),
	"STORY_VERSION" VARCHAR(10),
	"TASK" VARCHAR(10),
	"CASE_STR" VARCHAR(10),
	"CASE_VERSION" VARCHAR(10),
	"SYNC_DATE" VARCHAR(100),
PRIMARY KEY ("ID")) UNLOAD PRIORITY 5 AUTO MERGE;
  

三、复制TABLE

HANA除了直接建表外,也可以通过已存在的表创建新表,示例如下:

/*依据某个已经存在的表创建另外的新表。HANA SQL提供了两类方法*/
--方法一:创建的表与源表数据类型、约束完全相同。例如:
CREATE TABLE T_ACCOUNTS LIKE ACCOUNTS WITH NO DATA      
--方法二:创建的表字段类型和NULL/NOT NULL属性相同
CREATE TABLE T_ACCOUNTS1 AS (SELECT * FROM  ACCOUNTS) WITH DATA

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值