SQLITE
SQLITE
SQLITE
html
Regis da Silva
Eu separei este post em duas partes: a Parte 1 é bem elementar e
objetiva, visando apresentar o básico sobre a realização do CRUD num
banco de dados SQLite3 em Python usando o terminal.
Publicado em:
A parte 2 , num nível intermediário, usa classes e métodos mais
Mon 16 June 2014 elaborados para gerenciar o CRUD, e algumas coisinhas a mais.
←Home Nota: Para entender o uso de classes e métodos leia o post Introdução a
Classes e Métodos em Python. E para entender os comandos SQL e a
manipulação de registros no SQLite3 leia Guia rápido de comandos
SQLite3.
Obs: O campo bloqueado nós vamos inserir depois com o comando ALTER
TABLE.
Exemplos
Referências
# conectando...
conn = sqlite3.connect(':memory:')
# conectando...
conn = sqlite3.connect('clientes.db')
# connect_db.py
# 01_create_db.py
import sqlite3
conn = sqlite3.connect('clientes.db')
conn.close()
$ python3 01_create_db.py
$ ls *.db
# 02_create_schema.py
import sqlite3
# conectando...
conn = sqlite3.connect('clientes.db')
# definindo um cursor
cursor = conn.cursor()
$ python3 02_create_schema.py
$ sqlite3 clientes.db '.tables'
$ sqlite3 clientes.db 'PRAGMA table_info(clientes)'
Digitando sqlite3 clientes.db '.tables' você verá que a tabela foi criada.
Nota: A única diferença, caso você use Python 2 é no print, onde você
deve tirar os parênteses. E no início do arquivo é recomendável que se
defina a codificação utf-8, que no caso do Python 3 já é padrão.
# 02_create_schema.py
# -*- coding: utf-8 -*-
# usando Python 2
import sqlite3
...
print 'Tabela criada com sucesso.'
# 03_create_data_sql.py
import sqlite3
conn = sqlite3.connect('clientes.db')
cursor = conn.cursor()
cursor.execute("""
INSERT INTO clientes (nome, idade, cpf, email, fone, cidade, uf, criado_em)
VALUES ('Aloisio', 87, '11111111111', 'aloisio@email.com', '98765-4322', 'Porto
Alegre', 'RS', '2014-06-09')
""")
cursor.execute("""
INSERT INTO clientes (nome, idade, cpf, email, fone, cidade, uf, criado_em)
VALUES ('Bruna', 21, '22222222222', 'bruna@email.com', '21-98765-4323', 'Rio de
Janeiro', 'RJ', '2014-06-09')
""")
cursor.execute("""
INSERT INTO clientes (nome, idade, cpf, email, fone, cidade, uf, criado_em)
VALUES ('Matheus', 19, '33333333333', 'matheus@email.com', '11-98765-4324',
'Campinas', 'SP', '2014-06-08')
""")
# gravando no bd
conn.commit()
conn.close()
$ python3 03_create_data_sql.py
# 04_create_data_nrecords.py
import sqlite3
conn = sqlite3.connect('clientes.db')
cursor = conn.cursor()
conn.commit()
conn.close()
$ python3 04_create_data_nrecords.py
# 05_create_data_param.py
import sqlite3
conn = sqlite3.connect('clientes.db')
cursor = conn.cursor()
conn.commit()
conn.close()
# python 2
p_nome = raw_input('Nome: ')
...
print 'Dados inseridos com sucesso.'
$ python3 05_create_data_param.py
Nome: Regis
Idade: 35
CPF: 30020030011
Email: regis@email.com
Fone: 11 9537-0000
Cidade: Sao Paulo
UF: SP
Criado em (yyyy-mm-dd): 2014-06-15
Dados inseridos com sucesso.
# 06_read_data.py
import sqlite3
conn = sqlite3.connect('clientes.db')
cursor = conn.cursor()
# lendo os dados
cursor.execute("""
SELECT * FROM clientes;
""")
conn.close()
$ python3 06_read_data.py
Eis o resultado:
# 07_update_data.py
import sqlite3
conn = sqlite3.connect('clientes.db')
cursor = conn.cursor()
id_cliente = 1
novo_fone = '11-1000-2014'
novo_criado_em = '2014-06-11'
conn.commit()
conn.close()
$ python3 07_update_data.py
# 08_delete_data.py
import sqlite3
conn = sqlite3.connect('clientes.db')
cursor = conn.cursor()
id_cliente = 8
conn.commit()
conn.close()
$ python3 08_delete_data.py
# 09_alter_table.py
import sqlite3
conn = sqlite3.connect('clientes.db')
cursor = conn.cursor()
conn.commit()
conn.close()
$ python3 09_alter_table.py
Para ler o schema da tabela usamos o comando SELECT sql FROM sqlite_master
....
# 10_view_table_info.py
import sqlite3
conn = sqlite3.connect('clientes.db')
cursor = conn.cursor()
nome_tabela = 'clientes'
# listando as tabelas do bd
cursor.execute("""
SELECT name FROM sqlite_master WHERE type='table' ORDER BY name
""")
print('Tabelas:')
for tabela in cursor.fetchall():
print("%s" % (tabela))
print('Schema:')
for schema in cursor.fetchall():
print("%s" % (schema))
conn.close()
$ python3 10_view_table_info.py
Eis o resultado:
# 11_backup.py
import sqlite3
import io
conn = sqlite3.connect('clientes.db')
conn.close()
$ python3 11_backup.py
$ cat clientes_dump.sql
# 12_read_sql.py
import sqlite3
import io
conn = sqlite3.connect('clientes_recuperado.db')
cursor = conn.cursor()
f = io.open('clientes_dump.sql', 'r')
sql = f.read()
cursor.executescript(sql)
conn.close()
$ python3 12_read_sql.py
Banco de dados recuperado com sucesso.
Salvo como clientes_recuperado.db
$ sqlite3 clientes_recuperado.db 'SELECT * FROM clientes;'
Com o último comando você verá que os dados estão lá. São e salvo!!!
Exemplos
Veja os exemplos em github.
Referências
sqlite3 Embedded Relational Database
Compartilhar 28
Tweetar
Participe da discussão...
1 of 2 10/04/2019 21:04
Gerenciando banco de dados SQLite3 com Python - Parte 1 por Regis da Silv... http://pythonclub.com.br/gerenciando-banco-dados-sqlite3-python-parte1.html
OPEN CHAT
2 of 2 10/04/2019 21:04