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
nomeoucidade. 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)
- Descarrega o DB Browser for SQLite do site oficial, sqlitebrowser.org. É gratuito e existe para Windows, macOS e Linux.
- Abre o programa e cria uma nova base de dados chamada
loja.dbnuma pasta fácil de encontrar. - Se abrir uma janela para criar tabelas com botões, fecha-a. Vais escrever SQL.
- Procura o separador para executar SQL. É aí que colas os comandos e carregas no botão de executar.
- 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 columnA 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-18No 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
- Instala o DB Browser ou abre o sqlite3 e cria o ficheiro
loja.db. - Cria a tabela
clientese insere os seis clientes desta aula. - Executa
SELECT nome, cidade FROM clientes;e confirma que vês só duas colunas. - Fecha o programa (no DB Browser, grava as alterações), volta a abrir
loja.dbe repete oSELECT * 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.