Introdução

Parte 8

Bancos de dados: inspecione o estado antes de escrever

Escolher o alvo, ver estrutura, inspecionar dados, mudar uma coisa e verificar continua sendo o ritmo seguro.

Banco de dados é estado estruturado

Um arquivo mostra seu conteúdo diretamente. Um banco de dados expõe o estado por meio de um mecanismo: tabelas ou coleções, registros, índices e consultas. Não comece escrevendo. Primeiro confirme o driver e o banco selecionado e examine a estrutura existente.

Vale o mesmo princípio dos arquivos de configuração: trabalhe com o objeto lógico — tabela, linha, chave ou documento — em vez de pensar em como os dados são armazenados fisicamente.

`db` compartilha vocabulário, mas o driver continua importante

db espelha operações comuns; os comandos diretos preservam o modelo específico de cada engine.

install md db sqlite
db
db sqlite
sqlite

SQLite é o lugar mais seguro para aprender

É um único arquivo local sem rede ou senha. Crie a tabela de prática e confirme com -t.

cd lil-playground
md data
sqlite -c data/notes.sqlite -f
sqlite : CREATE TABLE IF NOT EXISTS notes (id INTEGER PRIMARY KEY, title TEXT NOT NULL, status TEXT NOT NULL)
sqlite -t

Primeiro estrutura, depois linhas

-s mostra campos/tipos; -n mostra uma prévia. Tabela vazia também é informação útil.

sqlite -s notes
sqlite -n notes 10

Escritas direcionadas podem usar JSON

-a e -w recebem JSON depois de :. Verifique após cada escrita e trate delete como ação deliberada.

sqlite -a notes : {"title":"First terminal note","status":"draft"}
sqlite -a notes : {"title":"Archive project","status":"done"}
sqlite -n notes 10
sqlite -w notes title "First terminal note" : {"status":"reviewed"}
sqlite -f notes reviewed 20

SQL nativo continua disponível

Agregações e queries específicas pertencem naturalmente à forma nativa com :.

sqlite : SELECT status, COUNT(*) AS count FROM notes GROUP BY status

Exportação e cópia de restauração têm finalidades diferentes

A exportação gera dados portáveis; a cópia de restauração preserva esquema e dados para recuperação. Teste a restauração antes da emergência.

sqlite -o notes -j data/notes.json -f
sqlite dump data/notes.sql -f
stat data/notes.sql

Bancos remotos acrescentam credenciais e rede

Cada engine tem seu modelo de conexão. Não coloque senhas reais em scripts reutilizáveis ou públicos.

db mysql
mysql -c localhost app shop
postgresql -c localhost app shop

Guarde isto como script

database-checkpoint.lil abre o SQLite de prática, inspeciona a tabela e cria uma cópia de segurança sem automatizar escritas de negócio.

#lil
@install md sqlite
cd lil-playground
md data
sqlite -c data/notes.sqlite -f
sqlite : CREATE TABLE IF NOT EXISTS notes (id INTEGER PRIMARY KEY, title TEXT NOT NULL, status TEXT NOT NULL)
sqlite -t
sqlite -n notes 10
sqlite dump data/notes.sql -f