151
阿里云
DDL语法__用户指南_云数据库 PetaData-阿里云
- DDL必须通过PetaData的Web管理控制台来执行,客户端暂时不可直接执行DDL语句(后续开放支持);
- DDL当前仅支持表和索引方面的操作;
- DDL执行期间,事务隔离级别为读未提交;
创建表
i. 标准语法如下:
CREATE TABLE [ IF NOT EXISTS ] table_name
( column_name data_type [column_attributes] [ column_constraints ] | table_constraints
[, ... ] )
[table_attribute]
其中:
table_name表名不得超过64字节,只能使用英文字母、阿拉伯数字、下划线’_’;
column_name列名不得超过64字节,只能使用英文字母、阿拉伯数字、下划线’_’;
最多支持512个列;
一行数据的长度不得超过16M;
表名和列名不得选用如下关键字,如果必须使用,则在使用时必须为表名和列名加入反引号(`)(注意不是单引号'):
truncate | begin | commit | rollback | use | start | transaction | names | autocommit | committed | isolation | connection | level | query | repeatable | serializable | uncommitted
例如:使用时:select `begin` from `commit`
ii. data_type列类型目前支持:
SMALLINT (INT2)
INTEGER (INT4)
BIGINT (INT8)
DECIMAL (NUMERIC)
FLOAT (FLOAT4)
DOUBLE (FLOAT8)
BOOLEAN (BOOL)
CHAR (INT4)
VARCHAR (INT4)
DATE
TIME
DATETIME
TIMESTAMP
TEXT
iii. 列属性如下:
[ DEFAULT default_expr ]
[ COMMENT column_comment ]
其中:列注释column_comment只能使用英文字符;
iv. 列约束如下:
[ { NOT NULL | NULL } ]
[ { [ UNIQUE | PRIMARY ] KEY } ]
[ AUTO_INCREMENT ]
其中:AUTO_INCREMENT自增字段指明该列为唯一值,该列必须为BIGINT类型,分布式数据库会自动为该列生成一个64位的唯一值,且该字段将自动成为主键,对于表的字段,若用户插入该字段,那么数据库将存储用户提供的值,用户需要自行保证该值的唯一性,否则可能在多个分区上出现相同的值,引发冲突;若用户插入NULL,或者不插入该字段,那么数据库将为用户生成该字段的值,数据库将自行保证该值的唯一性;
v. 表约束如下:
[ KEY ( column_name [, ... ] ) ]
[ UNIQUE KEY ( column_name [, ... ] ) ]
[ PRIMARY KEY ( column_name [, ... ] ) ]
其中:用户的表必须指定一个主键,否则在迁入数据时将出现重复;
vi. 表属性如下:
[ ENGINE = { InnoDB | TokuDB } ]
[ DEFAULT CHARSET = table_charset ]
[ COMMENT table_comment ]
其中:
当前用户的表支持InnoDB和TokuDB存储引擎,但是不同的产品形态下,默认的存储引擎是不同的,因此建议用户不填写该属性;
表注释table_comment只能使用英文字符;
vii. 字符集table_charset限制:
当前支持常用的字符集,包括utf8、gbk等,但不支持utf8mb4等超宽字符集;
用户必须保证在任何场合下都试用相同的字符集,否则会产生混乱的结果;
不支持用户自定义的字符集;
不管用户的数据表是何种字符集,对于order by、group by等从句,以及count、sum、min、max等函数,其比较和聚合依赖于utf8字符集;
viii. 建表有二种分区方式,分别为:
分区表:按照用户指定的分区键,将数据按照某种算法(当前仅支持哈希算法)分散到各个分区中,对于大规模的数据表适用;
( 当前仅支持一个列作为表的分区键,且该列的数据类型只能为整数(SMALLINT,INTEGER,BIGINT)或字符型(CHAR,VARCHAR)中的一种;暂不支持多列组成的联合分区键。)
- 广播表:不进行任何的数据划分,但是将更新递送到所有分区上,要求用户的所有更新语句不得有“库名.表名”的形式,对于小规模且必须存在join的表使用;PetaData目前暂未开放创建广播表
ix. 不会对表进行如下的约束检查:
- 唯一性,允许用户建立主键和唯一性索引,但是仅作提示作用,仅对自增主键保证唯一性;
- 外键;
- 检查和排外约束;
x. 系统库和系统表:
目前并未开放任何系统库和系统表,包括information_schema等;
修改表定义
标准语法如下:
ALTER TABLE table_name [alter_specification [, alter_specification] ...]
alter_specification:
| ADD [COLUMN] column_name column_definition[, column_name column_definition ...]
| CHANGE [COLUMN] old_column_name new_column_name column_definition
| MODIFY [COLUMN] column_name column_definition
| DROP [COLUMN] column_name
column_definition:
data_type [column_attributes] [ column_constraints ]
其中:
ADD [COLUMN]用于为表增加新列;
CHANGE [COLUMN]用于修改表的旧列,允许修改列名;
MODIFY [COLUMN]用于修改表的旧列,不允许修改列名;
DROP [COLUMN]用于删除表的列;
支持增加和修改到的列定义,与CREATE TABLE语法相同;
支持在一个表定义变更语句中,指明对多个列的变更;
创建/删除/修改索引
标准语法如下:
CREATE [UNIQUE] INDEX index_name ON table_name (index_col_name,...)
DROP INDEX index_name ON table_name
ALTER TABLE table_name
| ADD {INDEX|KEY} [index_name] (index_column_name,...)
| ADD UNIQUE [INDEX|KEY] [index_name] (index_column_name,...)
| DROP {INDEX|KEY} index_name
index_column_name:
column_name [(length)] [ASC | DESC]
其中:
CREATE INDEX语法与ALTER TABLE table_name ADD INDEX语法都能为表新增索引;
DROP INDEX语法与ALTER TABLE DROP INDEX语法都能为表删除索引;
索引可以对其引用的列指明按照升序或降序排序;
重命名表
标准语法如下:
RENAME TABLE table_name TO new_table_name
其中:
目前不支持通过 ALTER TABLE table_name RENAME [TO|AS] new_tbl_name 语法变更表名;
表名变更过程中不得访问该表;
其他说明
不支持add column before|after XXXXXX;
不支持truncate table XXXXXX (truncate必须通过管理控制台操作执行);
不支持的高级特性:
不支持表空间;
不支持MySQL中关于分区表的语法;
不支持存储过程和用户自定义函数;
不支持触发器;
不支持event
不支持游标;
最后更新:2016-11-23 16:03:54
上一篇:
数据访问__快速入门_云数据库 PetaData-阿里云
下一篇:
DML语法__用户指南_云数据库 PetaData-阿里云
基本概念和术语__概述_用户指南_容器服务-阿里云
基于 Jenkins 的持续交付__DevOps_用户指南_容器服务-阿里云
容器管理__用户指南_企业级分布式应用服务 EDAS-阿里云
安装与配置__Console参考手册_数据集成-阿里云
概要__EDAS 中的 Dubbo 开发_开发者指南_企业级分布式应用服务 EDAS-阿里云
更多__解决方案_平台介绍_数加平台介绍-阿里云
阿里云数据安全白皮书____信任中心-阿里云
使用管理终端登录__用户指南_云服务器 ECS-阿里云
限流管理__限流降级_用户指南_企业级分布式应用服务 EDAS-阿里云
位运算符__运算符_SQL语法参考_云数据库 OceanBase-阿里云
相关内容
常见错误说明__附录_大数据计算服务-阿里云
发送短信接口__API使用手册_短信服务-阿里云
接口文档__Android_安全组件教程_移动安全-阿里云
运营商错误码(联通)__常见问题_短信服务-阿里云
设置短信模板__使用手册_短信服务-阿里云
OSS 权限问题及排查__常见错误及排除_最佳实践_对象存储 OSS-阿里云
消息通知__操作指南_批量计算-阿里云
设备端快速接入(MQTT)__快速开始_阿里云物联网套件-阿里云
查询API调用流量数据__API管理相关接口_API_API 网关-阿里云
使用STS访问__JavaScript-SDK_SDK 参考_对象存储 OSS-阿里云