元ドキュメント: DML 構文の互換性
DML 構文の互換性
概要
TDSQL Boundless の MySQL 互換モードでは、主要な DML(Data Manipulation Language)構文をサポートしています。本ドキュメントでは、SELECT、INSERT、UPDATE、DELETE 等の DML 構文の互換性について説明します。
SELECT
サポートされる構文
sql
SELECT [DISTINCT] column_list
FROM table_references
[WHERE condition]
[GROUP BY column_list]
[HAVING condition]
[ORDER BY column_list]
[LIMIT [offset,] row_count];JOIN のサポート状況
| JOIN タイプ | 対応状況 |
|---|---|
| INNER JOIN | 対応済み |
| LEFT JOIN | 対応済み |
| RIGHT JOIN | 対応済み |
| CROSS JOIN | 対応済み |
| NATURAL JOIN | 対応済み |
サブクエリのサポート状況
- スカラーサブクエリ — 対応済み
- 行サブクエリ — 対応済み
- テーブルサブクエリ(FROM 句内) — 対応済み
- EXISTS / NOT EXISTS — 対応済み
- IN / NOT IN — 対応済み
- 相関サブクエリ — 対応済み
集約関数
以下の集約関数をサポートしています。
COUNT(),SUM(),AVG(),MAX(),MIN()GROUP_CONCAT()COUNT(DISTINCT ...)
ウィンドウ関数
以下のウィンドウ関数をサポートしています。
ROW_NUMBER(),RANK(),DENSE_RANK()LEAD(),LAG()FIRST_VALUE(),LAST_VALUE()
INSERT
サポートされる構文
sql
-- 単一行の挿入
INSERT INTO table_name (column_list) VALUES (value_list);
-- 複数行の挿入
INSERT INTO table_name (column_list) VALUES
(value_list_1),
(value_list_2),
...;
-- INSERT ... ON DUPLICATE KEY UPDATE
INSERT INTO table_name (column_list) VALUES (value_list)
ON DUPLICATE KEY UPDATE column = value;制限事項
INSERT ... SELECTはサポートされていますが、大規模なデータ挿入の場合はバッチ処理を推奨します。INSERT IGNOREはサポートされています。
UPDATE
サポートされる構文
sql
UPDATE table_name
SET column1 = value1, column2 = value2, ...
[WHERE condition]
[ORDER BY column_list]
[LIMIT row_count];制限事項
- 複数テーブルの同時 UPDATE はサポートされていません。
- 主キーカラムの更新には制限がある場合があります。
DELETE
サポートされる構文
sql
DELETE FROM table_name
[WHERE condition]
[ORDER BY column_list]
[LIMIT row_count];制限事項
- 複数テーブルの同時 DELETE はサポートされていません。
TRUNCATE TABLEは DDL として別途サポートされています。
REPLACE
sql
REPLACE INTO table_name (column_list) VALUES (value_list);REPLACE 構文をサポートしています。主キーまたはユニークキーに基づき、既存行の置換または新規行の挿入を行います。