Alura+ são pequenos vídeos com conteúdo complementar aos cursos da Alura. Aqui você tem novidades, dicas, tutoriais, novos assuntos e muito mais. Excelente para aprender algo novo naqueles pequenos momentos que sobram no dia.
Você já passou pela situação em que estava desenvolvendo um projeto utilizando a ferramenta Visual Studio Code, mas na hora de executar suas consultas no SQL, teve que migrar para outra ferramenta e interrompeu todo o seu raciocínio? Hoje, queremos resolver esse problema com você. Para isso, vamos conseguir executar SQL diretamente no Visual Studio Code. Este conteúdo é apresentado por Igor do Nascimento Alves, instrutor na Escola de Dados.
Audiodescrição: Igor é uma pessoa branca, de cabelos curtos e pretos, que veste uma camiseta cinza, com desenhos de peças de xadrez. Ele está num quarto e tem atrás de si parte de uma cama, um teclado musical e um armário com objetos diversos sobre ele. O cenário está iluminado com luzes nas cores azul e verde.
Hoje, queremos explorar a questão de executar o SQL diretamente no VS Code. Para isso, vamos explorar dois plugins, o SQL Tools e o SQLite, vamos explorar suas características, vantagens e desvantagens. Para você se comunicar com o banco de dados, precisa de uma ferramenta, podemos utilizar o SQLite Online, a ferramenta chamada *DBeaver * ou as próprias workbenches dos SGBDs.
Mas você já passou pela situação em que estava trabalhando em um projeto multidisciplinar? No nosso projeto, estamos executando consultas SQL na ferramenta SQLite Online, mas também estamos fazendo modificações no banco de dados utilizando o código Python. Então, no código Python, estamos me conectando ao banco de dados e fazendo modificações nesse banco de dados.
Toda vez que fazemos uma modificação, precisamos pegar esse arquivo .db
, carregá-lo no SQLite Online e executar novamente minhas consultas. Todo esse processo interrompe o fluxo de trabalho. Você já passou por uma situação parecida com essa?
Para resolver esse problema, uma das possibilidades é trabalharmos com os plugins do Visual Studio Code. Vamos fazer isso? No Visual Studio Code, no canto superior esquerdo, temos um ícone de vários quadrados, são três quadrados juntos e um separado. Esse ícone se chama “Extensões”, ou plugins. Ao clicar nessa opção, surgirá uma barra de pesquisa onde pode procurar por esses plugins. Vou digitar “SQL”, pois estamos interessados em plugins dessa natureza.
O primeiro plugin que aparece é o SQL Server, e ele foi feito pela própria Microsoft. O que isso quer dizer? Significa que a ferramenta Visual Studio Code pode aceitar tanto plugins feitos pela Microsoft quanto os feitos pela comunidade. No nosso caso, vamos explorar os plugins feitos pela comunidade, porque queremos trabalhar com um SGBD específico, que é o SQLite.
Então vamos continuar percorrendo essa lista de opções até encontrar o “SQLTools”. Destacamos essa ferramenta porque o SQLTools é muito poderoso, você consegue trabalhar com diversos SGBDs nele.
Após selecioná-lo, você pode analisar que ele trabalha com MySQL, PostgreSQL e Microsoft SQL Server e muitos outros. Então, ele é bem poderoso nesse quesito. Porém, quando fizemos os testes de instalação, descobrimos que essa instalação é muito complicada. Por quê? Você vai precisar instalar um segundo plugin relacionado ao banco de dados que vai utilizar, e também um drive que será responsável por fazer essa comunicação entre o Visual Studio Code e o banco de dados. Então, ele é um pouco mais trabalhoso para instalar.
Já que vamos trabalhar com SGBD SQLite, preferimos explorar um pouco mais. Então, vou clicar em “Extensões” novamente, rolando um pouco mais na lista, vamos encontrar um plugin que se chama SQLite. Esse plugin tem o nome do SGBD SQLite, porque ele só trabalha com esse banco de dados. Então é uma limitação. Se você for trabalhar com outro banco de dados, faz mais sentido você utilizar o SQLTools. Como o nosso caso é o SQLite, podemos explorar esse plugin.
Este plugin é bastante básico e simples de instalar. Ele executa consultas SQL e também consegue exportar essas consultas nos formatos JSON ou CSV. É muito simples de utilizar. Vamos utilizá-lo.
Ao clicar no plugin do SQLite, teremos a opção de instalar. Clicamos no botão “Instalar” e agora podemos voltar para o nosso projeto. Vamos clicar no Explorador do VS Code. Dentro da pasta “SQL”, já tenho um script chamado “explorando_dados.sql”. Nesse script, temos as consultas. São as mesmas consultas que tínhamos no SQLite Online, apenas copiamos para cá. E como executamos elas? Podemos clicar no “Explorador”, selecionar a consulta, pressionar o botão direito e escolher a opção “Run Select Query” (Executar Consulta Selecionada).
Ele abrirá uma janela de pergunta, querendo saber qual é o banco de dados que usaremos, pois em nenhum momento especificamos qual banco de dados ele deve procurar esses dados. Podemos clicar na opção do banco de dados que temos disponível, que é o banco de dados de vendas, e ele executará a consulta.
SELECT strftime('%m', data_venda) AS mes, COUNT(*) AS quantidade_vendas
FROM vendas
WHERE strftime('%Y', data_venda) = '2023'
GROUP BY mes;
No canto direito, ele abriu uma nova janela com o resultado da nossa consulta, que é uma tabela com duas colunas: coluna mês e coluna quantidade de vendas. É o mesmo resultado que tínhamos no SQLite Online.
mes | quantidade_vendas |
---|---|
01 | 1598 |
02 | 824 |
03 | 863 |
04 | 773 |
05 | 1245 |
06 | 751 |
07 | 807 |
08 | 740 |
09 | 788 |
Conseguimos, de fato, executar código SQL no VS Code. Com essa ferramenta do SQLite, foi muito simples executar essas consultas.
No resultado da nossa consulta, no canto superior, temos o ícone de um arquivo com uma seta. Podemos clicar nessa opção e uma nova janela se abrirá, perguntando onde queremos salvar esse resultado e em que formato. Podemos dar um nome para esse resultado, então vamos chama-lo de “mes_vendas.csv” e clicar em “Salvar”. Como já temos esse arquivo, ele perguntará se queremos substituir, vamos confirmar que “Sim”. Podemos fechar a aba da consulta e a aba do CSV. Agora, vamosmostrar a vantagem de exportar esse arquivo.
Clicando no “Explorador”, neste projeto estamos trabalhando com o Jupyter Notebook. Vamos clicar no arquivo “notebooks > explorando_dados.ipynb”, esse é o arquivo Jupyter Notebook chamado Explorando Dados
. Esse arquivo lê o CSV. Vamos clicar em “Executar Tudo” e ele trouxe aquele mesmo resultado, que é o retorno da consulta, para o nosso Jupyter Notebook.
Se você estiver atuando em um projeto onde também é uma pessoa cientista de dados e quer criar visualizações com o resultado da sua consulta ou criar modelos de machine learning (aprendizado de máquina), isso ficou muito prático. Você executa as consultas SQL e traz o resultado para o seu Jupyter Notebook. Essa é a vantagem de trabalhar no VSCode, essa habilidade de um projeto multidisciplinar.
Existem outras vantagens de termos migrado nossas consultas para o VSCode? Sim, o VSCode conta com diversos plugins, não apenas um plugin voltado para SQL. Ele oferece diversos plugins para facilitar o seu trabalho.
Outro plugin que vamos explorar com você hoje se chama Copilot. Quero passar algumas informações desse plugin antes de utilizá-lo. A primeira informação que queremos trazer é que é um plugin pago. Esse serviço é pago e, quando este vídeo foi gravado, o Copilot custava 10 dólares por mês para uma conta individual.
Para utilizar sem ter que pagar esse valor existem algumas alternativas, como por exemplo o free trial (período de avaliação gratuito). Durante esse período de avaliação, que dura 30 dias, você pode utilizar o serviço de maneira gratuita. No entanto, para fazer isso, será necessário selecionar uma forma de pagamento, que pode ser mensal ou anual, e fornecer os dados do seu cartão de crédito. Isso pode ser arriscado, pois após os 30 dias, a cobrança acontece automaticamente.
É muito importante que você cancele o serviço antes do término do período de avaliação se não quiser pagar por ele.
De acordo com a descrição no GitHub, é possível cancelar o serviço assim que a avaliação começar. Ou seja, se você testou e viu que está tudo funcionando, não precisa esperar os 30 dias para cancelar. O acesso ao GitHub Copilot continuará disponível até o final do período de avaliação, mesmo após o cancelamento.
Existem outras maneiras mais recomendadas de utilizar o Copilot: se você se encaixa no perfil de ser uma pessoa estudante, professora de universidade, ou mantenedora de projetos de software livre. Se você se encaixa em algum desses perfis, o GitHub Copilot é gratuito. Basta apenas enviar um comprovante para o GitHub e eles fornecerão o acesso de maneira gratuita.
A última possibilidade que sugerimos para utilizar o Copilot é verificar se a sua empresa tem acesso ao plano Enterprise. Eles têm um plano para empresas, o Copilot Enterprise, então pode ser que você consiga solicitar esse acesso na sua empresa.
Agora que deixamos claro como funciona essa ferramenta paga, vamos para o VS Code e ver como ela funciona.
Então, já temos o Copilot
configurado na máquina e preparei um script para explorarmos, o “explorandocopilot.sql”. Ele está em branco e, agora, para utilizarmos o Copilot
, você pode começar digitando um comentário. Nesse comentário, você vai dizer o que deseja escrever de código.
Então, um comentário no SQL começa com --
, e aqui vamos dizer para ele que queremos saber quais os nomes das tabelas que existem no meu banco de dados. Estamos conhecendo esse banco de dados ainda e queremos entendê-lo melhor. Então, vou digitar: "-- Quais os nomes das tabelas no meu banco sqlite", vou apertar o “Enter” e o Copilot
já vai fazer uma sugestão.
SELECT name FROM sqlite_master WHERE type= ‘stable’;
Ele disse que isso vai retornar o resultado que precisamos. Então, vamos apertar a tecla “Tab”, que aí ele vai transformar esse código de fato aqui no meu arquivo. Podemos selecionar, apertar o botão direito e rodar essa consulta. Como mudamos de arquivo de consulta, ele vai perguntar novamente que banco de dados queremos explorar. Vamos selecionar o banco de vendas novamente e ele retornou essa informação. São os nomes das tabelas que existem no banco de dados: vendas, produtos, clientes, categorias, fornecedores, marcas e itens_venda. Podemos até confirmar isso lá no SQLite Online.
No SQLite Online, no canto esquerdo, temos o nome das tabelas e, dentro do nome das tabelas, temos o nome das colunas também e os tipos que elas aceitam. Aqui vale destacar uma informação importante: uma ferramenta como o SQLite Online ou as Workbends dos SGBDs serão muito mais completas. Elas têm muitos mais recursos e esse é um exemplo deles. Só de carregar o banco de dados, já temos acesso ao nome das tabelas, o nome das colunas, tudo isso vem de fácil acesso. Já no nosso plugin, no VSCode
, tive que rodar uma consulta para acessar essa informação.
Uma ferramenta voltada só para SQL vai ter muitos mais recursos do que esse plugin pode oferecer. Esse é um ponto de atenção.
Vamos continuar explorando o Copilot
. Já conseguimos descobrir o nome das tabelas. Agora, quero saber um pouco mais sobre uma tabela específica. Só de apertar “Enter” aqui, ele já fez uma sugestão. Ele colocou como comentário: -- Quais as colunas da tabela ‘users’
. Nós nem temos essa tabela. Ele está analisando mais o banco de dados do que o nosso contexto. Isso é uma característica dele.
Quanto mais informação você for colocando nesse script, mais ele vai entender o projeto que você vai trabalhar e melhores serão suas sugestões.
Então, vamos seguir parcialmente essa sugestão. Vamos digitar: "quais as colunas da tabela", só que agora eu quero uma tabela não do banco de dados, queremos uma do nosso contexto, como por exemplo, produtos. Então, vou apertar “Enter” e, novamente, ele fez uma sugestão. Aqui, ele está utilizando um comando chamado PRAGMA
. Não queremos utilizá-lo, queremos um SELECT
. Então, quando ele não estiver indo para o caminho que você precisa, você pode começar a digitar um código e ele vai se adaptando ao que você está digitando.
Então, escrevemos SELECT
, que é o comando que queremos utilizar, e ele já colocou: SELECT * FROM pragma_table_info(‘produtos’);
. Vamos apertar o “Tab” para ele preencher o código, selecionar esse código, clicar nele com o botão direito do mouse e escolher a opção “Run select query”, e ele retornou um resultado. Aqui, temos o nome das colunas e diversas informações, incluindo o tipo que essa coluna aceita.
cid | name | type | notnull | dflt_value |
---|---|---|---|---|
0 | id_produto | INTEGER | 0 | NULL |
1 | nome_produto | TEXT | 0 | NULL |
2 | preco | REAL | 0 | NULL |
3 | categoria_id | INTEGER | 0 | NULL |
4 | marca_id | TEXT | 0 | NULL |
5 | fornecedor_id | INTEGER | 0 | NULL |
6 | data_estoque | DATE | 0 | NULL |
7 | status | TEXT | 0 | NULL |
Essa é a mesma informação que tínhamos lá no SQLite Online e conseguimos ela através de uma consulta. Então, já temos acesso às mesmas informações, só que com um pouco mais de trabalho.
Vamos testar uma última consulta. Só que agora, em vez de digitar um comentário, vamos escrever diretamente o que queremos: SELECT * FROM produtos
. Queremos selecionar os dados da tabela produtos
, mas não todos: apenas cinco. No entanto, não lembramos exatamente qual é o nome do comando que limita os resultados. Quando você estiver nessa situação, pode digitar parcialmente o que lembra sobre esse código, e o Copilot vai te ajudar.
Então, vamos começar a digitar li
, e aqui ele já faz uma sugestão para você. Ele sugeriu que talvez você queira digitar limit
. Vamos apertar o “Tab”, ele sugere aqui um limite de 10, que está ótimo, vamos utilizá-lo.
SELECT * FROM produtos limit 10;
Vamos selecionar o código e executá-lo. Então, selecione o trecho de código e clique com o botão direito do mouse sobre ele. Em seguida, selecione “Run select query”. Ele retornou um resultado para nós aqui, todos os produtos na minha base de dados, os 10 primeiros resultados.
id_produto | nome_produto | preco | categoria |
---|---|---|---|
1 | Bola de Futebol | 24.48 | 4 |
2 | Chocolate | 1351.17 | 4 |
3 | Celular | 1351.88 | 4 |
4 | Chocolate | 662.65 | 5 |
5 | Celular | 1705.5 | 1 |
6 | Bola de Futebol | 1941.02 | 3 |
7 | Celular | 1347.34 | 5 |
8 | Livro de Ficção | 1993.08 | 2 |
9 | Livro de Ficção | 324.83 | 5 |
10 | Celular | 1631.67 | 1 |
Então, com um código que do qual nos lembrávamos parcialmente, ele nos ajudou a complementá-lo. Esse é o poder do Copilot, ele vai facilitar a escrita de código. Esse recurso é muito útil e você consegue utilizá-lo aqui no VSCode.
Hoje, nós analisamos diversas coisas, como, por exemplo, os plugins que trazem a possibilidade de trabalhar no VSCode
com o SQL. Exploramos o SQLTools, uma ferramenta interessante, pois ela acessa diversos bancos de dados. No entanto, ela tem algumas desvantagens, como a dificuldade para realizar sua instalação.
Já o outro plugin, o SQLite, é muito simples de utilizar. Essa é uma vantagem, mas uma desvantagem seria que ele possui poucos recursos, ou seja, não tem muitas opções para você trabalhar.
Agora, falando das vantagens e desvantagens de migrar o seu projeto para o VSCode, conseguimos trabalhar em um projeto multidisciplinar quando passamos nossas consultas SQL para o VSCode. Porém, temos a desvantagem de ter menos recursos do que uma ferramenta como o DBeaver, o SQLite Online, as Workbends dos SGBDs têm. Eles possuem muito mais recursos.
Portanto, para decidir qual é o melhor para você, vai depender do projeto em que você está trabalhando, do contexto e do seu papel nesse projeto. Se você for, por exemplo, uma pessoa DBA trabalhando nesse projeto exclusivamente com o SQL, faz muito mais sentido você optar por uma ferramenta especializada em SQL. Lá, você terá muitos mais recursos.
Porém, caso você seja, por exemplo, uma pessoa da área de negócios ou uma pessoa cientista de dados e estiver trabalhando com o Python, com o Jupyter Notebook, e tiver esse projeto multidisciplinar, faz mais sentido você optar por uma ferramenta que aceite esses diversos recursos. Então, você precisa avaliar cada um dos seus contextos.
Ficamos muito felizes de ter resolvido esse problema junto com você, descoberto essa possibilidade de trabalhar com o SQL no VSCode
, e esperamos que você continue se aprofundando no SQL na nossa formação.
Para que você possa se aprofundar ainda mais neste tema, segue a sugestão de alguns conteúdos complementares:
Até a próxima!
17min para conclusão
Impulsione a sua carreira com os melhores cursos e faça parte da maior comunidade tech.
1 ano de Alura
Assine o PLUS e garanta:
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
No Discord, você tem acesso a eventos exclusivos, grupos de estudos e mentorias com especialistas de diferentes áreas.
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
Acelere o seu aprendizado com a IA da Alura e prepare-se para o mercado internacional.
1 ano de Alura
Todos os benefícios do PLUS e mais vantagens exclusivas:
Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos, corrige exercícios e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com a Luri até 100 mensagens por semana.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Transforme a sua jornada com benefícios exclusivos e evolua ainda mais na sua carreira.
1 ano de Alura
Todos os benefícios do PRO e mais vantagens exclusivas:
Mensagens ilimitadas para estudar com a Luri, a IA da Alura, disponível 24hs para tirar suas dúvidas, dar exemplos práticos, corrigir exercícios e impulsionar seus estudos.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.