Avançar para o conteúdo
Imagem com logotipo, contendo link para a página inicial
  • United Stated of America flag, representing the option for the English language.
  • Bandeira do Brasil, simbolizando a opção pelo idioma Português do Brasil.

Ambientes de Desenvolvimento: Configuração para Programação em SQL com SQLite

Exemplo de criação e uso de bancos de dados SQL usando o Sistema Gerenciador de Banco de Dados (SGBD) SQLite. A parte esquerda da imagem apresenta o programa `DB Browser for SQLite`. A parte direita apresenta uma sessão de terminal para o programa `sqlite3`.

Créditos para a imagem: Imagem criada pelo autor usando o programa Spectacle.

Pré-Requisitos

Os pré-requisitos para iniciar as atividades de programação em Structured Query Language (SQL) são semelhantes aos descritos para JavaScript, Python e Lua: um editor de texto e um Sistema Gerenciador de Banco de Dados (SGBD), ou um Ambiente Integrado de Desenvolvimento (em inglês, Integrated Development Environment ou IDE).

Para evitar repetir as discussões feitas anteriormente para JavaScript e Python:

  • Se você já possui um editor de texto, você pode instalar um SGBD e começar a programar;
  • Se você preferir usar um IDE, a opção mais simples é escolher DB Browser for SQLite, que inclui, dentre outros, editor de texto, SGBD e depurador;
  • Se você não sabe como instalar programas, o que é PATH ou como configurá-lo, consulte a entrada sobre instalação de programas.

Parte do conteúdo desta página será idêntico ao conteúdo de Python. Portanto, caso alguns parágrafos sejam familiares, não será impressão, mas um certo déjà vu. Por sinal, isso também ocorrerá em novas entradas sobre ambientes de desenvolvimento em outras linguagens de programação. Afinal, os procedimentos para configuração são similares.

SQL Como Primeira Linguagem de Programação

Python e Lua lideram a minha lista de recomendações de linguagens de programação para iniciantes, como comentado na introdução sobre ambientes de desenvolvimento; a terceira opção é JavaScript, devido à Internet.

Structured Query Language (SQL) não costuma ser a primeira escolha de pessoas que queiram aprender a programar. A linguagem não é apropriada para a escrita de programas ou aplicações (aplicativos), mas pode ser uma alternativa introdutória. Afinal, praticamente todo programa possui dados; programas complexos possuem muitos dados. Portanto, trabalhar com dados estruturados tende a ser uma boa opção.

Em outras palavras, SQL é uma excelente linguagem secundária para programação. Ela também pode ser a linguagem primária de pessoas interessadas em administrar ou modelar bancos de dados (como database administrators ou DBAs).

Sobre SQL

SQL é uma linguagem de programação do paradigma declarativo. Em linguagens declarativas, define-se o que a máquina deve fazer, ao invés de instruir um computador sobre como ele deve fazer uma tarefa. Em outras palavras, normalmente a escolha de como realizar o comando fica a cargo do SGBD ao invés da programadora ou do programador.

Seja como linguagem primária para administradores e designers de banco de dados, seja como linguagem secundária para desenvolvedores de software, SQL é uma linguagem útil em programação. Aplicações complexas de múltiplos domínios utilizam bancos de dados para armazenamento e recuperação de dados necessários múltiplas sessões de uso ou para usuários diferentes.

Bancos de dados merecem discussão em tópicos próprios, algo que foge ao escopo desta página.

Para se obter documentação em SQL, o ideal é consultar os recursos fornecidos pelo SGBD escolhido. Por exemplo:

Sistemas Gerenciadores de Banco de Dados (SGBDs)

O primeiro passo para começar a programar com banco de dados é escolher um SGBD. O SGDB é o sistema que gerencia o banco de dados, sendo responsável por definir como as operações designadas via SQL serão feitas. Opções tradicionais de SGBDs incluem:

SQLite talvez seja a opção mais simples para iniciantes, por não requerer a configuração de serviços. Bancos de dados criados por SQLite são arquivos individuais, algo que torna o SGDB uma excelente escolha para uso embutido (embedded) em outras linguagens de programação (por exemplo, em linguagem C ou Python). Para servidores ou bancos de dados complexos, as outras opções podem a ser mais adequadas.

