100% acharam este documento útil (1 voto)
34 visualizações17 páginas

Usando SQLite com Python: Guia Completo

SQLite é um banco de dados leve e embutido que não requer servidor, ideal para aplicações simples. O módulo sqlite3 em Python permite criar conexões, executar comandos SQL e manipular dados com facilidade. O documento fornece exemplos práticos de como criar tabelas, inserir dados e boas práticas para evitar injeções SQL.

Enviado por

natanielrodri009
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
100% acharam este documento útil (1 voto)
34 visualizações17 páginas

Usando SQLite com Python: Guia Completo

SQLite é um banco de dados leve e embutido que não requer servidor, ideal para aplicações simples. O módulo sqlite3 em Python permite criar conexões, executar comandos SQL e manipular dados com facilidade. O documento fornece exemplos práticos de como criar tabelas, inserir dados e boas práticas para evitar injeções SQL.

Enviado por

natanielrodri009
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

SQLite é um banco de dados leve, autônomo e embutido que não requer um servidor para ser

executado. Ele é amplamente utilizado em aplicações que precisam de um banco de dados


simples e eficiente. Em Python, você pode usar o módulo integrado sqlite3 para interagir
com o SQLite.

Passos Básicos para Usar SQLite em Python

1. Importar o Módulo sqlite3 O módulo sqlite3 já vem com o Python por padrão.

2. Conectar ao Banco de Dados Use [Link]() para criar uma conexão


com o banco de dados. Se o banco de dados não existir, ele será criado.

3. Criar um Cursor O cursor é usado para executar comandos SQL.

4. Executar Comandos SQL Use o método execute() para executar comandos como
CREATE TABLE, INSERT, SELECT, etc.

5. Confirmar Alterações Após comandos como INSERT, UPDATE, ou DELETE, chame


commit() para salvar as alterações.

6. Fechar a Conexão Sempre feche a conexão com o banco de dados para liberar
recursos.
Exemplo de Uso

import sqlite3

# Conectar ao banco de dados (ou criar um novo)


conn = [Link]('[Link]')

# Criar um cursor
cursor = [Link]()

# Criar uma tabela


[Link]('''
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
age INTEGER NOT NULL
)
''')

# Inserir dados
[Link]('''
INSERT INTO users (name, age)
VALUES ('Alice', 25), ('Bob', 30)
''')

# Confirmar alterações
[Link]()

# Recuperar dados
[Link]('SELECT * FROM users')
rows = [Link]()
for row in rows:
print(row)

# Fechar a conexão
[Link]()
Principais Funções e Métodos

1. Conexão

○ [Link]('database_name.db'): Conecta ou cria o banco de


dados.
2. Cursor

○ [Link](sql_query): Executa uma consulta SQL.


○ [Link](sql_query, data): Insere vários registros de uma
vez.
○ [Link](): Retorna todos os resultados de uma consulta.
○ [Link](): Retorna apenas o próximo registro.
3. Salvar e Fechar

○ [Link](): Salva as alterações feitas no banco de dados.


○ [Link](): Fecha a conexão.

Vantagens do SQLite

● Simplicidade de configuração.
● Ideal para aplicações pequenas ou embarcadas.
● Armazenamento em um único arquivo.

Limitações do SQLite

● Não é adequado para aplicações de larga escala com múltiplos usuários simultâneos.
● Suporte limitado a operações complexas e altas cargas de transação.

Se você precisar de algo mais específico ou dicas sobre o uso avançado do SQLite, posso
ajudar!
O objeto Cursor no SQLite em Python é usado para interagir com o banco de dados. Ele é
criado a partir de uma conexão com o banco de dados e serve para executar comandos SQL e
manipular resultados. Vamos explorar as funcionalidades do objeto Cursor.

Como Criar um Cursor

Você cria um cursor a partir de uma conexão com o banco de dados:

import sqlite3

# Criar uma conexão


conn = [Link]('[Link]')

# Criar um cursor
cursor = [Link]()

Principais Métodos do Objeto Cursor


1. execute(sql, params=None) Executa uma consulta ou comando SQL.

[Link]('CREATE TABLE IF NOT EXISTS users (id INTEGER, name


TEXT)')
[Link]('INSERT INTO users (id, name) VALUES (?, ?)', (1,
'Alice'))

2. executemany(sql, seq_of_params) Executa uma consulta ou comando SQL


várias vezes com diferentes parâmetros.
users = [(2, 'Bob'), (3, 'Charlie')]
[Link]('INSERT INTO users (id, name) VALUES (?, ?)',
users)
3. fetchone() Retorna o próximo registro do resultado como uma tupla. Retorna None
se não houver mais registros.

[Link]('SELECT * FROM users')


