SQL Reference1.docx

上传人:b****6 文档编号:8556981 上传时间:2023-01-31 格式:DOCX 页数:15 大小:20.75KB
下载 相关 举报
SQL Reference1.docx_第1页
第1页 / 共15页
SQL Reference1.docx_第2页
第2页 / 共15页
SQL Reference1.docx_第3页
第3页 / 共15页
SQL Reference1.docx_第4页
第4页 / 共15页
SQL Reference1.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

SQL Reference1.docx

《SQL Reference1.docx》由会员分享,可在线阅读,更多相关《SQL Reference1.docx(15页珍藏版)》请在冰豆网上搜索。

SQL Reference1.docx

SQLReference1

TableManagement

∙Schema

_SYS_开头是系统自动创建的schema,客户无法自己创建

_SYS_BI:

系统控制信息

_SYS_BIC:

系统为客户化的schema

_SYS_REPO:

系统为报表需求,deploy创建的schema

_SYS_STATISTICS:

系统创建的存放统计信息的Schema

∙TableCreate

CREATE [] TABLE 

        [|||]

        [WITH PARAMETERS(parameter_key_values),...]

 

Table_type:

column,row,historycolumn,globaltemporary,localtemporary

∙column,row:

针对大数据量的table,但是一次查询仅仅查询部分几个fields,应该使用Column-based,如果查询所有字段,但只有部分记录情况下,建议使用Row-basedTable

∙HistoryColumn:

logging_option:

:

=LOGGING|NOLOGGING[RETENTIONretention_period],LOGGING是默认设置

auto_merge_option:

:

=AUTOMERGE|NOAUTOMERGE,AUTOMERGE是默认设置

partition_clause:

:

=

PARTITIONBY[,|,]

PARTITIONBY

PARTITIONBY[,]

location_clause:

:

=AT[LOCATION]"

port>"|("

port>",..)可以将table创建到某一个指定的server,对于partition表,可以将不同的分区分布到不同的server上,如果不指定location,那么表会自动assign到某一个server上,location功能只在distributed环境中才能使用

 

∙创建ColumnTable

/*CreateColumnTable*/

create column table _sys_bic.col_test

col1 varchar(10),

col2 varchar(20),

col3 varchar(30),

primary key(col1)

);

 

∙创建RowTable

/*CreateRowTable*/

create row table _sys_bic.col_test

col1 varchar(10),

col2 varchar(20),

col3 varchar(30),

primary key(col1)

);

 

 

∙创建HistoryColumn表

/*Historycolumn*/

CREATEHISTORYCOLUMNTABLETST1

COL1VARCHAR(10),

COL2VARCHAR(20),

PRIMARYKEY(COL1)

);

 

∙ 创建GlobalTemporary表

/*GLOBALTEMPORARY*/

CREATEGLOBALTEMPORARYTABLETST1

COL1VARCHAR(10),

COL2VARCHAR(20),

PRIMARYKEY(COL1)

);

 

∙创建LocalTemporary表

∙LocalTemporary表命名必须以#开头

/*LocalTEMPORARY*/

CREATELOCALTEMPORARYTABLE#TST1

COL1VARCHAR(10),

COL2VARCHAR(20),

PRIMARYKEY(COL1)

);

 

∙创建带约束的Table

column_constraint:

:

=NULL|NOTNULL|UNIQUE[BTREE|CPBTREE]|PRIMARYKEY[BTREE|CPBTREE]

 

createcolumntableemp

empnovarchar(10),

empnamevarchar(10),

empidvarchar(20),

gendervarchar(10),

ageintnotnull,

 

constraintempid_unionUNIQUE(empid),

constraintgender_domaincheckgenderin('male','female'),

constraintage_domaincheck(age>0andage<150),

constraintpk_empprimarykey(empno)

 

∙基于Query创建Table

createcolumntableemp_backup

as

selectempno,empname,empid,age,gender

fromemp

 

 

∙创建automerge表

如果是AUTOMERGE表,那么是由memwacher来触发执行merge的

createcolumntabledept

deptnovarchar(10),

deptnamevarchar(20),

primarykey(deptno)

automerge;

 

createcolumntabledept

deptnovarchar(10),

deptnamevarchar(20),

primarykey(deptno)

noautomerge;

 

 

∙创建Partition分区表

∙HashPartition

/*HashPartition*/

createcolumntablemytab

c1int,

c2int,

c3int,

primarykey(c1,c2)

partitionbyhash(c1,c2)