Infelizmente, recursos e mesmo a sintaxe usada para programar em SQL pode variar de acordo com SGBD. Contudo, após o aprendizado de um primeiro, é relativamente simples começar a programar em outros. Afinal, os conceitos são os mesmos ou semelhantes.

Considerações Adicionais

O restante do texto assume o uso de SQLite, embora alguns exemplos possivelmente funcionem com outras opções. Para efeitos de comparação com outras linguagens de programação, os exemplos serão os mesmos adotados em linguagens anteriores.

Entretanto, os exemplos são apenas ilustrativos. Deve-se se escolher uma linguagem mais apropriada para a programação de aplicações (ao invés de usar SQL). Bancos de dados e SQL são úteis para armazenamento e recuperação de dados; SQL não é uma boa linguagem para se criar programas.

SGBD e Editor de Texto

Deve-se usar contas de root ou de administrador apenas para instalar o SGBD. Após instalá-lo, use uma conta de usuário comum, sem privilégios mais altos, para usar o SGBD e programar.

Linux

Distribuições Linux comumente permitem a instalação de diferentes SGBDs (como SQLite, PostgreSQL, MariaDB e MySQL).

  1. Arch Linux:
    pacman -S sqlite
  2. Debian, Ubuntu ou distribuições baseadas nas anteriores:
    apt-get install sqlite3
  3. Fedora:
    dnf install sqlite
  4. Gentoo:
    emerge --ask dev-db/sqlite

macOS

Em ambientes macOS, pode-se usar brew para instalar SQLite.

Windows

Para obter o SQLite, deve-se acessar a página de downloads e escolher uma das opções de Precompiled Binaries for Windows. Para iniciar atividades sem embutir SQLite em outra linguagem de programação, deve-se escolher o arquivo sqlite-tools-win32-x86-3360000.zip para obter um executável com o SGBD. Os números podem variar de acordo com a versão (3.36, quando da escrita desta página).

Após obter o arquivo compactado .zip, extraia os conteúdos para algum diretório de sua preferência. Inicie uma sessão do interpretador cmd e navegue até o diretório com os arquivos extraídos. Por exemplo, para arquivos no diretório C:\Users\Franco\Desktop\sqlite-tools-win32-x86-3360000, deve-se usar o comando cd C:\Users\Franco\Desktop\sqlite-tools-win32-x86-3360000 no cmd. Em seguida, para iniciar o SGBD, deve-se digitar sqlite3.exe. Para criar ou abrir um banco de dados chamado banco_dados.db, deve-se usar sqlite3 banco_dados.db.

Exemplo de uso do SGBD SQLite usando os comandos `sqlite3` e `sqlite3 banco_dados.db` no `cmd` do Windows.

Caso queira adicionar o interpretador ao PATH, consulte instalação de programas.

Alternativas para instalar o SGBD em Windows incluem:

Teste de Ambiente

Com o SGBD instalado, pode-se começar a programar em SQL. Para iniciar o SGBD, use o arquivo executável obtido ou digite sqlite3 seguido por enter em um interpretador de linha de comando (requer configuração de PATH para arquivos baixados manualmente).

sqlite3 sqlite.dbSQLite version 3.36.0 2021-06-18 18:36:39
Enter ".help" for usage hints.
sqlite>

O parâmetro sqlite.db é o nome desejado para o arquivo que armazenará os dados do banco de dados. Pode-se trocar o nome por outro de sua preferência. Toda vez que se usar o mesmo nome (e caminho) de arquivo, dados salvos em tabelas do banco de dados serão persistidos (salvos para posterior utilização). Caso se omita o nome de um arquivo, nenhum dado será salvo em disco após o término do programa do SGBD.

Assim como feito para JavaScript e Python, esta seção apresentará os mesmos exemplos para fins de teste e comparações entre linguagens.

Como em Python, deve-se digitar o código em linguagem SQL após a seqüência sqlite>.

Por exemplo, para se escrever no console, pode-se usar SELECT (documentação). A rigor, SELECT faz muito mais que escrever no console, mas conhecer sobre a possibilidade de escrita é suficiente para o momento. Para escrever uma mensagem, escreva algo como SELECT "Olá! Meu nome é Franco"; após sqlite> e aperte enter. O SGBD escreverá Olá! Meu nome é Franco e aguardará seu próximo comando.

