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:
- Primeiro, estabeleça uma conexão com o banco de dados SQLite criando um
Connection
objeto. - A seguir, crie um
Cursor
objeto usando o método cursor doConnection
objeto. - Em seguida, execute uma
SELECT
instrução. - Depois disso, chame o
fetchall()
método do objeto cursor para buscar os dados. - Por fim, faça um loop no cursor e processe cada linha individualmente.
No exemplo a seguir usaremos a tasks
tabela 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 conn
Linguagem 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 SELECT
instrução e chamamos fetchall()
para buscar todas as tarefas da tasks
tabela.
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 SELECT
instrução, substituiu o ponto de interrogação ( ?
) pelo priority
argumento. 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.db
e chama as funções para consultar todas as linhas da tasks
tabela 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.