print([Link]()) # Retorna o primeiro registro

4. fetchall() Retorna todos os registros do resultado como uma lista de tuplas.

[Link]('SELECT * FROM users')


print([Link]()) # Retorna todos os registros

5. fetchmany(size=n) Retorna até n registros do resultado como uma lista de tuplas.

[Link]('SELECT * FROM users')


print([Link](2)) # Retorna os próximos 2 registros

6. rowcount Retorna o número de registros afetados pelo último comando INSERT,


UPDATE ou DELETE.

[Link]('DELETE FROM users WHERE id = 1')


print([Link]) # Número de registros excluídos

7. description Contém metadados sobre as colunas do resultado. Cada entrada é uma


tupla com informações como o nome da coluna.
[Link]('SELECT * FROM users')
print([Link]) # Exibe os nomes das colunas
Exemplo Completo

import sqlite3

# Conectar ao banco de dados


conn = [Link]('[Link]')

# Criar um cursor
cursor = [Link]()

# Criar uma tabela


[Link]('''
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL
)
''')

# Inserir dados
users = [(1, 'Alice'), (2, 'Bob'), (3, 'Charlie')]
[Link]('INSERT INTO users (id, name) VALUES (?, ?)',
users)

# Consultar dados
[Link]('SELECT * FROM users')

# Iterar sobre os resultados


for row in [Link]():
print(row)

# Recuperar apenas uma linha


[Link]('SELECT * FROM users WHERE id = 1')
print([Link]())

# Fechar a conexão
[Link]()
[Link]()
Cuidados ao Usar o Cursor

1. Fechar a Conexão: Sempre feche a conexão após o uso ([Link]()).


2. Injeção SQL: Use parâmetros (?) em vez de concatenar strings SQL diretamente para
evitar vulnerabilidades de injeção SQL.
3. Persistência do Cursor: O cursor deve ser associado a uma conexão aberta. Se a
conexão for fechada, o cursor será inválido.

O objeto Cursor é central para trabalhar com bancos de dados em SQLite. Ele é eficiente para
realizar operações como leitura, escrita e manipulação de dados. Se precisar de algo mais
avançado, é só pedir!
Criar uma tabela no SQLite usando Python envolve o uso de comandos SQL no objeto
Cursor. O comando SQL padrão para criar tabelas é o CREATE TABLE. Aqui está um guia
completo para criar tabelas no SQLite com Python:

Passos para Criar uma Tabela

1. Importar o módulo sqlite3: O módulo sqlite3 é integrado ao Python.

2. Conectar ao Banco de Dados: Use [Link]() para criar ou abrir um


banco de dados.

3. Criar um Cursor: O cursor executará os comandos SQL.

4. Executar o Comando CREATE TABLE: Use o método execute() para executar a


instrução de criação de tabela.

5. Confirmar Alterações e Fechar a Conexão: Use commit() para salvar as alterações


no banco de dados e close() para liberar os recursos.
Exemplo Simples

import sqlite3

# Conectar ao banco de dados (ou criar um novo arquivo se não


existir)
conn = [Link]('[Link]')

# Criar um cursor
cursor = [Link]()

# Criar uma tabela


[Link]('''
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
email TEXT UNIQUE NOT NULL,
age INTEGER,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)
''')

# Confirmar as alterações
[Link]()

# Fechar a conexão
[Link]()

Explicação do Exemplo

● CREATE TABLE IF NOT EXISTS: Garante que a tabela seja criada apenas se não
existir.
● Colunas da Tabela:
○ id INTEGER PRIMARY KEY AUTOINCREMENT: Coluna de ID única e
incremental.
○ name TEXT NOT NULL: Nome como texto obrigatório.
○ email TEXT UNIQUE NOT NULL: Email como texto obrigatório e único.
○ age INTEGER: Idade como número inteiro.
○ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP: Data/hora de
criação com valor padrão.

Exemplo com Mais Tabelas

Você pode criar várias tabelas no mesmo banco de dados:

import sqlite3

conn = [Link]('[Link]')
cursor = [Link]()

# Criar tabela de produtos


[Link]('''
CREATE TABLE IF NOT EXISTS products (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
price REAL NOT NULL,
stock INTEGER NOT NULL
)
''')

# Criar tabela de vendas


[Link]('''
CREATE TABLE IF NOT EXISTS sales (
id INTEGER PRIMARY KEY AUTOINCREMENT,
product_id INTEGER NOT NULL,
quantity INTEGER NOT NULL,
sale_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (product_id) REFERENCES products(id)
)
''')

[Link]()
[Link]()
Boas Práticas ao Criar Tabelas

1. Use IF NOT EXISTS: Evita erros ao executar o código várias vezes.

