SQLite Python: consultando dados

Resumo : neste tutorial mostraremos passo a passo como consultar dados em SQLite a partir de Python.

Para consultar dados em um banco de dados SQLite do Python, siga estas etapas:

  1. Primeiro, estabeleça uma conexão com o banco de dados SQLite criando um Connectionobjeto.
  2. A seguir, crie um Cursorobjeto usando o método cursor do Connectionobjeto.
  3. Em seguida, execute uma  SELECTinstrução.
  4. Depois disso, chame o fetchall()método do objeto cursor para buscar os dados.
  5. Por fim, faça um loop no cursor e processe cada linha individualmente.

No exemplo a seguir usaremos a taskstabela criada no tutorial de criação de tabelas .

Primeiro, crie uma conexão com um banco de dados SQLite especificado por um arquivo:

def create_connection(db_file):
    """ create a database connection to the SQLite database
        specified by the 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 )

Esta função seleciona todas as linhas da tabela de tarefas e exibe os dados:

def select_all_tasks(conn):
    """
    Query all rows in the tasks table
    :param conn: the Connection object
    :return:
    """
    cur = conn.cursor()
    cur.execute("SELECT * FROM tasks")

    rows = cur.fetchall()

    for row in rows:
        print(row)Linguagem de código:  Python  ( python )

Na select_all_tasks()função, criamos um cursor, executamos a SELECTinstrução e chamamos   fetchall()para buscar todas as tarefas da taskstabela.

Esta função consulta tarefas por prioridade:

def select_task_by_priority(conn, priority):
    """
    Query tasks by priority
    :param conn: the Connection object
    :param priority:
    :return:
    """
    cur = conn.cursor()
    cur.execute("SELECT * FROM tasks WHERE priority=?", (priority,))

    rows = cur.fetchall()

    for row in rows:
        print(row)Linguagem de código:  Python  ( python )

Na select_task_by_priority()função, selecionamos as tarefas com base em uma prioridade específica. O ponto de interrogação ( ?) na consulta é o espaço reservado. Quando o cursor executou a SELECTinstrução, substituiu o ponto de interrogação ( ?) pelo priorityargumento. O   fetchall()método buscou todas as tarefas correspondentes pela prioridade.

Esta função main() cria uma conexão com o banco de dados  C:\sqlite\db\pythonsqlite.dbe chama as funções para consultar todas as linhas da taskstabela e selecionar tarefas com prioridade 1:

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

    # create a database connection
    conn = create_connection(database)
    with conn:
        print("1. Query task by priority:")
        select_task_by_priority(conn, 1)

        print("2. Query all tasks")
        select_all_tasks(conn)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 the 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 select_all_tasks(conn):
    """
    Query all rows in the tasks table
    :param conn: the Connection object
    :return:
    """
    cur = conn.cursor()
    cur.execute("SELECT * FROM tasks")

    rows = cur.fetchall()

    for row in rows:
        print(row)


def select_task_by_priority(conn, priority):
    """
    Query tasks by priority
    :param conn: the Connection object
    :param priority:
    :return:
    """
    cur = conn.cursor()
    cur.execute("SELECT * FROM tasks WHERE priority=?", (priority,))

    rows = cur.fetchall()

    for row in rows:
        print(row)


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

    # create a database connection
    conn = create_connection(database)
    with conn:
        print("1. Query task by priority:")
        select_task_by_priority(conn, 1)

        print("2. Query all tasks")
        select_all_tasks(conn)


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

Neste tutorial, você aprendeu como desenvolver um programa Python para consultar dados de tabelas em um banco de dados SQLite.

Deixe um comentário

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