すべてのプロダクト
Search
ドキュメントセンター

Tablestore:SQL クエリ

最終更新日:Jun 09, 2026

Tablestore は、ワイドテーブルと時系列データ向けに MySQL 互換の SQL インターフェイスを提供します。DDL、DQL、DML 文を実行できるほか、検索インデックスを使用して全文検索、ベクトル検索、配列クエリ、ネストクエリ、JSON クエリも実行できます。

仕組み

Tablestore は、NoSQL ストレージ上で SQL エンジンを実行します。既存のデータテーブルに対して CREATE TABLE でマッピングテーブルを作成し、SQL でデータにアクセスします。SQL エンジンは、クエリを高速化するために最適なインデックスを自動的に選択します。

説明

従来のリレーショナルデータベースとは異なり、Tablestore の CREATE TABLE は物理テーブルを作成しません。代わりに、既存のデータテーブルまたは検索インデックスに対する SQL アクセスマッピングを作成します。DROP MAPPING TABLE はマッピングのみを削除し、基になるデータには影響しません。

SQL エンジンの概念と Tablestore の概念は、次のように対応します。

データベースの概念

Tablestoreの概念

説明

データベース

インスタンス

データを整理、保存、管理するリポジトリ。インスタンスには 1 つ以上のテーブルを含めることができます。

テーブル

マッピングテーブル

既存のデータテーブルに対する SQL アクセスマッピング。CREATE TABLE で作成されます。行と列で構成されます。

インデックス

セカンダリインデックス、検索インデックス

クエリを高速化するために作成されるストレージ構造。SQL エンジンは最適なインデックスを自動的に選択します。

説明

SQL クエリは、次のリージョンで利用できます:China (Hangzhou)、China (Shanghai)、China (Beijing)、China (Zhangjiakou)、China (Ulanqab)、China (Shenzhen)、China (Chengdu)、China (Hong Kong)、Japan (Tokyo)、Singapore、Malaysia (Kuala Lumpur)、Indonesia (Jakarta)、Germany (Frankfurt)、UK (London)、US (Silicon Valley)、US (Virginia)、SAU (Riyadh)

アクセス方法

SQL クエリは、次の方法で実行します。

方法

ユースケース

リファレンス

コンソール

コードを使用しない小規模なデータクエリと検証。

Tablestore コンソールで SQL クエリを使用する

CLI

開発、デバッグ、および自動化スクリプト。

Tablestore CLI で SQL クエリを使用する

JDBC

標準の JDBC インターフェイスを介して Tablestore にアクセスする Java アプリケーション。

直接 JDBC 接続で SQL クエリを使用する

Hibernate

既存の Hibernate プロジェクトのための Java ORM 統合。

Hibernate を使用して SQL でデータをクエリする

MyBatis

既存の MyBatis プロジェクトのための Java 永続化フレームワーク統合。

MyBatis を使用して SQL でデータをクエリする

Go ドライバー

標準の database/sql インターフェイスを介して Tablestore にアクセスする Go アプリケーション。

Go ドライバーで SQL クエリを使用する

SDK

アプリケーション内でのプログラムによる SQL 実行。

Java SDK で SQL クエリを使用する

Python SDK で SQL クエリを使用する

Go SDK で SQL クエリを使用する

Node.js SDK で SQL クエリを使用する

PHP SDK で SQL クエリを使用する

.NET SDK で SQL クエリを使用する

サポートされている SQL 文

SQL エンジンは次の文をサポートしています。

カテゴリ

説明

DDL操作

CREATE TABLE

データテーブルまたは検索インデックスの SQL マッピングを作成します。

ALTER TABLE

属性列を追加または削除します。

DROP MAPPING TABLE

マッピングを削除します。基になるデータには影響しません。

SHOW TABLES

現在のインスタンス内のすべてのマッピングテーブルを一覧表示します。

SHOW INDEX

インデックス情報を表示します。

DESCRIBE

テーブルスキーマを表示します。

DROP TABLE

データテーブルを削除します。サポートされていません

DQL操作

SELECT

フィルタリング、集計関数 (MIN、MAX、SUM、AVG、COUNT)、GROUP BY、ORDER BY、LIMIT を使用してデータをクエリします。

SELECT JOIN

テーブル間でデータを結合します。INNER、LEFT、RIGHT、CROSS JOIN をサポートします。

DML操作

INSERT / UPDATE / DELETE

データの書き込み、更新、削除を行います。

検索インデックス操作

全文検索 / 配列 / ネスト / ベクトル / JSON

検索インデックスを使用して、全文検索、配列クエリ、ネストクエリ、ベクトル検索、JSON クエリを実行します。

その他

CREATE INDEX

インデックスを作成します。サポートされていません

その他の機能:

  • 文字セットは UTF-8 で、バイナリ照合順序を使用します。

  • 算術演算子、比較演算子、論理演算子、ビット演算子がサポートされています (SQL 演算子)。

  • SQL のデータ型は Tablestore のデータ型に対応します (データ型マッピング)。

  • インデックス選択の最適化と計算プッシュダウンがサポートされています (クエリ最適化)。

  • 予約語とキーワードの完全なリストについては、「SQL の予約語とキーワード」をご参照ください。

