Resumo : neste tutorial mostraremos como atualizar dados no banco de dados SQLite de um programa Python usando o módulo sqlite3.
Para atualizar dados em uma tabela de um programa Python, siga estas etapas:
- Primeiro, crie uma conexão de banco de dados com o banco de dados SQLite usando a
connect()
função. Depois que a conexão com o banco de dados for criada, você poderá acessar o banco de dados usando oConnection
objeto. - Segundo, crie um
Cursor
objeto chamando ocursor()
método doConnection
objeto. - Terceiro, execute a
UPDATE
instrução chamando oexecute()
método doCursor
objeto.
Neste exemplo atualizaremos a prioridade, data de início e data de término de uma tarefa específica na tasks
tabela.
Para criar uma conexão com o banco de dados, você usa a seguinte create_connection()
função:
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: SQL (linguagem de consulta estruturada) ( sql )
Esta update_task()
função atualiza uma tarefa específica:
def update_task(conn, task):
"""
update priority, begin_date, and end date of a task
:param conn:
:param task:
:return: project id
"""
sql = ''' UPDATE tasks
SET priority = ? ,
begin_date = ? ,
end_date = ?
WHERE id = ?'''
cur = conn.cursor()
cur.execute(sql, task)
conn.commit()
Linguagem de código: Python ( python )
A main()
função a seguir cria uma conexão com o banco de dados localizado na pasta C:\sqlite\db\pythonsqlite.db e chama a update_task()
função para atualizar uma tarefa com id 2:
def main():
database = r"C:\sqlite\db\pythonsqlite.db"
# create a database connection
conn = create_connection(database)
with conn:
update_task(conn, (2, '2015-01-04', '2015-01-06', 2))
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 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 update_task(conn, task):
"""
update priority, begin_date, and end date of a task
:param conn:
:param task:
:return: project id
"""
sql = ''' UPDATE tasks
SET priority = ? ,
begin_date = ? ,
end_date = ?
WHERE id = ?'''
cur = conn.cursor()
cur.execute(sql, task)
conn.commit()
def main():
database = r"C:\sqlite\db\pythonsqlite.db"
# create a database connection
conn = create_connection(database)
with conn:
update_task(conn, (2, '2015-01-04', '2015-01-06', 2))
if __name__ == '__main__':
main()
Linguagem de código: Python ( python )
Depois de executar o programa, você pode se conectar ao banco de dados via shell de comando sqlite3:
Use estes comandos para formatar a saída:
sqlite> .header on
sqlite> .mode column
Linguagem de código: CSS ( css )
E use a seguinte instrução para obter a tarefa com id 2:
SELECT * FROM tasks WHERE id = 2;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Conforme mostrado claramente na captura de tela, a tarefa com id 2 foi atualizada com sucesso.
Neste tutorial, você aprendeu como atualizar dados em uma tabela a partir de um programa Python.