How To Install and Use SQLite on Ubuntu 20.04

O autor selecionou o Free and Open Source Fund para receber uma doação como parte do programa Write for DOnations.

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:

Output
3.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:

Output
SQLite 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:

    Output
    Error: 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:

    Output
    1|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:

    Output
    1|Sammy|Greenland Shark|427

    Vamos ver mais de perto este comando.

    1. Primeiro, nós SELECT todos (*) os valores da nossa base de dados, sharks.
    2. Então olhamos para todos id valores.
    3. Então retornamos todas as entradas da tabela onde id é igual a 1.

    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;
    Output
    1|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:

    Output
    1|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 ids 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:

    Output
    1|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:

    Output
    1|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.

    Deixe uma resposta

    O seu endereço de email não será publicado.