SQLite Python: Inserindo Dados

Resumo : neste tutorial, você aprenderá como inserir linhas em uma tabela no banco de dados SQLite a partir de um programa Python usando o módulo sqlite3.

Para inserir linhas em uma tabela no banco de dados SQLite, você usa as seguintes etapas:

  1. Primeiro, conecte-se ao banco de dados SQLite criando um objeto Connection.
  2. Segundo, crie um Cursorobjeto chamando o método cursor do Connectionobjeto.
  3. Terceiro, execute uma instrução INSERT . Se quiser passar argumentos para a INSERTinstrução, use o ponto de interrogação (?) como espaço reservado para cada argumento.

SQLite Python – exemplo de inserção de linhas

Vamos inserir um novo projeto na projectstabela e algumas tarefas na taskstabela que criamos no tutorial criando tabelas a partir de um programa Python .

Banco de dados de exemplo Python SQLite

Primeiro, crie uma nova função para estabelecer uma conexão de banco de dados com um banco de dados SQLitte especificado pelo arquivo de banco de dados.

def create_connection(db_file):
    """ create a database connection to the SQLite database
        specified by db_file
    :param db_file: database file
    :return: Connection object or None
    """
    conn = None
    try:
        conn = sqlite3.connect(db_file)
    except Error as e:
        print(e)

    return connLinguagem de código:  Python  ( python )

A seguir, desenvolva uma função para inserir um novo projeto na projectstabela.

def create_project(conn, project):
    """
    Create a new project into the projects table
    :param conn:
    :param project:
    :return: project id
    """
    sql = ''' INSERT INTO projects(name,begin_date,end_date)
              VALUES(?,?,?) '''
    cur = conn.cursor()
    cur.execute(sql, project)
    conn.commit()
    return cur.lastrowidLinguagem de código:  Python  ( python )

Nesta função, utilizamos o   lastrowidatributo do Cursorobjeto para recuperar o id gerado.

Em seguida, desenvolva outra função para inserir linhas na taskstabela.

def create_task(conn, task):
    """
    Create a new task
    :param conn:
    :param task:
    :return:
    """

    sql = ''' INSERT INTO tasks(name,priority,status_id,project_id,begin_date,end_date)
              VALUES(?,?,?,?,?,?) '''
    cur = conn.cursor()
    cur.execute(sql, task)
    conn.commit()

    return cur.lastrowidLinguagem de código:  Python  ( python )

Depois disso, desenvolva a main()função que cria um novo projeto e duas tarefas associadas ao projeto.

def main():
    database = r"C:\sqlite\db\pythonsqlite.db"

    # create a database connection
    conn = create_connection(database)
    with conn:
        # create a new project
        project = ('Cool App with SQLite & Python', '2015-01-01', '2015-01-30');
        project_id = create_project(conn, project)

        # tasks
        task_1 = ('Analyze the requirements of the app', 1, 1, project_id, '2015-01-01', '2015-01-02')
        task_2 = ('Confirm with user about the top requirements', 1, 1, project_id, '2015-01-03', '2015-01-05')

        # create tasks
        create_task(conn, task_1)
        create_task(conn, task_2)Linguagem de código:  Python  ( python )

E chame a main()função:

if __name__ == '__main__':
    main()Linguagem de código:  Python  ( python )

Aqui está o programa completo:

import sqlite3
from sqlite3 import Error


def create_connection(db_file):
    """ create a database connection to the SQLite database
        specified by db_file
    :param db_file: database file
    :return: Connection object or None
    """
    conn = None
    try:
        conn = sqlite3.connect(db_file)
    except Error as e:
        print(e)

    return conn


def create_project(conn, project):
    """
    Create a new project into the projects table
    :param conn:
    :param project:
    :return: project id
    """
    sql = ''' INSERT INTO projects(name,begin_date,end_date)
              VALUES(?,?,?) '''
    cur = conn.cursor()
    cur.execute(sql, project)
    conn.commit()
    return cur.lastrowid


def create_task(conn, task):
    """
    Create a new task
    :param conn:
    :param task:
    :return:
    """

    sql = ''' INSERT INTO tasks(name,priority,status_id,project_id,begin_date,end_date)
              VALUES(?,?,?,?,?,?) '''
    cur = conn.cursor()
    cur.execute(sql, task)
    conn.commit()
    return cur.lastrowid


def main():
    database = r"C:\sqlite\db\pythonsqlite.db"

    # create a database connection
    conn = create_connection(database)
    with conn:
        # create a new project
        project = ('Cool App with SQLite & Python', '2015-01-01', '2015-01-30');
        project_id = create_project(conn, project)

        # tasks
        task_1 = ('Analyze the requirements of the app', 1, 1, project_id, '2015-01-01', '2015-01-02')
        task_2 = ('Confirm with user about the top requirements', 1, 1, project_id, '2015-01-03', '2015-01-05')

        # create tasks
        create_task(conn, task_1)
        create_task(conn, task_2)


if __name__ == '__main__':
    main()Linguagem de código:  Python  ( python )

Por fim, conecte-se ao banco de dados via shell sqlite3 e consulte os dados das tabelas projectse taskspara verificar se os dados foram inseridos com sucesso.

Use estes comandos para formatar a saída:

sqlite> .header on
sqlite> .mode columnLinguagem de código:  Sessão Shell  ( shell )

E use esta SELECTinstrução para consultar dados da projectstabela:

SELECT * FROM projects;Linguagem de código:  Sessão Shell  ( shell )

E use a seguinte SELECTinstrução para consultar dados da taskstabela:

SELECT * FROM tasks;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Neste tutorial, você aprendeu como inserir linhas em tabelas do banco de dados SQLite a partir de um programa Python.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *