All Products
Search
Document Center

Tablestore:Kueri SQL

Last Updated:Jun 09, 2026

Gunakan mode SQL di Tablestore CLI untuk mengelola pemetaan tabel serta mengkueri atau memodifikasi data.

Prasyarat

Pernyataan SQL yang didukung

Tablestore CLI mendukung pernyataan SQL berikut. Untuk sintaks lengkapnya, lihat Kueri SQL.

Kategori

Pernyataan SQL

Deskripsi

DDL

CREATE TABLE

Buat pemetaan untuk tabel data atau indeks pencarian.

ALTER TABLE

Tambahkan atau hapus kolom atribut dalam tabel pemetaan.

DROP MAPPING TABLE

Hapus pemetaan suatu tabel.

DESCRIBE

Lihat skema tabel pemetaan.

DQL

SELECT

Kueri data tabel. Anda dapat menggunakan kondisi WHERE, fungsi agregat, JOIN, dan LIMIT.

DBA

SHOW TABLES

Daftar semua tabel pemetaan dalam instans saat ini.

SHOW INDEX

Lihat detail indeks.

DML

INSERT

Tulis data. Hanya berlaku untuk tabel non-transaksi.

UPDATE

Perbarui data. Hanya berlaku untuk tabel non-transaksi. Tentukan satu baris dengan kondisi kesamaan pada semua kolom kunci primer.

DELETE

Hapus data. Hanya berlaku untuk tabel non-transaksi. Tentukan satu baris dengan kondisi kesamaan pada semua kolom kunci primer.

Masuk dan keluar dari mode SQL

Jalankan sql untuk masuk ke mode SQL dan exit; untuk kembali ke mode command.

sql

Setelah Anda memasuki mode SQL, CLI akan menampilkan:

Enter 'SQL' mode, input 'exit;' if you want to quit into 'COMMAND' mode.

Buat pemetaan

Tabel data memerlukan pemetaan agar dapat dikueri menggunakan SQL.

Catatan

Tabel timeseries dipetakan secara otomatis — lewati CREATE TABLE dan jalankan SHOW TABLES untuk memverifikasi.

CREATE TABLE mytable(
    `uid` VARCHAR(1024),
    `pid` BIGINT(20),
    `col1` BIGINT(20),
    `col2` MEDIUMTEXT,
    PRIMARY KEY(`uid`,`pid`)
);
Catatan
  • Gunakan VARCHAR hanya untuk kolom kunci primer. Gunakan MEDIUMTEXT untuk kolom atribut.

  • Untuk pemetaan antara tipe data SQL dan tipe data Tablestore, lihat Pemetaan tipe data dalam SQL.

Lihat tabel pemetaan

SHOW TABLES mencantumkan semua tabel pemetaan dalam instans saat ini.

SHOW TABLES;

Contoh output:

+----------------------+
| Tables_in_myinstance |
+----------------------+
| mytable              |
+----------------------+
| mytstable            |
+----------------------+
| mytstable::meta      |
+----------------------+

mytable adalah tabel pemetaan dari tabel data. mytstable adalah tabel data timeseries, dan mytstable::meta adalah tabel metadata timeseries. Kedua tabel timeseries beserta tabel metadatanya mendukung kueri SQL.

Lihat detail tabel pemetaan

Untuk memeriksa detail kolom, jalankan DESCRIBE pada tabel pemetaan.

DESCRIBE mytable;

Contoh output:

+-------+------------+------+-----+---------+-------+
| Field | Type       | Null | Key | Default | Extra |
+-------+------------+------+-----+---------+-------+
| uid   | varchar(1024) | NO | PRI | null    |       |
+-------+------------+------+-----+---------+-------+
| pid   | bigint(20) | NO   | PRI | null    |       |
+-------+------------+------+-----+---------+-------+
| col1  | bigint(20) | YES  |     | null    |       |
+-------+------------+------+-----+---------+-------+
| col2  | mediumtext | YES  |     | null    |       |
+-------+------------+------+-----+---------+-------+

Tabel timeseries menggunakan skema nilai tunggal tetap:

