39 € por curso49,90 €/mês por todos os 3.000 cursos
Tudo.guru
Voltar ao caminho

Aula de prévia

O que é uma base de dados e a tua primeira tabela

25 minutos · SQL básico do zero: consulta dados de uma loja com SQLite

No fim desta aula vais ter o SQLite a funcionar no teu computador, um ficheiro loja.db criado por ti e uma tabela com seis clientes que consultas com uma linha de SQL.

Porque vale a pena aprender SQL

Uma folha de cálculo serve bem até ao dia em que tens milhares de linhas, várias folhas que se referem umas às outras e perguntas que exigem filtros encadeados. Uma base de dados guarda a informação de forma arrumada e deixa-te fazer perguntas precisas, como "quanto faturei em junho?", numa só instrução.

SQL é a linguagem dessas perguntas. O que aprendes aqui com o SQLite serve, com pequenas diferenças, noutros sistemas muito usados, como PostgreSQL ou MySQL. O SQLite tem uma vantagem para começar: é gratuito, não precisa de servidor e a base de dados inteira fica num único ficheiro que podes copiar ou apagar.

Os quatro conceitos que precisas

  • Base de dados: o ficheiro loja.db, que vai conter tudo.
  • Tabela: um conjunto de dados sobre uma coisa só, por exemplo clientes.
  • Coluna: uma característica, como nome ou cidade. Cada coluna tem um tipo (texto, número inteiro, número decimal).
  • Linha (ou registo): um cliente concreto, com o valor de cada coluna.

Cada tabela deve ter uma chave primária: uma coluna, normalmente id, cujo valor nunca se repete. É assim que distingues duas clientes chamadas Ana Costa.

Instalar ou abrir o SQLite

Tens dois caminhos. Escolhe um e usa-o no curso todo.

Opção A: DB Browser for SQLite (com janelas)

  1. Descarrega o DB Browser for SQLite do site oficial, sqlitebrowser.org. É gratuito e existe para Windows, macOS e Linux.
  2. Abre o programa e cria uma nova base de dados chamada loja.db numa pasta fácil de encontrar.
  3. Se abrir uma janela para criar tabelas com botões, fecha-a. Vais escrever SQL.
  4. Procura o separador para executar SQL. É aí que colas os comandos e carregas no botão de executar.
  5. As alterações só ficam no ficheiro quando usas a opção de gravar alterações.

Opção B: sqlite3 na linha de comandos

No macOS e em muitas distribuições Linux o sqlite3 já vem instalado. No Windows, descarrega as ferramentas de linha de comandos em sqlite.org. Abre o terminal na tua pasta de trabalho e escreve:

sqlite3 loja.db
.headers on
.mode column

A primeira linha cria (ou abre) o ficheiro. As outras duas mostram os resultados em colunas com os nomes por cima. Para sair, escreve .quit.

Criar a tabela clientes

Cola e executa:

CREATE TABLE clientes (
  id INTEGER PRIMARY KEY,
  nome TEXT NOT NULL,
  cidade TEXT,
  data_registo TEXT
);

INTEGER é número inteiro, TEXT é texto e NOT NULL obriga a preencher a coluna. As datas ficam como texto no formato AAAA-MM-DD, porque assim ordenam bem.

Inserir os primeiros clientes

Os nomes são inventados, só para praticar:

INSERT INTO clientes (id, nome, cidade, data_registo) VALUES
  (1, 'Ana Costa', 'Lisboa', '2024-01-15'),
  (2, 'Bruno Silva', 'Porto', '2024-02-03'),
  (3, 'Carla Mendes', 'Braga', '2024-03-10'),
  (4, 'Diogo Ferreira', 'Lisboa', '2024-03-22'),
  (5, 'Eva Santos', 'Faro', '2024-04-05'),
  (6, 'Filipe Rocha', 'Porto', '2024-05-18');

Ver o que guardaste

SELECT * FROM clientes;

O asterisco quer dizer "todas as colunas". O resultado:

id  nome            cidade  data_registo
1   Ana Costa       Lisboa  2024-01-15
2   Bruno Silva     Porto   2024-02-03
3   Carla Mendes    Braga   2024-03-10
4   Diogo Ferreira  Lisboa  2024-03-22
5   Eva Santos      Faro    2024-04-05
6   Filipe Rocha    Porto   2024-05-18

No sqlite3 aparece ainda uma linha de tracinhos por baixo dos nomes das colunas. No DB Browser vês uma grelha. O conteúdo é o mesmo.

Erros comuns

  • Esquecer o ponto e vírgula. No sqlite3 o comando fica à espera e aparece um prompt de continuação. Escreve ; e carrega em Enter.
  • Aspas erradas. Texto vai entre plicas: 'Lisboa'. Aspas duplas servem para nomes de colunas e podem dar resultados estranhos.
  • Correr o INSERT duas vezes. Aparece UNIQUE constraint failed: clientes.id. É a chave primária a proteger-te de duplicados. Não precisas de fazer nada: os dados já lá estão.

Exercício

  1. Instala o DB Browser ou abre o sqlite3 e cria o ficheiro loja.db.
  2. Cria a tabela clientes e insere os seis clientes desta aula.
  3. Executa SELECT nome, cidade FROM clientes; e confirma que vês só duas colunas.
  4. Fecha o programa (no DB Browser, grava as alterações), volta a abrir loja.db e repete o SELECT * FROM clientes;.

Como sabes que correu bem: depois de fechar e reabrir o ficheiro, a consulta devolve exatamente seis linhas, da Ana Costa ao Filipe Rocha.

O restante fica na tua biblioteca.

Cria a conta, confirma o email e escolhe entre comprar este caminho ou aderir ao Passe Total.