Imagem de destaque do blog justcode.com.br.

Como utilizar Python com o banco de dados SQLite3

Hoje veremos como utilizar a linguagem de programação Python com o banco de dados SQLite3.

SQLite3

O SQLite é um banco de dados leve, autônomo e de código aberto que não requer um servidor para funcionar.

Ele é amplamente utilizado em aplicativos móveis, navegadores da web e outros sistemas de software devido à sua simplicidade, portabilidade e facilidade de uso.

Neste artigo, vamos explorar os conceitos fundamentais do SQLite de uma maneira acessível para quem está começando.

O que é o SQLite?

O SQLite é um banco de dados relacional que armazena dados em um arquivo de banco de dados, em vez de em um servidor de banco de dados separado.

Isso o torna uma escolha popular para aplicativos que precisam de um banco de dados embutido, como aplicativos móveis, navegadores da web e software de desktop.

Principais Conceitos do SQLite

1. Arquivo de Banco de Dados: No SQLite, os dados são armazenados em um único arquivo de banco de dados. Esse arquivo contém todas as tabelas, índices, visões e outros objetos de banco de dados.

2. Tabelas As tabelas são estruturas fundamentais do SQLite que armazenam dados de forma organizada. Cada tabela é composta por colunas (campos) e linhas (registros). As colunas representam os diferentes tipos de informações que serão armazenadas, enquanto as linhas representam os registros individuais.

3. Consultas SQL: O SQLite suporta a linguagem SQL (Structured Query Language) para realizar operações de consulta e manipulação de dados. Com SQL, você pode realizar consultas para recuperar dados de uma tabela, inserir novos dados, atualizar registros existentes e excluir dados.

4. Transações: O SQLite suporta transações ACID (Atomicidade, Consistência, Isolamento, Durabilidade), o que significa que as operações de banco de dados são executadas de forma segura e confiável, mesmo em casos de falha.

5. Índices: Os índices no SQLite são estruturas de dados usadas para acelerar a recuperação de dados de uma tabela. Eles são criados em colunas específicas e ajudam o SQLite a encontrar registros com base em critérios de pesquisa de maneira mais eficiente.


Posts relacionados:


    Exemplo de CRUD

    # -*- coding: utf-8 -*-
    '''CRUD - Python - SQLite3.'''
    
    import pathlib
    import sqlite3
    
    BASE_DIR = pathlib.Path(__file__).resolve().parent
    
    # Conexão (commit, rollback, close, etc).
    con = sqlite3.connect(':memory:')
    # con = sqlite3.connect(BASE_DIR.joinpath('db.sqlite3'))
    
    # Cursor (DML, DDL, etc).
    cur = con.cursor()
    
    cur.execute('DROP TABLE IF EXISTS table_name;')
    
    table_name = '''CREATE TABLE IF NOT EXISTS table_name (
    id    INTEGER NOT NULL PRIMARY KEY,
    name  VARCHAR(32),
    age   SMALLINT
    );'''
    cur.execute(table_name)
    
    # Create.
    print('[!] Create [!]')
    query = 'INSERT INTO table_name (name, age) VALUES (?, ?);'
    cur.execute(
        query,
        ('renato', 35),
    )
    
    # Bulk create.
    cur.executemany(
        query,
        (
            ('maria', 25),
            ('sandy', 19),
        )
    )
    
    # Read.
    print('\n[!] Read [!]')
    cur.execute('SELECT * FROM table_name;')
    print(cur.fetchall())
    
    # Limit.
    query = 'SELECT * FROM table_name LIMIT ?;'
    cur.execute(
        query,
        (3,),
    )
    print(cur.fetchall())
    
    # Where.
    query = 'SELECT * FROM table_name WHERE id = ?;'
    cur.execute(
        query,
        (1,),
    )
    print(cur.fetchone())
    
    query = 'SELECT * FROM table_name WHERE age > ?;'
    cur.execute(
        query,
        (20,),
    )
    print(cur.fetchall())
    
    # Update.
    print('\n[!] Update [!]')
    query = 'SELECT * FROM table_name WHERE id = ?;'
    cur.execute(
        query,
        (1,),
    )
    print(cur.fetchone())
    
    query = 'UPDATE table_name SET name = ? WHERE id = ?;'
    cur.execute(
        query,
        ('joão', 1),
    )
    
    query = 'SELECT * FROM table_name WHERE id = ?;'
    cur.execute(
        query,
        (1,),
    )
    print(cur.fetchone())
    
    # Delete.
    print('\n[!] Delete [!]')
    query = 'SELECT * FROM table_name WHERE id = ?;'
    cur.execute(
        query,
        (1,),
    )
    print(cur.fetchone())
    
    query = 'DELETE FROM table_name WHERE id = ?;'
    cur.execute(
        query,
        (1,),
    )
    
    query = 'SELECT * FROM table_name WHERE id = ?;'
    cur.execute(
        query,
        (1,),
    )
    print(cur.fetchone())
    
    con.close()
    

    Conclusão

    O SQLite3 é uma excelente escolha para projetos que precisam de um banco de dados leve e embutido.

    Compreender os conceitos básicos, como arquivo de banco de dados, tabelas, consultas SQL e transações, pode ajudá-lo a utilizar o SQLite3 de forma eficaz em seus projetos de desenvolvimento.