sqlite3 sqlite.dbSQLite version 3.36.0 2021-06-18 18:36:39
Enter ".help" for usage hints.
sqlite> SELECT "Olá! Meu nome é Franco";Olá! Meu nome é Franco
sqlite>
Exemplo de início e uso do SGBD SQLite na linha de comando. Usa-se `sqlite3` para iniciar o SGBD; dentro dele, escreve-se o código desejado. A imagem apresenta exemplos de execução do código desta seção.

Doravante, toda vez que você ler um bloco de código em SQL e quiser executá-lo manualmente no SGBD, basta seguir os passos anteriores.

Para encerrar o SGBD, digite .quit (ou .exit) seguindo de enter ou aperte Ctrl d. No Windows, o atalho pode ser Ctrl z seguido de enter (ou pode não funcionar, exigindo o uso de .quit ou .exit).

Assim como Python, pode-se usar SQL em modo Read, Eval, Print, Loop (REPL).

SELECT 1 + 1;
SELECT "Olá! Meu nome é Franco";

Como em outras linguagens, convém criar o hábito de usar SELECT quando quiser escrever no console. Por exemplo, crie um arquivo chamado script.sql (você pode escolher o nome que quiser) com o seguinte conteúdo:

SELECT "Meu Primeiro Script em SQL";
SELECT "Olá! Meu nome é Franco.";
SELECT "O SGBD saber fazer contas.";
SELECT "Veja só: " || (1 + 1);
SELECT "Tchau!";

O script introduz o operador de concatenação || (documentação).

Para executar seu script, abra um interpretador de linha de comando (shell) no diretório em que ele foi criado e digite sqlite3 sqlite.db -init script.sql ".quit". O SGBD executará o arquivo fornecido como parâmetro (o valor script.sql após sqlite3 sqlite.db -init) e mostrará os resultados de chamadas de SELECT.

sqlite3 sqlite.db -init script.sql ".quit"-- Loading resources from script.sql
Meu Primeiro Script em SQL
Olá! Meu nome é Franco.
O SGBD saber fazer contas.
Veja só: 2
Tchau!

Caso o diretório atual no interpretador de linha de comando (shell) não seja o diretório do arquivo, você pode mudar para o diretório do arquivo ou pode escrever o caminho absoluto do arquivo. Exemplos de caminho absoluto poderiam ser C:\Users\Franco\Desktop\script.sql para um arquivo na área de trabalho do Windows em uma conta de usuário chamada Franco ou ~/Desktop/script.sql para um arquivo na área de trabalho do Linux.

Para evitar a mensagem -- Loading resources from script.sql e usar um comando mais compacto, pode-se executar o arquivo usando o operador de redirecionamento <, para utilizar o arquivo para obtenção de dados para a entrada padrão (stdin). Para isso, pode-se executar o comando como sqlite3 sqlite.db < script.sql:

sqlite3 sqlite.db < script.sqlMeu Primeiro Script em SQL
Olá! Meu nome é Franco.
O SGBD saber fazer contas.
Veja só: 2
Tchau!
Execução do arquivo `script.sql` na linha de comando. A imagem ilustra o comando utilizado (`sqlite3 sqlite.db < script.sql`) e os resultados da execução do programa.

Por fim, é conveniente saber que é possível consultar parte da documentação usando o REPL. Para isso, pode-se usar .help.

.help.archive ...             Manage SQL archives
.auth ON|OFF             Show authorizer callbacks
.backup ?DB? FILE        Backup DB (default "main") to FILE
.bail on|off             Stop after hitting an error.  Default OFF
.binary on|off           Turn binary output on or off.  Default OFF
.cd DIRECTORY            Change the working directory to DIRECTORY
(...)

Saber usar REPL e executar um arquivo com código SQL bastam para atividades de aprendizado. De forma geral, elas também são suficientes para a maioria das atividades para uso cotidiano ou profissional da linguagem de programação.

IDEs

As considerações feitas sobre o uso de IDE para Python valem para SQL. A conveniência, sobretudo importante para iniciantes, continua a ser um benefício do uso de IDEs.

Lembre-se de atalhos para editores de texto, como Ctrl n para criar novos arquivos (Arquivo / Novo ou File / New em inglês) e Ctrl o (Arquivo / Abrir ou File / Open em inglês) para abrir arquivos existentes.

DB Browser for SQLite

