CRUD
# Importando os Módulos import sqlite3 from pprint import pprint # Conectar-se a ou criar um banco de dados def conectar_db(nome_db): try: conn = sqlite3.connect(nome_db) return conn except sqlite3.Error as e: print(f'Erro ao conectar-se a base de dados: {e}') # Fechar conexão com o banco de dados def fechar_db(conn): try: if conn: conn.close() print('Conexão com o banco de dados fechada com sucesso!') except sqlite3.Error as e: print(f'Erro ao fechar a conexão com o banco de dados: {e}') # Criar tabela def criar_tabela(conn): cursor = conn.cursor() try: nome_tabela = input('Digite o nome da tabela: ').capitalize() nome_tabela.replace(' ', '_') cursor.execute(f"SELECT name FROM sqlite_master WHERE type='table' AND name='{nome_tabela}'") if cursor.fetchone(): print(f'A tabela {nome_tabela} já existe.') else: cursor.execute(f''' CREATE TABLE IF NOT EXISTS {nome_tabela} ( id INTEGER PRIMARY KEY AUTOINCREMENT, nome VARCHAR(50) NOT NULL, cargo VARCHAR(50) NOT NULL, dataContratacao VARCHAR(50) NOT NULL ); ''') conn.commit() print(f'Tabela {nome_tabela} criada com sucesso!') except sqlite3.Error as e: print(f'Erro ao criar tabela: {e}') # Inserir dados na tabela def inserir_funcionario(conn): while True: cursor = conn.cursor() nome = input('Digite o nome: ') cargo = input('Digite o cargo: ') data = input('Digite a data de contratação no formato aaaa-mm-dd: ') try: cursor.execute("INSERT INTO Funcionarios (nome, cargo, dataContratacao) VALUES (?, ?, ?)", (nome, cargo, data)) conn.commit() print('Dado inserido com sucesso!') except sqlite3.Error as e: print(f'Erro ao inserir dado: {e}') continuar = input('Deseja continuar? [S/N] ').upper() if continuar != 'S': break # Listar todos os dados de uma tabela def listar_funcionarios(conn): cursor = conn.cursor() try: cursor.execute('SELECT * FROM Funcionarios') funcionarios = cursor.fetchall() if not funcionarios: print("Não há funcionários cadastrados.") else: print("Lista de funcionários:") for funcionario in funcionarios: print(f"ID: {funcionario[0]}, Nome: {funcionario[1]}, Cargo: {funcionario[2]}, Data de Contratação: {funcionario[3]}") except sqlite3.Error as e: print(f'Erro ao consultar dados: {e}') # Atualizar dados de uma tabela def atualizar_funcionarios(conn): cursor = conn.cursor() listar_funcionarios(conn) while True: ident = input('Digite o ID do funcionário que deseja atualizar: ') update_nome = input('Quer atualizar o nome? [S/N] ').upper() if update_nome == 'S': nome = input('Digite o novo nome: ') else: nome = None update_cargo = input('Quer atualizar o cargo? [S/N] ').upper() if update_cargo == 'S': cargo = input('Digite o novo cargo: ') else: cargo = None update_data = input('Quer atualizar a data de contratação? [S/N] ').upper() if update_data == 'S': data = input('Digite a nova data de contratação no formato aaaa-mm-dd: ') else: data = None try: if nome is not None or cargo is not None or data is not None: cursor.execute('UPDATE Funcionarios SET nome = COALESCE(?, nome), cargo = COALESCE(?, cargo), dataContratacao = COALESCE(?, dataContratacao) WHERE id = ?', (nome, cargo, data, ident)) conn.commit() print('Dado atualizado com sucesso!') else: print('Nenhum campo foi atualizado.') except sqlite3.Error as e: print(f'Erro ao atualizar dado: {e}') continuar = input('Deseja continuar? [S/N] ').upper() if continuar != 'S': break # Deletar dados de uma tabela def excluir_funcionario(conn): cursor = conn.cursor() listar_funcionarios(conn) while True: ident = input('Digite o ID do funcionário que deseja excluir: ') try: cursor.execute('DELETE FROM Funcionarios WHERE id = ?', (ident,)) conn.commit() print('Dado excluído com sucesso!') except sqlite3.Error as e: print(f'Erro ao excluir dado: {e}') continuar = input('Deseja continuar? [S/N] ').upper() if continuar != 'S': break # ============================================================================================================ # Função principal def main(): conn = conectar_db('funcionarios.db') while True: print("\nSelecione a operação desejada:") print("1. Criar tabela") print("2. Inserir funcionário") print("3. Listar funcionários") print("4. Atualizar funcionário") print("5. Excluir funcionário") print("6. Sair") opcao = input("Digite o número da opção: ") if opcao == '1': criar_tabela(conn) elif opcao == '2': inserir_funcionario(conn) elif opcao == '3': listar_funcionarios(conn) elif opcao == '4': atualizar_funcionarios(conn) elif opcao == '5': excluir_funcionario(conn) elif opcao == '6': fechar_db(conn) break else: print("Opção inválida. Tente novamente.") if __name__ == "__main__": main()
Leave a Comment