partitions4;

 

/*HashPartition*/

createcolumntablemytab

c1int,

c2int,

c3int,

primarykey(c1,c2)

partitionbyhash(c1,c2)

partitionsget_num_servers();

 

 

 

∙AlterTable

ALTERTABLE

{||

||||

|||

||||

|||}

[WITHPARAMETERS(parameter_key_value,...)]

 

add_column_clause:

:

=ADD(column_definitioncolumn_constraint,...)

drop_column_clause:

:

=DROP(column_name,...)

alter_column_clause:

:

=ALTER(column_definition,...)

add_primary_key_clause:

:

=ADD[CONSTRAINTconstraint_name]PRIMARYKEY(column_name,...)

drop_primary_key_clause:

:

=DROPPRIMARYKEY

preload_clause:

:

=PRELOADALL|PRELOAD(column_name)|PRELOADNONE

add_statistics_clause:

:

=ADDSTATISTICSFORQUERYOPTIMIZER[(column_name,…)]

update_statistics_clause:

:

=UPDATESTATISTICSFORQUERYOPTIMIZER[(column_name,…)]

drop_statistics_clause:

:

=DROPSTATISTICSFORQUERYOPTIMIZER[(column_name,…)]

table_conversion_clause:

:

=[ALTERTYPE][ROWTHREADSint_const]|[COLUMNTHREADSint_constrBATCHbatch_size]

move_clause:

:

=MOVETOLOCATION

port>

add_partition_clause:

:

=ADDPARTITIONadd_partition_clause

move_partition_clause:

:

=MOVEPARTITIONTO

port>

drop_partition_clause:

:

=DROPPARTITIONdrop_partition_clause

partition_by_clause:

:

=PARTITIONBYpartition_clause

merge_partition_by_clause:

:

=MERGEPARTITIONS

create_history_clause:

:

=CREATEHISTORY

drop_history_clause:

:

=DROPHISTORY

 

∙增加column

altertableemp

add(deptnovarchar(10),manager_numvarchar(10));

 

∙删除column

altertableemp

drop(deptno,managernum);

 

∙更改column类型

altertableemp

alter(deptnovarchar(20),managernumvarchar(20));

 

primarykey:

唯一标识记录信息的约束

∙增加constraint

altertableemp

add(constraintpk_empprimarykey(empno),

constraintage_domaincheck(age>0andage<150)

);

 

∙删除constraint

altertableemp

dropprimarykey,

dropconstraintage_domain;

 

∙增加statistics

altertableemp

addstatisticsforqueryoptimizer(age);

 

∙更新statistics

altertableemp

updatestatisticsforqueryoptimizer(age);

 

∙删除statistics

altertableemp

dropstatisticsforqueryoptimizer(age);

 

∙更改表类型

∙thread所指定的是在做tableconvert时候的进程数,此进程数的指定是根据可用的CPUCores来指定.默认情况不指定threads的情况,会从indexserver.ini文件中读取TABLE_CONVERSION_PARALLELISM参数,此参数就是用于标记可用的CPUCores数量

 

altertableempaltertyperowthreads10;

altertableempaltertypecolumnthreads10;

 

∙更改Location

∙在Distributed系统环境下,将某一张表从一个系统移到另一个系统去

move_clause:

:

=MOVETOLOCATION

port>

altertabletest1movetolocationserver2:

3015

 

∙增加Partition

 

 

 

 

 

delete和drop,truncate

drop:

删除表(表结构,表数据,写日志)

delete:

删除表数据,写日志(先写日志,后做DB操作)(删除表数据:

有选择性的删除)

truncate:

清空表数据,不写日志(速度快,不能简单恢复)---oracle:

闪回技术

∙DeleteTable

DELETE[HISTORY]FROM[WHERE];

∙如果指定HISTORY:

仅仅删除HistoryTable的History-part

∙如果要彻底删除History,需要执行一下SQL

ALTERSYSTEMRECLAIMVERSIONSPACE;

MERGEHISTORYDELTAof;

 

∙Export

/****导出数据****/

export"TST"."*"ASCSVINTO'/opt/exp';

export"TST"."*"ASBINARYINTO'/opt/exp2';

 

 

/****只导出结构****/

EXPORTTST.TESTASBINARYINTO'/opt/exp2'WITHCATALOGONLY;

 

∙Import

IMPORTTST.TESTASBINARYFROM'/opt/exp';

IMPORTALLASCSVFROM'/opt/exp/Training_data_export/EPM_MODEL/Tables/CSV';

 

 