2. Chaves Primárias: Inclua sempre uma coluna de chave primária para identificar
registros.

3. Tipos de Dados: SQLite aceita os tipos básicos: INTEGER, TEXT, REAL, BLOB, NULL.

4. Integridade Referencial: Use chaves estrangeiras (FOREIGN KEY) para relacionar


tabelas.
Para inserir dados em uma tabela SQLite usando Python, você pode usar o método
execute() ou executemany() do objeto Cursor. Aqui está um guia completo sobre como
inserir dados no SQLite:

Método 1: Inserir Dados com execute()

O método execute() é usado para inserir um único registro por vez.

Exemplo

import sqlite3

# Conectar ao banco de dados


conn = [Link]('[Link]')
cursor = [Link]()

# Inserir um único registro


[Link]('''
INSERT INTO users (name, email, age)
VALUES (?, ?, ?)
''', ('Alice', 'alice@[Link]', 25))

# Confirmar as alterações
[Link]()

# Fechar a conexão
[Link]()

Detalhes

● VALUES (?, ?, ?): Os ? são marcadores de posição que previnem injeções SQL.
● O segundo argumento de execute() é uma tupla com os valores correspondentes aos
marcadores.
Método 2: Inserir Múltiplos Dados com executemany()

Se você precisar inserir vários registros ao mesmo tempo, use o método executemany().

Exemplo

import sqlite3

# Conectar ao banco de dados


conn = [Link]('[Link]')
cursor = [Link]()

# Dados a serem inseridos


users = [
('Bob', 'bob@[Link]', 30),
('Charlie', 'charlie@[Link]', 22),
('Diana', 'diana@[Link]', 28)
]

# Inserir múltiplos registros


[Link]('''
INSERT INTO users (name, email, age)
VALUES (?, ?, ?)
''', users)

# Confirmar as alterações
[Link]()

# Fechar a conexão
[Link]()
Método 3: Inserir Dados com Colunas Opcionais

Se sua tabela tiver colunas com valores padrão ou que aceitam NULL, você pode omitir essas
colunas na inserção.

Exemplo

[Link]('''
INSERT INTO users (name, email)
VALUES (?, ?)
''', ('Eve', 'eve@[Link]'))

Nesse caso, a coluna age será NULL ou usará o valor padrão definido.

Boas Práticas ao Inserir Dados

1. Usar Marcadores de Posição (?): Sempre use marcadores de posição para evitar
vulnerabilidades de injeção SQL.

2. Confirmar Alterações: Use [Link]() após inserir dados para salvar as


alterações no banco de dados.

3. Validar Dados: Antes de inserir, verifique se os dados atendem aos requisitos do banco
(e.g., valores únicos, tipos corretos).
Exemplo Completo com Criação de Tabela e Inserção

import sqlite3

# Conectar ao banco de dados


conn = [Link]('[Link]')
cursor = [Link]()

# Criar a tabela
[Link]('''
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
email TEXT UNIQUE NOT NULL,
age INTEGER
)''')

# Inserir dados
users = [
('Alice', 'alice@[Link]', 25),
('Bob', 'bob@[Link]', 30),
('Charlie', 'charlie@[Link]', 22)]

[Link]('''
INSERT INTO users (name, email, age)
VALUES (?, ?, ?)
''', users)

# Confirmar as alterações
[Link]()

# Recuperar e exibir os dados inseridos


[Link]('SELECT * FROM users')
for row in [Link]():
print(row)

# Fechar a conexão
[Link]()
Exemplo de como inserir dados dinamicamente(esse trecho de um dos
meus projetos kkk)

import sqlite3

conn = [Link]("Database/[Link]")
cursor = [Link]()

[Link]('''
CREATE TABLE IF NOT EXISTS estudantes(
id INTEGER PRIMARY KEY AUTOINCREMENT,
nome TEXT,
classe INTEGER,
turma TEXT,
number INTEGER

''')
[Link]()

def adicionarAluno():
nome = input("Digite o seu nome: ")
classe = int(input("Digite a sua classe(10ª-13ª): "))
turma = input("Digite a sua turma: ")
number = int(input("Digite o seu número: "))
[Link]("INSERT INTO estudantes (nome, classe, turma,
number) VALUES (?,?,?,?)", (nome, classe, turma, number,))
[Link]()
print("Aluno registrado com sucesso!")

def menu():
while True:
print("\nMenu")
print("1. Adicionar estudante")
print("5. Sair")

escolha = input("Escolha a opção: ")


if escolha == '1':
adicionarAluno()
elif escolha == '5':
print("Saindo...")
break
else:
print("Opção inaceitável!")

menu()

[Link]()

Você também pode gostar