Untitled

 avatar
unknown
python
a year ago
3.5 kB
10
Indexable
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'''
            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}')

    fechar_db(conn)


# 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

    fechar_db(conn)


# Listar todos os dados de uma tabela
def listar_funcionarios(conn):
    cursor = conn.cursor()
    try:
        cursor.execute('SELECT * FROM Funcionarios')
        funcionarios = cursor.fetchall()
        pprint(funcionarios)
    except sqlite3.Error as e:
        print(f'Erro ao consultar dados: {e}')


def atualizar_funcionarios(conn):
    cursor = conn.cursor()
    listar_funcionarios(conn)
    while True:
        ident = input('Digite o ID do funcionário que deseja atualizar: ')
        cargo = input('Digite o novo cargo: ')
        try:
            cursor.execute('UPDATE Funcionarios SET cargo = ? WHERE id = ?', (cargo, ident))
            conn.commit()
            print('Dado atualizado com sucesso!')
        except sqlite3.Error as e:
            print(f'Erro ao atualizar dado: {e}')

        continuar = input('Deseja continuar? [S/N]').upper()

        if continuar != 'S':
            break

    fechar_db(conn)


# 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

    fechar_db(conn)
Editor is loading...
Leave a Comment