Embora não seja exatamente um IDE, DB Browser for SQLite (DB4S, antigamento chamado de SQLite Database Browser ou Database Browser for SQLite) é uma opção simples para primeiros contatos com SQL e SQLite. O programa pode criar, carregar, e modificar bancos de dados SQLite.

Exemplo de uso do programa `DB Browser for SQLite`, com trechos de código apresentados nesta página.

Além disso, pode-se visualizar e modificar tabelas e valores armazenados no arquivo do banco de dados.

SQLiteStudio

Outra opção para SQLite é SQLiteStudio.

Exemplo de uso do programa `SQLiteStudio`, com trechos de código apresentados nesta página.

O programa desempenha as mesmas funções de DB Browser for SQLite, então a escolha é uma questão de preferência.

Beekeeper Studio

Assim como DB Browser for SQLite e SQLiteStudio, Beekeeper Studio permite manipular bancos de dados SQLite.

Exemplo de uso do programa `Beekeeper Studio`, com trechos de código apresentados nesta página.

Beekeeper Studio também permite interagir com outros SGBDs, como PostgreSQL, MariaDB, MySQL, SQL Server e CockroachDB. Assim, caso necessário, pode-se usar um único programa para trabalhar com diversos SGBDs diferentes.

Outras Opções

Outras opções para uso e manipulação de bancos de dados SQLite incluem:

Primeiros Passos para Começar a Programar em SQL

Os trechos de código a seguir ilustram alguns recursos da linguagem SQL. Neste momento, não é necessário entendê-los totalmente; o propósito é apresentar recursos e a sintaxe da linguagem.

Existem três formas de usar o código. Você pode:

  1. Digitar (ou copiar e colar) o código diretamente em no interpretador da linguagem;
  2. Escrever e executar o código no IDE de sua escolha;
  3. Escrever o código usando um editor de texto e executar o arquivo criado no interpretador.

Os exemplos são os mesmos adotados para JavaScript. Logo, você poderá comparar linguagens, e observar semelhanças e diferenças entre elas.

Conhecendo SQLite por Meio de Experimentação

