Pular para o conteúdo

Banco de dados (console SQL)

A seção Banco de dados transforma o Context Code em um cliente multimotor completo: explorador de objetos no estilo do SSMS, editor de scripts com abas, diagramas ER, histórico, cópias de segurança e um assistente de IA que entende o seu esquema.

PostgreSQL, MySQL / MariaDB, SQLite, SQL Server, Oracle e MongoDB.

  1. Abra Banco de dados na cápsula superior (ou Abrir SQL Console) e clique em Nova Conexão.
  2. Escolha o Motor e preencha os dados: servidor/host, porta, usuário, senha e banco de dados; o caminho do arquivo (.db / .sqlite) se for SQLite; Service name / SID se for Oracle. Para servidores com TLS há o modo SSL (MySQL e PostgreSQL) e «Confiar no certificado do servidor» (SQL Server).
  3. Testar Conexão confirma que os dados estão corretos; Salvar Conexão a guarda nas suas Conexões Salvas.

Cada aba de script lembra a sua própria conexão (Ctrl+Shift+S) e o seu próprio banco (Ctrl+Shift+D).

O console: explorador de objetos à esquerda, script e resultados à direita.

Você pode ir para o chat, para o editor ou para o modo Developer e voltar: o console continua exatamente como você o deixou — a conexão e o banco ativos, a árvore do explorador já expandida, as suas abas de script (que ainda sobrevivem ao reinício do app), o cursor, o scroll e o desfazer de cada script.

Ao voltar, o app verifica a conexão por baixo dos panos e, se o servidor a tiver fechado, reconecta sozinho sem dizer nada.

Para SQL Server e Oracle há um batimento a cada dois minutos que mantém a sessão viva. E se uma execução falhar por um erro de conexão (a rede caiu, o servidor reiniciou), o app reabre e tenta de novo uma única vez. Os erros de SQL — uma coluna escrita errada, uma restrição violada — não são repetidos: repetir um INSERT às cegas seria pior que o erro.

  • F5 ou ▶ executa o script inteiro, ou só o que você tiver selecionado; Ctrl+Enter executa a instrução onde está o cursor.
  • O script é enviado instrução por instrução, então você recebe um painel de resultados para cada SELECT e pode navegar entre eles.
  • Se algo falhar, a mensagem situa você: «Lote 3/7 (linha 42 do script)».
MotorSeparadorDetalhe
SQL ServerGOSó conta se estiver em uma linha própria. Aceita GO 5 para repetir o lote 5 vezes e um comentário -- depois. Não divide nada que esteja dentro de strings, identificadores ou comentários.
Oracle/Em uma linha própria.
PostgreSQL, MySQL/MariaDB, SQLite, MongoDB—Sem separador de lote.

Todos os lotes vão pela mesma conexão, então o USE, as tabelas temporárias e as transações são conservados de um lote para o seguinte.

  • SQL Server: o console antepõe o USE [banco] do seletor e aceita nomes de três partes (banco.esquema.tabela). Se o script nomear um banco diferente do contexto, ele avisa — «O script nomeia o banco X, mas o contexto é Y» — e oferece Reescrever para Y ou Remover prefixos de banco.
  • PostgreSQL: abre uma conexão temporária para cada banco que o script precisar.
  • MySQL: é preciso qualificar com banco.tabela.

O Pesquisador de Objetos é uma árvore única no estilo do SSMS: Bancos de dados, Diagramas, Tabelas (inclusive as do sistema, externas e de grafos), Views, Sinônimos, Programação (Procedimentos, Funções), Repositório de consultas, Service Broker, Armazenamento, Segurança, e dentro de cada tabela as suas Colunas, Índices e Estatísticas. Tem filtro, expandir/recolher tudo, atualizar e copiar a string de conexão.

O menu de contexto traz os atalhos de sempre: consultar as primeiras 100 linhas, gerar INSERT / UPDATE / DELETE, criar ou excluir um banco, criar tabela, abrir o Diagrama ER ou o Modelo de Dados, copiar o nome (simples ou qualificado), fazer USE, abrir uma nova consulta aqui, cópia de segurança, restaurar e gerar scripts.

Abas Resultados e Mensagens, com linhas retornadas ou afetadas e o tempo de execução. Ctrl+R esconde ou mostra o painel.

Um script longo abre uma aba Resultado N para cada consulta que retorna linhas. As instruções de contexto — USE, SET, DECLARE — não abrem aba: antes elas sujavam o painel com resultados vazios que era preciso ir pulando. Cada aba tem o seu X para fechá-la, e há «Fechar todos os resultados» para deixar o painel limpo de uma vez.

A grade funciona como uma planilha:

ParaFaça
Selecionar uma linhaClique nela
Adicionar ou remover linhas avulsasCtrl + clique
Selecionar um intervaloShift + clique
Selecionar tudoA caixa do cabeçalho, ou Ctrl+A
Limpar a seleçãoEsc

