· 6 years ago · Sep 05, 2019, 02:24 AM
1# -*- coding:utf-8 -*
2
3import sqlite3
4from sqlite3 import Error
5
6
7class BancoDados:
8 def __init__(self):
9 self.__conectar = None
10 self.__nomeDb = None
11 self.__cursor = None
12
13 def criarDb(self, nomeDb):
14 conectar = None
15 try:
16 conectar = sqlite3.connect(nomeDb)
17 except Error as e:
18 print(f"Erro: {e}")
19 return conectar
20
21 def criarTabelas(self, nomeDb):
22 conectar = self.criarDb(nomeDb)
23 cursor = conectar.cursor()
24 cursor.execute(
25 """CREATE TABLE IF NOT EXISTS alunos (
26 id INTEGER PRIMARY KEY,
27 nome TEXT NOT NULL,
28 sexo TEXT NOT NULL,
29 data_nasc TEXT NOT NULL,
30 rg TEXT NOT NULL);""")
31
32 cursor.execute(
33 """CREATE TABLE IF NOT EXISTS professores (
34 id INTEGER PRIMARY KEY,
35 nome TEXT NOT NULL,
36 sexo TEXT NOT NULL,
37 titulacao TEXT NOT NULL,
38 data_nasc TEXT NOT NULL,
39 rg TEXT NOT NULL);""")
40
41 cursor.execute(
42 """CREATE TABLE IF NOT EXISTS disciplina (
43 id INTEGER PRIMARY KEY,
44 id_aluno INTEGER NOT NULL,
45 id_professores INTEGER NOT NULL,
46 nome TEXT NOT NULL);""")
47
48 cursor.execute(
49 """CREATE TABLE IF NOT EXISTS notas (
50 id INTEGER PRIMARY KEY,
51 id_professores INTEGER NOT NULL,
52 id_disciplina INTEGER NOT NULL,
53 id_aluno INTEGER NOT NULL,
54 nota1 REAL NOT NULL,
55 nota2 REAL NOT NULL);""")
56
57 self.criarDb(nomeDb).commit()
58 print(f"Criadas as tabelas do banco de dados {nomeDb}.")
59
60 def listarDados(self, nomeDb, nomeTabela):
61 lista = []
62 conectar = self.criarDb(nomeDb)
63 cursor = conectar.cursor()
64 dados = cursor.execute(f"SELECT * FROM {nomeTabela};")
65 conectar.commit()
66 for item in dados:
67 lista.append(item)
68 print(lista)
69 return cursor.lastrowid
70
71 def inserirAluno(self, nomeDb, ID, NOME, SEXO, DATA_NASC, RG):
72 dados = (ID, NOME, SEXO, DATA_NASC, RG,)
73 conectar = self.criarDb(nomeDb)
74 cursor = conectar.cursor()
75 sql = f"INSERT INTO alunos VALUES (?,?,?,?,?);"
76 cursor.execute(sql, dados)
77 conectar.commit()
78 cursor.close()
79 print("Dados inseridos!")
80 return cursor.lastrowid
81
82 def excluirDados (self, nomeDb, nomeTabela, ID):
83 conectar = self.criarDb(nomeDb)
84 cursor = conectar.cursor()
85 sql = f"DELETE FROM {nomeTabela} WHERE id={ID};"
86 cursor .execute(sql)
87 conectar.commit()
88 cursor.close()
89 print("Dado excluído")
90 return cursor.lastrowid
91
92 def atualizarAlunos(self, nomeDb, NOME, SEXO, DATA_NASC, RG, ID):
93 dados = (NOME, SEXO, DATA_NASC, RG, ID)
94 conectar = self.criarDb(nomeDb)
95 cursor = conectar.cursor()
96 sql = f"UPDATE alunos SET nome=?, sexo=?, data_nasc=?, rg=? WHERE id=?;"
97 cursor.execute(sql, dados)
98 conectar.commit()
99 cursor.close()
100 print("Dados atualizados.")
101
102
103BancoDados().criarDb("dbtst.db") #cria o banco de dados
104BancoDados().criarTabelas("dbtst.db") #cria as tabelas do banco de dados
105BancoDados().inserirAluno("dbtst.db", 1, "Ciclana", "feminino", "11/11/1911", "111111-11") #insere um aluno (id 1) no banco de dados
106BancoDados().inserirAluno("dbtst.db", 2, "Fulano", "nao definido", "12/12/1912", "121212-12") #insere um aluno (id 2) no banco de dados
107BancoDados().listarDados("dbtst.db", "alunos") #lista todos os alunos no banco de dados
108BancoDados().excluirDados("dbtst.db", "alunos", 1) #exclui o aluno (id 1) no banco de dados
109BancoDados().listarDados("dbtst.db", "alunos") #lista todos os alunos no banco de dados (para verificar se a exclusão funcionou)
110BancoDados().atualizarAlunos("dbtst.db", "Celso", "masculino", "17/09/1987", "999999-99", 2) #altera os dados do aluno (id 2)
111BancoDados().listarDados("dbtst.db", "alunos") #lista todos os alunos no banco de dados (para verificar se a atualização funcionou)