Como utilizar o SQLite

Simples, Veloz e Seguro!


Como utilizar o SQLite

SQLite é uma biblioteca in-process que implementa um mecanismo de banco de dados SQL transacional independente, sem servidor e com configuração zero. O código para SQLite é de domínio público e, portanto, gratuito para uso para qualquer finalidade, comercial ou privada. SQLite é o banco de dados mais amplamente implantado no mundo, com mais aplicativos do que podemos contar, incluindo vários projetos de alto perfil.

Ao contrário da maioria dos outros bancos de dados SQL, o SQLite não tem um processo de servidor separado. O SQLite lê e grava diretamente em arquivos de disco comuns. Um banco de dados SQL completo com várias tabelas, índices, gatilhos e visualizações está contido em um único arquivo de disco. O formato do arquivo de banco de dados é multiplataforma - você pode copiar livremente um banco de dados entre sistemas de 32 e 64 bits ou entre as arquiteturas big-endian e little-endian.

Em resumo o SQLite faz jus ao seu slogan: Pequeno, Rápido e de Confiança. Escolha todos ou qualquer um dos três!(Small. Fast. Reliable. Choose any three.)

Instalação

Instalar é tão simples quanto o SQLite, basta usar o gerenciador de pacotes da sua distro e que com certeza haverá no repositório, exemplos:

emerge sqlite3 # Gentoo, Funtoo, ...
sudo apt install sqlite3 # Debian, Ubuntu, Mint, ...
sudo pacman -S sqlite3 # Arch, Manjaro, ...
sudo dnf install sqlite3 # Red Hat, CentOS, Fedora, ...

Utilização

Após instalado você pode obter mais informações através de documentos e comandos no seu computador, exemplos:

sqlite3 --help
man sqlite3

Para abrir/criar uma base de dados , basta rodar o comando:

sqlite3 nome-da-minha-base-de-dados.db

Se o arquivo não existir, o SQLite irá criá-lo automaticamente, após você criar pelo menos uma tabela. Se você não criar nenhuma tabela o arquivo não será criado a menos que você use o .save, mas cuidado, esse comando sobreescreve arquivos.

Assim que você roda esse comando você entra numa subshell para rodar seus comandos SQL . Exemplos de exibição:

user@host ~ $ sqlite3 nome-da-minha-base-de-dados.db
SQLite version 3.34.0 2020-12-01 16:14:00
Enter ".help" for usage hints.
sqlite> 

A maioria dos comandos do MySQL/MariaDB também funcionam no SQLite , mas possuem diversas exceções, algumas coisas são específicas no SQLite, exemplo:

  • Criar uma tabela básica com 4 campos: id(autoincrement, único e não nulo), nome(string de máximo 64 caracteres) e diahora(do tipo datetime e preenchimento padrão):
CREATE TABLE tabela ( id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE NOT NULL, nome VARCHAR (64), diahora DATETIME DEFAULT (CURRENT_TIMESTAMP) );
  • Inserir dados na tabela:
INSERT INTO tabela ( nome ) VALUES ( "Marcos Oliveira" );
  • Selecionar os dados da tabela
SELECT * FROM tabela

Exemplo de saída:

1|Marcos Oliveira|2021-02-19 05:00:41

E dentre diversos outros comandos SQL como: UPDATE, DELETE, … Como eu havia dito alguns casos os comandos serão diferentes, note no exemplo CREATE acima, mas a maioria segue a regra das tabelas relacionais da linguagem SQL , por exemplo:

  • No MySQL para saber a estrutura de uma tabela, você roda o comando: DESCRIBE tabela; já o SQLite, para obter essa mesma informação, use assim:
.schem tabela

Ou para todas as tabelas:

.schema

  • Para sair do prompt do SQLite , basta rodar o comando:
.exit
  • Para obter uma ajuda rápida, basta tecla:
.help
  • Para alterar o separador da saída. Notamos que a saída dos dados são separados por uma barra vertical(|), mas se quisermos outros separadores, por exemplo: vírgula precedido de espaço, basta usar o comando .separator:
sqlite> .separator ", "
sqlite> SELECT * FROM tabela;
1, Marcos Oliveira, 2021-02-19 05:00:41
  • Se quiser a saída das strings entre aspas simples:
sqlite> .mode quote
sqlite> SELECT * FROM tabela;
1,'Marcos Oliveira','2021-02-19 05:00:41'
  • Saídas com símbolo de igualdade:
sqlite> SELECT * FROM tabela;
     id = 1
   nome = Marcos Oliveira
diahora = 2021-02-19 05:00:41
  • Saídas em colunas:
sqlite> .mode column
sqlite> SELECT * FROM tabela;
id  nome             diahora
--  ---------------  -------------------
1   Marcos Oliveira  2021-02-19 05:00:41
  • ALterando o espaçamento das colunas:
sqlite> .width 12 -6
sqlite> SELECT * FROM tabela;
id                       nome  diahora            
------------  ---------------  -------------------
1             Marcos Oliveira  2021-02-19 05:00:41
  • Saídas no estilo tabelas para MarkDown
sqlite> .mode markdown
sqlite> SELECT * FROM tabela;
| id |      nome       |       diahora       |
|----|-----------------|---------------------|
| 1  | Marcos Oliveira | 2021-02-19 05:00:41 |
  • Para exibir todas as tabelas do sua base de dados:
sqlite> .tables
tabela
sqlite> 
  • Exibir o caminho da sua base de dados:
sqlite> .databases
main: /home/marcos/nome-da-minha-base-de-dados.db r/w
sqlite>

SQlite Studio

Existe uma interface gráfica para você manipular suas bases de dados do do SQLite que é o SQLite Studio(https://sqlitestudio.pl/) e é disponível para diversos sistemas operacionais: Linux, Windows e macOS.

No Linux você pode usar o app-get, por exemplo, para instalá-lo:

app-get --update
app-get sqlitestudio

Você pode importar, exportar, criar,… bases de dados e tabelas e ele é bem intuitivo. Mostramos o uso dele no Curso de C++ Moderno Avançado onde criamos aplicativos CLI com acesso ao banco de dados tanto SQlite quanto MySQL/MariaDB e no Curso de Qt Moderno com C++ para Linux e Windows criamos dois aplicativos com acesso ao SQLite, para mais informações clique aqui.

Segue abaixo uma caputura de tela após importarmos a base de dados de exemplo(nome-da-minha-base-de-dados.db) que utilizamos aqui:

SQLite Studio running


Veja também

20 Livros sobre Linguagem SQL que você deveria ler


Até mais!


sqlite sql


Compartilhe


Nosso canal no Youtube

Inscreva-se


Marcos Oliveira

Marcos Oliveira

Desenvolvedor de software
https://github.com/terroo


Crie Aplicativos Gráficos para Linux e Windows com C++

Aprenda C++ Moderno e crie Games, Programas CLI, GUI e TUI de forma fácil.

Saiba Mais

Receba as novidades no seu e-mail!

Após cadastro e confirmação do e-mail, enviaremos semanalmente resumos e também sempre que houver novidades por aqui para que você mantenha-se atualizado!