∙UpdateTable

UPDATE[[AS]name][WHERE][WITHPARAMETERS(,..)]

 

updatetest1setsalary=salary+1000;

 

HANA中Index有两种意义:

1.DBindex:

索引

2.数据存储

HANAServer

1.NameServer:

IP,Host,数据的Mapping关系

2.IndexServer:

实际存储数据的(Memory)

3.statisticsServer:

针对本server的一些统计信息

MergeDeltaIndex

update"SAPBHD"."/BIC/AHR_SFS0100"mergedeltaindex;

 

 

∙InsertTable

insertintotest1values('a1','a2','a3');

 

insertintotest2selectc1,c2,c3fromtest1wherec1='a1';

 

 

∙Load

将columnTable装载到Memory中

LOAD{DELTA|ALL|(column_name,)}

∙DELTA:

仅仅把Delta部分load到memory

∙ALL:

把table所有数据load到memory

∙Column:

指定column数据load到memory

 

loadtest2all;

loadtest3delta;

loadtest4c1,c2,c3;

 

∙Unload

把ColumnTable从Memory中卸载出来,下次如果使用此Table系统会自动装载,但装载的过程可能会比较慢

UNLOAD"SYSTEM"."EMP";

 

 

 

∙DropTable

DROPTABLE[]

drop_option:

:

=CASCADE|RESTRICT

Default=RESTRICT

如果指定CASCADE那么相关的object也会被删除:

VIEW,PROCEDURE

 级联删除

 TABLE-A---VIEW----分析model

∙TruncateTable

TRUNCATETABLE

truncate速度很快,不写log,所以速度快,但不能rollback

对history表也可以用truncate,但是会删除全部信息(main,delta,historymainandhistorydelta)

 

∙MergeDelta

MERGE[HISTORY]DELTAOF[PARTint_const][WITHPARAMETERS(,)]

 

PART:

仅仅mergedelta中某一个partition.

MERGEDELTAOFA;

MERGEDELTAOFAPART1;

MERGEHISTORYDELTAOFA;

MERGEHISTORYDELTAOFAPART1;

 

 

∙RenameColumn

RENAMECOLUMN.old_column_nameTOnew_column_name

 

 

∙RenameTable

RENAMETABLETOnew_table_name

 

∙UpsertTable/ReplaceTable

插入或更新Table

upsert在HANA中是比较增强的,是根据key来做,但能够修改key的值,所以修改时候,需要注意主键冲突

 

upserttest2values(9,9)wherec1=5;

UPSERTtest2SELECTC1+1,C2FROMtest2;

 

 

ExplainPlan

 

EXPLAINPLAN[SETSTATEMENT_NAME=]FORSELECT;

select*fromsys.explain_plan_table;

 

explainplanSETSTATEMENT_NAME='aaa'forselect*from"SYSTEM"."EMP";

 

如果statement_name不设置的话,在explain_plan_table中statement_name会设置为NULL

 

EXPLAINPLAN是用于评估SQL执行计划的,执行EXPLAINPLAN之后,从EXPLAIN_PLAN_TABLE这个view中可以查询到相关的执行计划信息

explain_plan_table此View是以SYS.P_QUERYPLANS此Table为基础的

 

详细关于ExplainPlan参考SQLReferenceManual89页

 

 

 UserManagement

 

∙CreateUser

∙需要有UserAmin权限

∙创建

createuseruser_namepasswordtest1234;

 

 

 

 

∙DropUser

DROPUSERuser_name[];

drop_option:

:

=CASCADE|RESTRICT

∙删除User

dropuseruser_name;

∙默认情况下是RESTRICT,即只有此User下的object都删除了才会删除此Object,如果是使用CASCADE,所有此User下的Object都会自动被删除

 

∙CreateRole

∙默认创建的user包含有publicrole

∙用户有RoleAmin权限才能create,droprole

∙SAP系统role包括:

modeling,monitoring,public,content_admin

createrolerole_name;

 

∙DropRole

∙用户有RoleAdmin权限才能droprole

droprolerole_name;

 

∙CreateSchema

CREATESCHEMAschema_name[OWNEDBYname]

createschemaschema_nameownedbyuser_name;

 

∙DropSchema

DROPSCHEMAschema_name[]

drop_option:

:

=CASCADE|RESTRICT

DROPSCHEMAschema_name;

 

∙Grant

∙语法

GRANT,...TO[WITHADMINOPTION]

GRANT

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 自然景观

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1