Exemplos de uso e saídas dos trechos de código apresentados nesta seção utilizando o SGBD `sqlite3` para SQL na linha de comando.
  1. Escrita de texto:

    SELECT "Uma linha.";
    SELECT "Outra linha.";
    SELECT "Uma linha.
    Outra linha.";

    A quebra de linha deve fazer parte da cadeia de caracteres, como no exemplo anterior.

  2. Comentários (texto ignorado pelo SGBD; documentação):

    SELECT "SGBD processa"; -- SGBD ignora.
    /* <- Aqui começa o comentário.
    Ele pode ter várias linhas.
    Aqui ele termina -> */
    /* Ele também pode começar e terminar na mesma linha. */
    -- Contudo, para isso, é mais fácil usar este estilo de comentário.

    Também é possível criar um comentário usando um único ponto-e-vírgula (;). Comentários com apenas um são alinhados à direita.

  3. Cálculos matemáticos:

    • Soma, subtração, multiplicação e divisão (documentação):

      SELECT 1 + 1;
      SELECT 2 - 2;
      SELECT 3 * 3;
      SELECT 4 / 4; -- O que ocorre caso se tente dividir por 0? Faça o teste!
    • Expressões matemáticas:

      SELECT 1 + 2 - 3 + (4 * 5) / 6.0;
    • Potenciação (documentação):

      SELECT pow(5, 2);
  • Raiz quadrada (documentação: sqrt()):

    SELECT sqrt(25);
  • Operações trigonométricas, como seno (documentação: sin() e pi()):

    SELECT sin(pi() / 2.0); -- Seno.
  1. Comparações (true ou 1 significam verdadeiro; false ou 0 significam falso):

    • Igualdade (documentação):

      SELECT 1 = 2; -- Igual.
      SELECT 1 <> 2; -- Diferente.
      SELECT "Franco" == "Franco";
      SELECT "Franco" <> "Franco";
      SELECT "Franco" <> "Seu Nome";
      -- SQL considera que letras minúsculas são diferentes de maiúsculas (e vice-versa).
      SELECT "F" = "f";
      SELECT "F" <> "f";
      SELECT "Franco" = "franco";
      SELECT "Franco" <> "franco";
    • Outras comparações (documentação):

      SELECT 1 < 2; -- Menor.
      SELECT 1 > 2; -- Maior.
      SELECT 1 <= 2; -- Menor ou igual.
      SELECT 1 >= 2; -- Maior ou igual.
  2. Variáveis e atribuição (documentação):

    Variáveis são como caixinhas que armazenam valores colocados dentro delas. SQLite não define variáveis, mas é possível definir constantes usando Common Table Expressions (CTEs; documentação). Após a definição, os valores não podem mudar.

    WITH var AS (SELECT 123 AS X)
    SELECT x
    FROM var;
    WITH v AS (SELECT 123.456 + 987.654 AS resultado)
    SELECT resultado
    FROM v;
    WITH nomes AS (SELECT "Franco" AS nome1, "Franco Garcia" AS nome2)
    SELECT nomes.nome1, nomes.nome2
    FROM nomes;
    WITH nomes AS (SELECT "Franco" AS nome1, "Seu Nome" AS nome2, "Outro Nome" AS nome3)
    SELECT nomes.nome1, nomes.nome2, nomes.nome3
    FROM nomes;
    WITH valores_logicos AS (SELECT TRUE AS v1, FALSE AS v2, ((1 + 1) = 2) AS v3)
    SELECT valores_logicos.v1, valores_logicos.v2, valores_logicos.v3
    FROM valores_logicos;
  3. Constantes (documentação):

    WITH const AS (SELECT 3.14159 AS PI)
    SELECT const.PI
    FROM const;
    WITH const AS (SELECT 2.71828 AS E, 0 AS E) -- Erro; o valor de uma constante é inalterável após definido.
    SELECT const.E
    FROM const;
  4. Erros:

    SELECT Ooops!; -- Texto deve estar entre aspas duplas ou simples.
    SELEC "Nome incorreto para SELECT";
    SELECT 1 / 0;
    SELECT 0 / 0;
  5. Cadeias de caracteres (strings) para palavras e texto (documentação):

    SELECT "Ok, cadeia de caracteres válida";
    SELECT 'Ok, outra cadeia de caracteres válida';
    SELECT "Ok, também é uma cadeia de caracteres válida";
    SELECT "Para 'misturar' aspas, use diferentes das externas.";
    SELECT "Caso contrário, você precisa escapá-las com duas aspas: "". O uso adicional das aspas é necessário.";
  6. Operações lógicas (documentação):

    SELECT TRUE AND TRUE; -- Operação lógica "e" ("and").
    SELECT TRUE OR FALSE; -- Operação lógica "ou" ("or").
    SELECT NOT TRUE; -- Operação lógica "não" ("not").
  7. Condições (documentação):

    WITH v AS (SELECT "Firefox" AS navegador)
    SELECT IIF(navegador = "Firefox", "Mozilla Firefox.", NULL)
    FROM v;
    WITH v AS (SELECT "Seu Navegador" AS meu_navegador)
    SELECT IIF(meu_navegador = "Firefox", "Mozilla Firefox.", "Você usa outro navegador.")
    FROM v;
    WITH x AS (SELECT "X" AS eu_uso),
         y AS (SELECT lower(x.eu_uso) AS eu_uso
               FROM x)
    SELECT IIF(y.eu_uso = "firefox", "Você usa um navegador da Mozilla.",
               IIF((y.eu_uso = "chrome") OR (y.eu_uso = "chromium"), "Você usa um navegador do Google.",
                   IIF(y.eu_uso = "edge", "Você usa um navegador da Microsoft.",
                       IIF(y.eu_uso = "safari", "Você usa um navegador da Apple.",
                           IIF(y.eu_uso = "internet explorer", "Você deveria usar um navegador mais moderno...", "Você usa outro navegador.")))))
    FROM y;

    Normalmente utiliza-se CASE (documentação) para a escrita de um código mais limpo.

  8. Repetições ou laços (documentação):

    SELECT i.value FROM generate_series(0, 4, 1) AS i;
    SELECT j.value FROM generate_series(0, 4, 1) AS j;
    SELECT 0;
    SELECT k.value FROM generate_series(1, 4, 1) AS k;
  9. Funções (documentação):

    SQLite não permite criar funções em SQL (apenas em caso de uso embedded na linguagem da aplicação). Outros SGBDs, como PostgreSQL, podem permitir a criação de scripts em linguagens procedurais (para o caso do PostgreSQL, a linguagem chama-se PL/pgSQL).

    O bloco de código abaixo é um exemplo de função SQL escrita para PostgreSQL. Ele não funcionará em SQLite, servindo apenas como curiosidade.

    -- Código para *PostgreSQL*, não para SQLite.
    
    CREATE FUNCTION minha_funcao(x INTEGER, y INTEGER) RETURNS INT AS
    $$
        SELECT x + y;
    $$ LANGUAGE SQL;
    
    -- Uma função é um bloco de código que realiza um processamento arbitrário
    -- conforme definido pela programadora ou pelo programador.
    -- Após a definição, pode-se executar a função quando se quiser, por meio
    -- de uma chamada de função.
    WITH v AS (SELECT minha_funcao(12, -34) AS z) -- Este é um exemplo de uma chamada de função.
    SELECT v.z,
           minha_funcao(1, 2) -- Este é outro.
    FROM v;
  10. Tipos de dados (documentação):

    SELECT 1 AS numero_inteiro;
    SELECT -1 AS outro_numero_inteiro;
    SELECT 1.23 AS numero_real;
    SELECT TRUE AS valor_logico; -- ou FALSE; só pode ser TRUE ou FALSE.
    SELECT "Texto aqui. Quebras de linha usam
    ou seja, isto estará
    na terceira linha." AS cadeia_caracteres;
  11. Entrada (documentação: CREATE TABLE; INSERT):

    SQL é uma linguagem para armazenamento e recuperação de dados. Assim, a linguagem não fornece recurso para entrada de dados via terminal. Ao invés de improvisar uma solução, o exemplo abaixo cria uma tabela para armazenar valores, insere uma entrada e lê os dados escritos.

    CREATE TABLE pessoa(
        nome TEXT,
        idade INTEGER
    );
    
    -- SELECT "Qual é o seu nome? ";
    -- SELECT "Quantos anos você tem? ";
    INSERT INTO pessoa(nome, idade) VALUES ("Seu Nome", 123);
    
    SELECT nome FROM pessoa WHERE (nome = "Seu Nome");
    SELECT idade FROM pessoa WHERE (nome = "Seu Nome");
    
    -- O operador || realiza uma operação chamada concatenação,
    -- que combina a segunda cadeira após a primeira.
    SELECT "Olá, " || pessoa.nome || "!", "Você tem " || pessoa.idade || " anos."
    FROM pessoa;

