Todos os produtos
Search
Central de documentação

PolarDB:Operações básicas de SQL

Última atualização: Jun 28, 2026

Este tópico aborda instruções SQL comuns do PolarDB-X 1.0, incluindo gerenciamento de bancos de dados e tabelas, operações com colunas e índices, manipulação de dados e gestão de usuários.

As instruções SQL dividem-se em quatro categorias:

  • DDL (Data Definition Language): Define e modifica estruturas de banco de dados — bancos de dados, tabelas, colunas e índices. Principais instruções: CREATE, ALTER, DROP, SHOW.

  • DML (Data Manipulation Language): Insere, atualiza e exclui registros. Principais instruções: INSERT, UPDATE, DELETE.

  • DQL (Data Query Language): Consulta registros. Principal instrução: SELECT.

  • DCL (Data Control Language): Gerencia acesso e permissões de usuários. Principais instruções: CREATE USER, GRANT, DROP USER.

Visualize bancos de dados

Execute SHOW DATABASES para listar todos os bancos de dados:

SHOW DATABASES;

A saída será semelhante a:

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

Gerencie tabelas

Crie uma tabela

O PolarDB-X oferece suporte a dois tipos de tabela:

Tabela particionada — distribui dados entre vários shards de banco de dados usando uma função de hash. Recomendada para tabelas grandes que se beneficiam do dimensionamento horizontal.

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

A cláusula dbpartition by hash(id) particiona a tabela aplicando hash na coluna id entre os shards de banco de dados.

Tabela única — armazena todos os dados em um único shard. Ideal para pequenas tabelas de referência ou tabelas que não exigem particionamento.

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

Visualize a definição de uma tabela

Execute SHOW CREATE TABLE para visualizar a instrução usada na criação de uma tabela:

-- View a partitioned table
SHOW CREATE TABLE multi_db_single_tbl;

-- View a single table
SHOW CREATE TABLE single_tbl;

Listar todas as tabelas

Execute SHOW TABLES para listar todas as tabelas no banco de dados atual:

SHOW TABLES;

A saída será semelhante a:

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

Exclua uma tabela

Execute DROP TABLE para excluir uma tabela e todos os seus dados:

-- Drop a partitioned table
DROP TABLE multi_db_single_tbl;

-- Drop a single table
DROP TABLE single_tbl;

Gerencie colunas

Use ALTER TABLE para adicionar, modificar ou excluir colunas.

Adicionar uma coluna:

ALTER TABLE multi_db_single_tbl ADD COLUMN textcol text;

Modifique o tipo de dados de uma coluna:

ALTER TABLE multi_db_single_tbl MODIFY COLUMN textcol varchar(40);

Exclua uma coluna:

ALTER TABLE multi_db_single_tbl DROP COLUMN textcol;

Gerencie índices locais

Crie um índice local

Use uma das seguintes instruções:

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

Visualize índices em uma tabela

SHOW INDEX FROM multi_db_single_tbl;

A saída será semelhante a:

+---------------------+------------+----------+--------------+-------------+-----------+
| 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       |
+---------------------+------------+----------+--------------+-------------+-----------+

Exclua um índice local

Use uma das seguintes instruções:

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

Inserir, consultar, atualizar e excluir dados

Inserir dados

Use INSERT INTO para adicionar linhas a uma tabela. Insira uma única linha ou várias linhas em uma mesma instrução:

-- Insert one row
INSERT INTO multi_db_single_tbl (name) VALUES ('test_name');
INSERT INTO multi_db_single_tbl (name) VALUES ('test_name');

-- Insert multiple rows at once
INSERT INTO multi_db_single_tbl (name) VALUES ('test_name'), ('test_namexx');

Selecione dados

Use SELECT para recuperar linhas:

SELECT * FROM multi_db_single_tbl;

Atualize dados

Use UPDATE para modificar linhas existentes:

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

Uma instrução UPDATE sem a cláusula WHERE atualiza todas as linhas da tabela. Sempre inclua uma cláusula WHERE para atingir linhas específicas.

Exclua dados

Use DELETE FROM para remover linhas:

DELETE FROM multi_db_single_tbl WHERE id = 100002;
Aviso

Uma instrução DELETE sem a cláusula WHERE exclui todas as linhas da tabela. Sempre inclua uma cláusula WHERE para atingir linhas específicas.

Gerencie usuários e permissões

Crie um usuário

CREATE USER 'username'@'host' IDENTIFIED BY 'password';

Parâmetro

Descrição

username

Nome da conta a ser criada

host

Host de origem da conexão da conta. Use % para permitir conexões de qualquer host

password

Senha da conta

Exemplo: Crie uma conta chamada drdsuser com a senha Drds123456 que possa se conectar de qualquer host:

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

Conceder permissões

GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;

Parâmetro

Descrição

privileges

Permissões a conceder, como SELECT, INSERT ou UPDATE. Use ALL para conceder todas as permissões

databasename

Banco de dados de destino. Use * para abranger todos os bancos de dados

tablename

Tabela de destino. Use * para abranger todas as tabelas do banco de dados

username

Conta que receberá as permissões

host

Host de origem da conexão da conta. Use % para permitir conexões de qualquer host

WITH GRANT OPTION

(Opcional) Concede à conta permissão para executar instruções GRANT

Exemplo: Conceda todas as permissões em todas as tabelas de sample_db para drdsuser conectando-se de qualquer host:

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

Visualize permissões de usuário

SHOW GRANTS FOR 'username'@'host';

Exclua um usuário

DROP USER 'username'@'host';