All Products
Search
Document Center

PolarDB:Operasi SQL dasar

Last Updated:Mar 29, 2026

Topik ini mencakup pernyataan SQL umum untuk PolarDB-X 1.0, termasuk manajemen database dan tabel, operasi kolom dan indeks, manipulasi data, serta manajemen pengguna.

Pernyataan SQL terbagi menjadi empat kategori:

  • DDL (Data Definition Language): Mendefinisikan dan memodifikasi struktur database—meliputi database, tabel, kolom, dan indeks. Pernyataan utama: CREATE, ALTER, DROP, SHOW.

  • DML (Data Manipulation Language): Menyisipkan, memperbarui, dan menghapus data. Pernyataan utama: INSERT, UPDATE, DELETE.

  • DQL (Data Query Language): Mengkueri data. Pernyataan utama: SELECT.

  • DCL (Data Control Language): Mengelola akses pengguna dan izin. Pernyataan utama: CREATE USER, GRANT, DROP USER.

Lihat database

Jalankan SHOW DATABASES untuk menampilkan daftar semua database:

SHOW DATABASES;

Output-nya mirip dengan:

+--------------------+
| Database           |
+--------------------+
| information_schema |
| sample_db          |
+--------------------+

Kelola tabel

Buat tabel

PolarDB-X mendukung dua jenis tabel:

Tabel partisi — mendistribusikan data ke beberapa shard database menggunakan fungsi hash. Gunakan jenis ini untuk tabel besar yang memperoleh manfaat dari skalabilitas horizontal.

CREATE TABLE multi_db_single_tbl(
  id int auto_increment,
  name varchar(30),
  primary key(id)
) dbpartition by hash(id);

Klausa dbpartition by hash(id) mempartisi tabel dengan melakukan penghashan pada kolom id di seluruh shard database.

Tabel tunggal — menyimpan semua data dalam satu shard. Gunakan jenis ini untuk tabel referensi kecil atau tabel yang tidak memerlukan partisi.

CREATE TABLE single_tbl(
  id int,
  name varchar(30),
  primary key(id)
);

Lihat definisi tabel

Jalankan SHOW CREATE TABLE untuk melihat pernyataan yang digunakan saat membuat tabel:

-- Lihat tabel partisi
SHOW CREATE TABLE multi_db_single_tbl;

-- Lihat tabel tunggal
SHOW CREATE TABLE single_tbl;

Tampilkan daftar semua tabel

Jalankan SHOW TABLES untuk menampilkan daftar semua tabel dalam database saat ini:

SHOW TABLES;

Output-nya mirip dengan:

+----------------------+
| Tables_in_sample_db  |
+----------------------+
| multi_db_single_tbl  |
| single_tbl           |
+----------------------+

Hapus tabel

Jalankan DROP TABLE untuk menghapus tabel beserta seluruh datanya:

-- Hapus tabel partisi
DROP TABLE multi_db_single_tbl;

-- Hapus tabel tunggal
DROP TABLE single_tbl;

Kelola kolom

Gunakan ALTER TABLE untuk menambah, memodifikasi, atau menghapus kolom.

Tambah kolom:

ALTER TABLE multi_db_single_tbl ADD COLUMN textcol text;

Modifikasi tipe data kolom:

ALTER TABLE multi_db_single_tbl MODIFY COLUMN textcol varchar(40);

Hapus kolom:

ALTER TABLE multi_db_single_tbl DROP COLUMN textcol;

Kelola indeks lokal

Buat indeks lokal

Gunakan salah satu pernyataan berikut:

CREATE INDEX idx_name ON multi_db_single_tbl (name);
ALTER TABLE multi_db_single_tbl ADD INDEX idx_name(name);

Lihat indeks pada tabel

SHOW INDEX FROM multi_db_single_tbl;

Output-nya mirip dengan:

+---------------------+------------+----------+--------------+-------------+-----------+
| Table               | Non_unique | Key_name | Seq_in_index | Column_name | Null      |
+---------------------+------------+----------+--------------+-------------+-----------+
| multi_db_single_tbl |          0 | PRIMARY  |            1 | id          |           |
| multi_db_single_tbl |          1 | idx_name |            1 | name        | YES       |
+---------------------+------------+----------+--------------+-------------+-----------+

Hapus indeks lokal

Gunakan salah satu pernyataan berikut:

DROP INDEX idx_name ON multi_db_single_tbl;
ALTER TABLE multi_db_single_tbl DROP INDEX idx_name;

Sisipkan, kueri, perbarui, dan hapus data

Sisipkan data

Gunakan INSERT INTO untuk menambahkan baris ke dalam tabel. Anda dapat menyisipkan satu baris atau beberapa baris dalam satu pernyataan:

-- Sisipkan satu baris
INSERT INTO multi_db_single_tbl (name) VALUES ('test_name');
INSERT INTO multi_db_single_tbl (name) VALUES ('test_name');

-- Sisipkan beberapa baris sekaligus
INSERT INTO multi_db_single_tbl (name) VALUES ('test_name'), ('test_namexx');

Kueri data

Gunakan SELECT untuk mengambil baris:

SELECT * FROM multi_db_single_tbl;

Perbarui data

Gunakan UPDATE untuk memodifikasi baris yang sudah ada:

UPDATE multi_db_single_tbl SET name = 'zzz' WHERE id IN (100001, 100002, 100003, 100004);
Peringatan

Pernyataan UPDATE tanpa klausa WHERE akan memperbarui setiap baris dalam tabel. Selalu sertakan klausa WHERE untuk menargetkan baris tertentu.

Hapus data

Gunakan DELETE FROM untuk menghapus baris:

DELETE FROM multi_db_single_tbl WHERE id = 100002;
Peringatan

Pernyataan DELETE tanpa klausa WHERE akan menghapus setiap baris dalam tabel. Selalu sertakan klausa WHERE untuk menargetkan baris tertentu.

Kelola pengguna dan izin

Buat pengguna

CREATE USER 'username'@'host' IDENTIFIED BY 'password';
ParameterDeskripsi
usernameNama akun yang akan dibuat
hostHost tempat akun tersebut dapat terhubung. Gunakan % untuk mengizinkan koneksi dari host mana pun
passwordKata sandi akun

Contoh: Buat akun bernama drdsuser dengan kata sandi Drds123456 yang dapat terhubung dari host mana pun:

CREATE USER drdsuser@'%' IDENTIFIED BY 'Drds123456';

Beri izin

GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;
ParameterDeskripsi
privilegesIzin yang diberikan, seperti SELECT, INSERT, atau UPDATE. Gunakan ALL untuk memberikan semua izin
databasenameDatabase target. Gunakan * untuk menargetkan semua database
tablenameTabel target. Gunakan * untuk menargetkan semua tabel dalam database
usernameAkun yang akan diberikan izin
hostHost tempat akun tersebut dapat terhubung. Gunakan % untuk mengizinkan koneksi dari host mana pun
WITH GRANT OPTION(Opsional) Memberikan izin kepada akun untuk menjalankan pernyataan GRANT

Contoh: Berikan semua izin pada semua tabel di sample_db kepada drdsuser yang terhubung dari host mana pun:

GRANT ALL ON sample_db.* TO drdsuser@'%';

Lihat izin pengguna

SHOW GRANTS FOR 'username'@'host';

Hapus pengguna

DROP USER 'username'@'host';