SQL 演算子

Tablestore SQL は 4 つのカテゴリの演算子をサポートしています。

算術演算子

算術演算子は SELECT または WHERE 句で数値計算に使用します。

演算子

名前

説明

A+B

加算

A+B の結果を返します。

A-B

減算

A-B の結果を返します。

A*B

乗算

A*B の結果を返します。

A/B または A DIV B

除算

A/B の結果を返します。

A%B または A MOD B

剰余

A/B の余りを返します。

比較演算子

比較演算子は条件を評価し、真 (TRUE) の場合は 1 を、偽 (FALSE) の場合は 0 を返します。WHERE 句で使用します。

演算子

名前

説明

A:=B

代入

B の値を A に代入します。

A=B

等しい

A が B と等しい場合は 1 を、それ以外の場合は 0 を返します。

A!=B または A<>B

等しくない

A が B と等しくない場合は 1 を、それ以外の場合は 0 を返します。

A>B

より大きい

A が B より大きい場合は 1 を、それ以外の場合は 0 を返します。

A<B

より小さい

A が B より小さい場合は 1 を、それ以外の場合は 0 を返します。

A>=B

以上

A が B 以上の場合は 1 を、それ以外の場合は 0 を返します。

A<=B

以下

A が B 以下の場合は 1 を、それ以外の場合は 0 を返します。

IN (A,B...)

セット内

列の値がセット内のいずれかの値と一致する場合は 1 を、それ以外の場合は 0 を返します。

BETWEEN A AND B

範囲内

値が >= A かつ <= B の場合は 1 を、それ以外の場合は 0 を返します。

NOT BETWEEN A AND B

範囲外

値が > B または < A の場合は 1 を、それ以外の場合は 0 を返します。

A LIKE B

パターンマッチ

文字列を照合します。_ は 1 文字に、% は任意の数の文字に一致します。

A NOT LIKE B

パターン不一致

一致しない文字列を返します。_ は 1 文字に、% は任意の数の文字に一致します。

論理演算子

論理演算子は式を評価し、真 (TRUE) の場合は 1 を、偽 (FALSE) の場合は 0 を返します。WHERE 句で複合条件を構築するために使用します。

演算子

名前

説明

A AND B または A&&B

論理積 (AND)

A と B の両方が TRUE の場合は 1 を、それ以外の場合は 0 を返します。

A OR B

論理和 (OR)

A または B の少なくとも一方が TRUE の場合は 1 を、それ以外の場合は 0 を返します。

A XOR B

排他的論理和 (XOR)

A と B が異なる場合は 1 を、それ以外の場合は 0 を返します。

NOT A または !A

論理否定 (NOT)

A が FALSE の場合は 1 を、それ以外の場合は 0 を返します。

ビット演算子

ビット演算子は、2 進数で計算を実行します。計算の際、オペランドは 2 進数に変換され、結果は 10 進数で返されます。

演算子

名前

説明

A&B

ビット単位のAND

A と B のビット単位の AND を返します。

A|B

ビット単位のOR

A と B のビット単位の OR を返します。

A^B

ビット単位のXOR

A と B のビット単位の XOR を返します。

~A

ビット単位のNOT

A のビット単位の補数を返します。

データ型マッピング

SQL の列は、同じ名前のテーブルの列に対応します。データ型は一致している必要があります。

重要
  • VARBINARY または VARCHAR を使用する主キー列には、最大長を 1024 に設定します。

  • SQL の BIGINT と Tablestore の Integer は、どちらも 64 ビット整数型です。

  • 主キー列のデータ型としてサポートされているのは、BIGINT、VARBINARY、VARCHAR のみです。

SQL データ型

データテーブルの型

検索インデックスの型

BIGINT

Integer

Integer

VARBINARY (主キー) / MEDIUMBLOB (属性列)

Binary

Binary

VARCHAR (主キー) / MEDIUMTEXT (属性列)

String

Keyword

Text

DOUBLE

Double

Double

BOOL

Boolean

Boolean

制限

  • SQL クエリはワイドカラムモデル時系列モデルに適用されます。

  • トランザクションはサポートされていません。

  • SQL キーワードは予約語であり、大文字と小文字を区別しません。キーワードをテーブル名または列名として使用するには、`` でエスケープする必要があります。完全なリストについては、「SQL の予約語とキーワード」をご参照ください。

  • SQL エンジンは列名の大文字と小文字を区別しません。SELECT Aa FROM tSELECT aa FROM t と同等です。基になる Tablestore テーブルでは大文字と小文字が区別されるため、SQL エンジンは照合のためにすべての列名を小文字に変換します。元のテーブルには、大文字と小文字の違いしかない列を含めることはできません。

その他の制限については、「SQL クエリの制限」をご参照ください。

課金

SQL クエリに追加料金は発生しません。クエリ実行中のテーブルスキャン、インデックスクエリ、およびデータの読み取り/書き込み操作は、標準の価格設定に従って課金されます。詳細については、「SQL クエリの課金項目」をご参照ください。