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);
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;
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 |
|
|
Nome da conta a ser criada |
|
|
Host de origem da conexão da conta. Use |
|
|
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 |
|
|
Permissões a conceder, como |
|
|
Banco de dados de destino. Use |
|
|
Tabela de destino. Use |
|
|
Conta que receberá as permissões |
|
|
Host de origem da conexão da conta. Use |
|
|
(Opcional) Concede à conta permissão para executar instruções |
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';