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:
- Primeiro, conecte-se ao banco de dados SQLite criando um objeto Connection.
- Segundo, crie um
Cursor
objeto chamando o método cursor doConnection
objeto. - Terceiro, execute uma instrução INSERT . Se quiser passar argumentos para a
INSERT
instruçã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 projects
tabela e algumas tarefas na tasks
tabela que criamos no tutorial criando tabelas a partir de um programa Python .
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 conn
Linguagem de código: Python ( python )
A seguir, desenvolva uma função para inserir um novo projeto na projects
tabela.
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
Linguagem de código: Python ( python )
Nesta função, utilizamos o lastrowid
atributo do Cursor
objeto para recuperar o id gerado.
Em seguida, desenvolva outra função para inserir linhas na tasks
tabela.
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
Linguagem 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 projects
e tasks
para verificar se os dados foram inseridos com sucesso.
Use estes comandos para formatar a saída:
sqlite> .header on
sqlite> .mode column
Linguagem de código: Sessão Shell ( shell )
E use esta SELECT
instrução para consultar dados da projects
tabela:
SELECT * FROM projects;
Linguagem de código: Sessão Shell ( shell )
E use a seguinte SELECT
instrução para consultar dados da tasks
tabela:
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.