216
windows
DML語法__用戶指南_雲數據庫 PetaData-阿裏雲
SELECT語句
Select EXPR, [distinct] T1.COL1, [T2.COL1], {count|sum|min|max}( T1.COL1), count([distinct] T1.COL1)
from T1 [{join T2}1,n on T1.COL2 = T2.COL2]
[where expr]
group by [binary] COL1
order by [BINARY] COL1 [limit m [offset n]]
說明:
1. 不支持for update/into從句;
2. 對於distinct複合語句,目前僅支持distinct分區鍵或count(distinct分區鍵);
3. 聚集函數不支持avg;
4. 跨分區聚合函數目前僅支持count/sum/min/max函數,僅支持varchar/integer/datetime/timestamp/date/time類型;
5. 不支持子查詢;
6. 當前僅支持兩個分區表join在分區鍵上且join條件為等值,或者分區表join廣播表,不支持join在非分區字段上,也不支持join在分區字段非等值條件上;
7. 若列為timestamp類型,則不得設置精度;
8. where條件過濾以及跨分區group by/order by該列類型時,嚴格符合”YY-MM-DD HH:MM:SS”格式,否則將被視作字符串類型;
9. 對於group by/order by,當前支持整型、浮點型、日期時間型的比較,對於字符串的比較,當前僅能進行二進製大小比較,不支持使用各類字符集的比較;
10. group by/order by的列,必須出現在select從句中,如果是二進製比較,必須同時在select和group by/order by從句顯式寫明BINARY 列名,同時具備group by與order by從句時,二者的操作列必須完全相同;
11. 跨分區group by、order by目前僅支持varchar/integer/datetime/timestamp/date/time類型;
12. 不支持having從句;
13. 不支持order by random()/order by function()/order by #(列序號整數);
14. 不支持with從句;
INSERT語句
insert [ignore] [into] T1 (COL1, COL2) values (VALUE11, VALUE12) [, (VALUE21, VALUE22)] [on duplicate key update COL3 = VALUE3]
說明:
1. 允許insert多個值,且這些值可以在任意多個分區;
2. 且跨分區的insert會自動進入一個一階段提交分布式事務,不需要用戶自行開啟事務,但是在部分分區提交成功部分分區提交失敗時,可能導致回滾不一致;
3. 若用戶的表包含自增主鍵,則insert時該列的生成規則需遵守自增主鍵的使用方法;
4. insert時,列內容前不得附帶字符集等前綴描述,如insert into t (f) values (_utf8’a’)是不支持的,且對於分區鍵,用戶必須自行保證分區鍵的列定義,與用戶insert時填入的列值是匹配的,若用戶建表時列定義為整型,而insert時為浮點型或字符串型,則會因數據類型截斷,導致數據分布紊亂;
5. on duplicate update從句的特性類似於replace,無法保證非分區字段的唯一性,語法上雖未禁止,但不建議用戶使用,使用者請自行保證唯一性;
6. 不支持insert select從句;
UPDATE語句
update T1 set COL1 = VALUE1, COL2 = VALUE2 where EXPR
說明:
1. 允許跨分區update,且跨分區的update會自動進入一個分布式事務,不需要用戶自行開啟事務,但是在部分分區提交成功部分分區提交失敗時,可能導致回滾不一致;
2. 不允許更新主鍵和分區鍵,若需要變更主鍵和分區鍵,需要先delete後重新insert;
3. update時,列內容前不得附帶字符集等前綴描述,如update t set f = _utf8’b’是不支持的;
4. 不支持update limit從句;
DELETE語句
delete from T1 where EXPR
說明:
1. 允許跨分區delete,且跨分區的delete會自動進入一個分布式事務,不需要用戶自行開啟事務,但是在部分分區提交成功部分分區提交失敗時,可能導致回滾不一致;
2. 允許delete整張表;
3. 不支持delete limit從句;
REPLACE語句
replace [into] T1 (COL1, COL2) values (VALUE11, VALUE12) [, (VALUE21, VALUE22)]
說明:
1. 允許replace多個值,且這些值可以在任意多個分區,且跨分區的replace會自動進入一個分布式事務,不需要用戶自行開啟事務,但是在部分分區提交成功部分分區提交失敗時,可能導致回滾不一致;
2. replace時,列內容前不得附帶字符集等前綴描述,如replaceinto t (f) values (_utf8’a’)是不支持的,且對於分區鍵,用戶必須自行保證分區鍵的列定義,與用戶replace時填入的列值是匹配的,若用戶建表時列定義為整型,而replace時為浮點型或字符串型,則會因數據類型截斷,導致數據分布紊亂;
3. 不支持replace set從句;
EXPLAIN DML語句
1. 目前支持EXPLAIN語句,可以分析DML語句的執行計劃,影響的分區,結果合並的流程等;
2. 若DML語句的執行計劃涉及到了多個分區,則應盡量利用where條件將查詢和更新限製在單個分區,如where 分區鍵 = 分區鍵值;
表達式
對於select、update、delete附帶的where從句,任何列值與字符串字麵值的二元比較操作,如Col =|>|<|>=|<=|!=|<> Value等,都必須將列名放在左邊,比較值放在右邊;
函數
1. 不支持類型轉換類函數;
2. select rds_partition_insert_id()用於獲取一個全局唯一的id,可充當表主鍵等;
最後更新:2016-11-23 16:03:54
上一篇:
DDL語法__用戶指南_雲數據庫 PetaData-阿裏雲
下一篇:
事務說明__用戶指南_雲數據庫 PetaData-阿裏雲
構建容器鏡像__構建管理_用戶指南_容器服務-阿裏雲
VPC 用戶指南__快速入門_表格存儲-阿裏雲
查詢APP密鑰__應用管理相關接口_API_API 網關-阿裏雲
分區表輸入示例__示例程序_MapReduce_大數據計算服務-阿裏雲
【圖算法】金融風控實驗__案例_機器學習-阿裏雲
更新截圖配置__直播流操作接口_API 手冊_CDN-阿裏雲
查看RDS實例詳情__實例管理_API 參考_雲數據庫 RDS 版-阿裏雲
如何選擇合適的域名?__域名注冊_注冊續費_域名-阿裏雲
多應用共享公網帶寬__最佳實踐_用戶指南_專有網絡 VPC-阿裏雲
根據標簽篩選實例__標簽管理_用戶指南_雲數據庫 RDS 版-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