DESCRIBE mytstable;
+-------------------+---------------+------+-----+---------+-------+
| Field             | Type          | Null | Key | Default | Extra |
+-------------------+---------------+------+-----+---------+-------+
| _m_name           | varchar(1000) | NO   | PRI | null    |       |
+-------------------+---------------+------+-----+---------+-------+
| _data_source      | varchar(1000) | NO   | PRI | null    |       |
+-------------------+---------------+------+-----+---------+-------+
| _tags             | varchar(1000) | NO   | PRI | null    |       |
+-------------------+---------------+------+-----+---------+-------+
| _time             | bigint(20)    | NO   | PRI | null    |       |
+-------------------+---------------+------+-----+---------+-------+
| _field_name       | varchar(1000) | YES  |     | null    |       |
+-------------------+---------------+------+-----+---------+-------+
| _long_value       | bigint(20)    | YES  |     | null    |       |
+-------------------+---------------+------+-----+---------+-------+
| _double_value     | double        | YES  |     | null    |       |
+-------------------+---------------+------+-----+---------+-------+
| _bool_value       | tinyint(1)    | YES  |     | null    |       |
+-------------------+---------------+------+-----+---------+-------+
| _string_value     | varchar(1000) | YES  |     | null    |       |
+-------------------+---------------+------+-----+---------+-------+
| _binary_value     | mediumblob    | YES  |     | null    |       |
+-------------------+---------------+------+-----+---------+-------+
| _attributes       | varchar(1000) | YES  |     | null    |       |
+-------------------+---------------+------+-----+---------+-------+
| _meta_update_time | bigint(20)    | YES  |     | null    |       |
+-------------------+---------------+------+-----+---------+-------+
Catatan

Tabel timeseries menggunakan model nilai tunggal di mana setiap bidang diperluas menjadi baris terpisah. Saat Anda menulis satu baris yang berisi beberapa bidang, setiap bidang akan muncul sebagai baris terpisah dalam hasil kueri SQL dengan hanya satu kolom _*_value yang diisi.

Lihat informasi indeks

SHOW INDEX menampilkan indeks yang terkait dengan tabel pemetaan beserta detail kolomnya.

SHOW INDEX FROM mytable;

Kueri data

Gunakan pernyataan SELECT untuk mengkueri data dari tabel pemetaan.

SELECT * FROM mytable;

Contoh

  • Filter berdasarkan kondisi tertentu.

    SELECT * FROM mytable WHERE uid = 'user001' AND pid = 1;
  • Hitung jumlah baris.

    SELECT COUNT(*) FROM mytable;
  • Batasi jumlah baris yang dikembalikan.

    SELECT * FROM mytable LIMIT 10;
  • Kueri data tabel timeseries.

    SELECT * FROM mytstable LIMIT 10;
Catatan

Setelah Anda membuat tabel timeseries, data awal memerlukan waktu sekitar satu menit hingga dapat dikueri. Data yang ditambahkan ke timeline yang sudah ada dapat dikueri segera.

Tulis dan modifikasi data

Dalam mode SQL, jalankan pernyataan INSERT, UPDATE, dan DELETE pada tabel non-transaksi. Untuk sintaks lengkap dan batasannya, lihat Operasi DML.

Penting
  • Pernyataan DML hanya berlaku untuk tabel non-transaksi (tabel yang dibuat tanpa transaksi diaktifkan).

  • UPDATE dan DELETE memerlukan kondisi kesamaan pada semua kolom kunci primer untuk menentukan satu baris.

  • Tabel timeseries tidak mendukung pernyataan DML (INSERT, UPDATE, dan DELETE). Untuk menulis data timeseries, gunakan perintah putts atau import_timeseries.

Contoh

  • Sisipkan satu baris.

    INSERT INTO mytable (uid, pid, col1) VALUES ('user001', 1, 100);
  • Perbarui baris tertentu.

    UPDATE mytable SET col1 = 200 WHERE uid = 'user001' AND pid = 1;
  • Hapus baris tertentu.

    DELETE FROM mytable WHERE uid = 'user001' AND pid = 1;

Perbarui kolom tabel pemetaan

Jika Anda menambahkan atau menghapus kolom dari tabel data, gunakan ALTER TABLE untuk memperbarui pemetaannya.

ALTER TABLE mytable ADD COLUMN col3 MEDIUMTEXT;

Hapus pemetaan

Saat kolom atribut tabel data berubah, hapus pemetaannya lalu buat ulang.

Catatan

Sistem secara otomatis mengelola pemetaan tabel timeseries, yang tidak dapat dihapus dengan DROP MAPPING TABLE.

DROP MAPPING TABLE mytable;