Tudo sobre Tecnologia da Informação

Dicas com SQLite via Linha de Comando

O SQLite tem um banco de dados completo num mesmo arquivo, mais simples que bancos SQL como o MySQL ou o PostgreSQL, já que o SQLite não precisa subir um servidor, sendo utilizado em apenas um arquivo com extensão .db, .sqlite ou outra equivalente.

No SQLite, o banco em si é o próprio arquivo, e nele temos as tabelas do banco. Podemos fazer os comandos básicos de CRUD no SQLite (como o select, insert, delete e update), além de alterações e exclusões de tabelas, e uso de chaves estrangeiras e joins. Também é possível criar e manipular views e triggers.

Para criar um novo arquivo de banco de dados SQLite, digite isso:


sqlite3 sistema.db3

Para abrir o arquivo dentro do SQLite, faça assim:


.open sistema.db3

Depois, para criar tabelas via linha de comando, com esse arquivo aberto, dentro do SQLite, digite o código normalmente, por exemplo:


create table contato (
    id integer not null primary key autoincrement, -- No SQLite a declaração de primary key e autoincrement devem estar na mesma linha, e autoincrement não tem underline (_)
    nome varchar(100) not null,
    email varchar(70) unique not null,
    mensagem text not null
);

Os dados que podem ser definidos nas colunas do SQLite basicamente são integer, real, char e varchar (com a quantidade de caracteres máximo), text, date, time, datetime, boolean e tipos blob. As constraints como null, if exists (ambos também com not, unique, unsigned e autoincrement (nesse caso, sem underline), podem ser usadas também.

PS: Para limpar a tela do SQLite, basta digitar .system cls ou .system clear (dependendo se você está no Windows ou em sistema Unix). Também dá pra usar outros comandos do sistema.

Também podemos usar códigos insert, update e delete da mesma forma, no entanto os inserts pode ser colocados num arquivo SQL, por exemplo:


-- Salve um arquivo com esse código
insert into contato (nome, email, mensagem) values
('Fulano', 'fulano@gmail.com', 'Exemplo de Mensagem'),
('Beltrano', 'beltrano@gmail.com', 'Exemplo de Mensagem'),
('Sicrano', 'sicrano@gmail.com', 'Exemplo de Mensagem');

E depois, importar pra base de dados criada assim:


sqlite3 sistema.db3 < arquivo.sql

Depois usamos o select normalmente, podemos fazer diretamente dentro do SQLite, ou usando o nome do arquivo assim:


sqlite3 sistema.db3 "select * from contato"

Podemos usar chaves estrangeiras em SQLite também, mas estas não são habilitadas por padrão, nesse caso devemos colocar esse comando dentro do SQLite:


pragma foreign_keys = on;

PS: Não é possível adicionar chaves estrangeiras usando alter table, estas têm que ser criadas já na criação da tabela, com o create table.

Para exibir os nomes das colunas, dentro do SQLite, digite isso:


.header on

Para escrever a saída de dados num arquivo, dentro do SQLite, digite isso:


.output resultado.txt

select * from contato;

Para fazer um backup dos dados, digite isso:


sqlite3 sistema.db3 .dump > backup.sql

Para fazer um banco de dados SQLite com mais conteúdos, importe esse arquivo clicando aqui e salve no banco de dados com o comando sqlite3 sistema.db3 < cursos.sql. Ele tem as tabelas cursos e gafanhotos com chaves estrangeiras.

Saiba também que: