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-阿裏雲