Parabéns! Você Já Pode Escrever Qualquer Programa em SQL

Embora seja possível, você não deve escrever programas inteiros usando SQL (a exceção são funções ou procedimentos em SGBDs que permitam scripts procedurais). Como uma ferramenta, use SQL para armazenar e recuperar dados. Use outra linguagem em conjunto para SQL para criar sua aplicação.

Contudo, o título da seção está tecnicamente correto.

Não acredita? Você pode encontrar a explicação na introdução à linguagem JavaScript.

Em resumo, aprender a sintaxe de uma linguagem não é suficiente para resolver problemas com ela. O aprendizado de lógica de programação e o desenvolvimento de habilidades de pensamento computacional são muito mais importantes que a sintaxe. De fato, quando se tem dúvidas sobre a sintaxe, basta consultar a documentação. Não é preciso decorá-la.

Após aprender uma primeira linguagem de programação, aprender outras linguagens (que adotem paradigmas semelhantes aos da primeira) é relativamente simples. Para constatar a afirmação, pode-se abrir uma nova janela em seu navegador e deixá-la lado a lado com esta. Em seguida, pode-se comparar os blocos de código escritos em SQLite (nesta janela) e em Python (na segunda janela).

Caso se deseje fazer comparações entre mais linguagens de programação, pode-se escolher:

Próximos Passos

Com o ambiente de desenvolvimento configurado, você pode continuar sua jornada de desenvolvimento de sistemas.

Para evitar repetições, recomendo a leitura da página sobre configurações de ambiente para JavaScript. Mesmo que você não tenha interesse na linguagem, muitas discussões são relevantes para quaisquer linguagens de programação. Além disso, você entenderá uma forma de criar páginas para a Internet e poderá criar conteúdo para seu navegador.

Até GDScript (para Godot Engine), os tópicos descrevem configurações de ambientes de desenvolvimento para algumas linguagens de programação. Após GDScript, o foco torna-se conceitos básicos para o aprendizado de programação.

  • Informática
  • Programação
  • Iniciante
  • Dev Env
  • Windows
  • Linux
  • SQL
  • Sqlite