O autor selecionou o Free and Open Source Fund para receber uma doação como parte do programa Write for DOnations.
- Introduction
- Prerequisites
- Passo 1 – Instalando o SQLite no Ubuntu 20.04
- Passo 2 – Criar um banco de dados SQLite
- Passo 3 – Criando uma Tabela SQLite
- Inserindo valores em tabelas
- Passo 4 – Tabelas de Leitura no SQLite
- Passo 5 – Atualizando Tabelas no SQLite
- Adicionando Colunas às Tabelas SQLite
- Atualizando Valores em Tabelas SQLite
- Passo 6 – Apagar Informações no SQLite
- Passo 7 – Juntando Informações no SQLite
- Conclusão
Introduction
SQLite é um sistema de gerenciamento de banco de dados gratuito e multiplataforma. É popular por sua eficiência e capacidade de interface com muitas linguagens de programação diferentes.
Neste tutorial você instalará SQLite no Ubuntu 20.04. Você então criará um banco de dados, lerá dados dele, inserirá itens, excluirá itens e juntará itens de tabelas separadas.
Note: Este tutorial inclui instruções práticas para instalar e usar o SQLite. Ele não cobre questões conceituais maiores e preocupações de produção, tais como quando se deve, ou não, considerar o uso de um banco de dados SQLite. Para uma excelente visão geral de bancos de dados relacionais populares e como eles se comparam, veja nosso artigo, SQLite vs MySQL vs PostgreSQL: A Comparison Of Relational Database Management Systems.
Adicionalmente, muitas linguagens mantêm integrações com SQLite. Para instruções sobre como usar SQLite dentro do seu código Python, confira nosso tutorial, How To Use the sqlite3
Module in Python 3.
Prerequisites
Para completar este tutorial, você precisará:
- Uma máquina local ou servidor rodando Ubuntu 20.04. Para configurar um servidor, incluindo um usuário não-root sudo e um firewall, você pode criar um DigitalOcean Droplet rodando Ubuntu 20.04 e então seguir nosso Guia de Configuração Inicial do Servidor.
Passo 1 – Instalando o SQLite no Ubuntu 20.04
Para instalar a interface de linha de comando SQLite no Ubuntu, primeiro atualize sua lista de pacotes:
- sudo apt update
Agora instale SQLite:
- sudo apt install sqlite3
Para verificar a instalação, verifique a versão do software:
- sqlite --version
Receberá uma saída como esta:
Output3.31.1 2020-01-27 19:55:54 3bfa9cc97da10598521b342961df8f5f68c7388fa117345eeb516eaa837balt1
Com SQLite instalado, agora você está pronto para criar uma nova base de dados.
Passo 2 – Criar um banco de dados SQLite
Neste passo você irá criar um banco de dados contendo diferentes tubarões e seus atributos. Para criar o banco de dados, abra seu terminal e execute este sqlite3
comando:
- sqlite3 sharks.db
Isto criará um novo banco de dados chamado sharks
. Se o arquivo sharks.db
já existir, SQLite irá abrir uma conexão com ele; se ele não existir, SQLite irá criá-lo.
Você receberá uma saída como esta:
OutputSQLite version 3.31.1 2020-01-27 19:55:54Enter ".help" for usage hints.
Seguir isto, seu prompt irá mudar. Um novo prefixo, sqlite>
, agora aparece:
Com o seu banco de dados Shark criado, você agora vai criar uma nova tabela e preenchê-la com dados.
Passo 3 – Criando uma Tabela SQLite
Bancos de dados SQLite estão organizados em tabelas. As tabelas armazenam informações. Para melhor visualizar uma tabela, pode-se imaginar linhas e colunas.
O resto deste tutorial seguirá uma convenção comum para entrada de comandos SQLite. Os comandos SQLite são em maiúsculas e as informações do usuário são em minúsculas. As linhas devem terminar com ponto-e-vírgula.
Agora vamos criar uma tabela e algumas colunas para vários dados:
- Um ID
- O nome do tubarão
- O tipo do tubarão
- O comprimento médio do tubarão (em centímetros)
Utilizar o seguinte comando para criar a tabela:
- CREATE TABLE sharks(id integer NOT NULL, name text NOT NULL, sharktype text NOT NULL, length integer NOT NULL);
Utilizar NOT NULL
torna esse campo obrigatório. Discutiremos NOT NULL
com mais detalhes na próxima seção.
Após criar a tabela, um prompt vazio retornará. Agora vamos inserir alguns valores nela.
Inserindo valores em tabelas
Em SQLite, o comando para inserir valores em uma tabela segue esta forma geral:
- INSERT INTO tablename VALUES(values go here);
Onde tablename
é o nome da sua tabela, e values
vai dentro de parênteses.
Inserir agora três linhas de VALUES
na sua sharks
tabela:
- INSERT INTO sharks VALUES (1, "Sammy", "Greenland Shark", 427);
- INSERT INTO sharks VALUES (2, "Alyoshka", "Great White Shark", 600);
- INSERT INTO sharks VALUES (3, "Himari", "Megaladon", 1800);
Porque você especificou anteriormente NOT NULL
para cada uma das variáveis da sua tabela, você deve inserir um valor para cada uma.
Por exemplo, tente adicionar outro tubarão sem definir o seu comprimento:
- INSERT INTO sharks VALUES (4, "Faiza", "Hammerhead Shark");
Receberá este erro:
OutputError: table sharks has 4 columns but 3 values were supplied
Neste passo você criou uma tabela e inseriu valores na mesma. No próximo passo você vai ler da sua tabela de banco de dados.
Passo 4 – Tabelas de Leitura no SQLite
Neste passo, vamos focar nos métodos mais básicos de leitura de dados de uma tabela. Reconheça que o SQLite fornece métodos mais específicos para a visualização de dados em tabelas.
Para visualizar sua tabela com todos os valores inseridos, use SELECT
:
- SELECT * FROM sharks;
Você verá as entradas inseridas anteriormente:
Output1|Sammy|Greenland Shark|4272|Alyoshka|Great White Shark|6003|Himari|Megaladon|1800
Para ver um registo baseado no seu id
(os valores que definimos manualmente), adicione o comando WHERE
à sua consulta:
- SELECT * FROM sharks WHERE id IS 1;
Esta irá retornar o tubarão cujo id
é igual a 1
:
Output1|Sammy|Greenland Shark|427
Vamos ver mais de perto este comando.
- Primeiro, nós
SELECT
todos (*
) os valores da nossa base de dados,sharks
. - Então olhamos para todos
id
valores. - Então retornamos todas as entradas da tabela onde
id
é igual a1
.
Até agora você criou uma tabela, inseriu dados nela, e consultou os dados guardados. Agora você irá atualizar a tabela existente.
Passo 5 – Atualizando Tabelas no SQLite
Nas duas seções seguintes você irá primeiro adicionar uma nova coluna na sua tabela existente e então atualizar os valores existentes na tabela.
Adicionando Colunas às Tabelas SQLite
SQLite permite que você altere sua tabela usando o comando ALTER TABLE
. Isto significa que você pode criar novas linhas e colunas, ou modificar linhas e colunas existentes.
Utilizar ALTER TABLE
para criar uma nova coluna. Esta nova coluna irá acompanhar a idade de cada tubarão em anos:
- ALTER TABLE sharks ADD COLUMN age integer;
Você agora tem uma quinta coluna, age
.
Atualizando Valores em Tabelas SQLite
Usando o comando UPDATE
, adicione novos valores age
para cada um dos seus tubarões:
- UPDATE sharks SET age = 272 WHERE id=1;
- UPDATE sharks SET age = 70 WHERE id=2;
- UPDATE sharks SET age = 40 WHERE id=3;
Output1|Sammy|Greenland Shark|427|2722|Alyoshka|Great White Shark|600|703|Himari|Megaladon|1800|40
Neste passo você alterou a composição da sua tabela e então atualizou os valores dentro da tabela. No próximo passo você irá apagar informações de uma tabela.
Passo 6 – Apagar Informações no SQLite
Neste passo você irá apagar as entradas da sua tabela com base na avaliação de um argumento.
No seguinte comando você está consultando seu banco de dados e solicitando que ele apague todos os tubarões da sua tabela sharks
cuja idade seja inferior a 200:
- DELETE FROM sharks WHERE age <= 200;
Digitação SELECT * FROM sharks;
irá verificar que Alyoshka
e Himari
, cada um com menos de 200 anos de idade, foram apagados. Apenas Sammy
o tubarão da Groenlândia permanece:
Output1|Sammy|Greenland Shark|427|272
Passo 7 – Juntando Informações no SQLite
Vamos imaginar que tínhamos duas tabelas: a nossa atual sharks
tabela e uma endangered
tabela. Agora e se a tabela endangered
tivesse um valor id
que mapeasse para os id
s na sua tabela sharks
, e também tivesse um valor status
que indicasse o estado de conservação de cada tubarão?
Se você quisesse consultar dados de ambas as tabelas, você poderia usar um dos quatro comandos de junção do SQLite:
INNER JOIN
OUTER JOIN
LEFT JOIN
Vamos criar essa segunda tabela e depois usar INNER JOIN
para juntar alguns dados.
Primeiro, crie a sua endangered
tabela:
- CREATE TABLE endangered (id integer NOT NULL, status text NOT NULL);
- INSERT INTO endangered VALUES (1, "near threatened");
Agora junte as suas tabelas:
- SELECT * FROM sharks INNER JOIN endangered on sharks.id = endangered.id;`
A sua saída terá o seguinte aspecto:
Output1|Sammy|Greenland Shark|427|272|1|near threatened
Note que a saída também inclui o valor id
de endangered
. Você pode especificar o output desejado com um comando mais explícito:
- SELECT sharks.id, sharks.name, sharks.sharktype, sharks.length, sharks.age, endangered.status FROM sharks INNER JOIN endangered on sharks.id = endangered.id;
Desta vez o output exclui o segundo id
valor:
Output1|Sammy|Greenland Shark|427|272|near threatened
Você agora juntou com sucesso informações de várias tabelas.
Conclusão
SQLite é uma ferramenta útil para gerenciamento de banco de dados. Pode-se criar rapidamente uma base de dados e manipulá-la com vários comandos. Seguindo este tutorial, você agora tem um entendimento básico do SQLite e está preparado para mergulhar mais profundamente neste sistema de gerenciamento de banco de dados.
Para uma excelente visão geral dos sistemas de bancos de dados relacionais e como eles se comparam, confira nosso artigo, SQLite vs MySQL vs PostgreSQL: A Comparison Of Relational Database Management Systems.
Adicionalmente, muitas linguagens mantêm integrações com o SQLite. Para instruções sobre como usar SQLite dentro do seu código Python, confira nosso tutorial, How To Use the sqlite3
Module in Python 3.