Ctrl+C copia como TSV, que é o que o Excel e o Google Sheets colam em colunas sem perguntar nada.

O menu de contexto dá as demais formas de extrair os dados:

  • Copiar linha(s) e Copiar com cabeçalhos
  • Copiar como CSV
  • Copiar como INSERT — pergunta o nome da tabela de destino
  • Copiar célula
  • Selecionar tudo e Limpar seleção
  • Uma configuração: «Copiar NULL como o texto «NULL»», para quando o destino não distingue um nulo de uma célula vazia

Cada consulta executada fica no histórico, que persiste entre sessões.

Diagramas entidade-relacionamento com três disposições automáticas — grade, hierárquica e radial —, visão só de chaves, quadrícula, reordenação à mão e zoom. Você pode ter vários diagramas por banco: adicionar tabelas, renomeá-los, duplicá-los, excluí-los e salvá-los; ficam armazenados no banco local do app.

Com Ctrl+I você abre o assistente dentro do console. Ele sabe qual conexão e qual banco você tem na frente, e pode explicar uma consulta, otimizá-la, convertê-la para outro dialeto ou detectar erros; o resultado é aplicado ao script ou inserido no cursor.

Também sabe trabalhar em ciclo — gerar, executar, corrigir — até oito tentativas. O que ele pode fazer sem perguntar é você quem decide em Permissões (logo abaixo): distingue leitura de escrita e de operação destrutiva, e avisa quando algo parece irreversível ou quando a conexão parece de produção.

Cada motor com as suas ferramentas próprias: BACKUP / RESTORE no SQL Server, pg_dump / pg_restore no PostgreSQL, mysqldump no MySQL, VACUUM INTO no SQLite, mongodump no MongoDB e expdp / impdp no Oracle. A geração de scripts aceita DROP IF EXISTS, índices, chaves estrangeiras e quantas linhas por INSERT, e escreve o resultado em uma aba nova ou em um arquivo.

Você decide o que o assistente pode fazer em cada banco de dados. No cabeçalho do chat da conexão há um botão Permissões do agente nesta conexão com o resumo do que está em vigor; ao abri-lo você verá:

O que o assistente pode fazer em “sua conexão”. O que estiver desligado é recusado antes de tocar no banco.

Essa frase é literal: o que foi negado não chega ao banco de dados. Não é um aviso, é um freio.

PresetO que deixa fazer
Somente leituraO de fábrica. Ler dados e ver o esquema, nada mais. Cada gravação pediria confirmação.
DesenvolvimentoAlém disso grava, apaga, cria e altera objetos, executa rotinas, transações e exporta. Não destrói objetos (DROP). Tolera até 100 linhas afetadas sem perguntar.
AdministradorTudo, inclusive DROP, com um teto de 1000 linhas sem perguntar.

Se você mexer em um interruptor avulso, o preset passa a se chamar Personalizado.

InterruptorO que cobre
Ler dados (SELECT)Consultas que retornam linhas.
Ver esquemaTabelas, colunas e relações.
Gravar dados (INSERT/UPDATE)Adiciona ou altera linhas.
Apagar dados (DELETE/TRUNCATE)Remove linhas das tabelas.
Alterar esquema (CREATE/ALTER)Cria ou modifica objetos.
Destruir objetos (DROP)Irreversível: apaga tabelas inteiras.
Executar procedimentos e funçõesEXEC, CALL e blocos armazenados.
TransaçõesBEGIN, COMMIT, ROLLBACK, SAVEPOINT.
Commit automáticoSe desligado, cada COMMIT é confirmado.
Exportar para arquivoGrava resultados ou cópias em disco (INTO OUTFILE, COPY … TO, BACKUP).
Perguntar antes de cada gravaçãoNada é executado sem sua aprovação.

E um número: Máximo de linhas afetadas sem confirmação (0 = perguntar sempre).

As permissões são salvas por conexão, dentro do mesmo banco criptografado do aplicativo. Se a conexão não foi salva, elas são lembradas por motor e etiqueta.

Antes de cada leitura de esquema, amostra de dados ou execução, o assistente consulta as permissões:

  • O que foi negado nem é tentado, e o modelo explica em vez de falhar às cegas: «não tenho permissão para apagar nesta conexão; ative em Permissões».
  • O que exige confirmação diz por quê e, quando dá para medir, quantas linhas vai tocar.
  • Se você editar o SQL no diálogo de confirmação, o texto que ficou é validado de novo, não o original.
  • O irreversível é confirmado sempre, mesmo com a permissão concedida.
  • Um script misto é negado inteiro se uma única instrução dele estiver proibida: não é executado «até onde der».

A classificação é por motor — PostgreSQL, MySQL/MariaDB, SQL Server (com GO), SQLite, Oracle (com /) e MongoDB — e ignora strings, comentários e identificadores entre aspas, então um DELETE dentro de um literal não conta. Também reconhece os disfarces habituais: WITH … DELETE, SELECT … INTO, MERGE e o corpo de um procedimento.