Skip to content

Projeto de gestão de banco de dados em Python que interage com MySQL para criar bancos de dados e tabelas

Notifications You must be signed in to change notification settings

RhaianySouza/Gerenciamento_De_Banco_De_Dados-Python_MySQL

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 

Repository files navigation

Projeto de gestão de Banco de Dados (Python, MySQL)

Um projeto de gestão de banco de dados em Python que interage com MySQL para criar bancos de dados e tabelas de maneira genérica é uma excelente forma de aprender sobre interações entre Python e sistemas de gerenciamento de bancos de dados SQL. O projeto envolverá o uso do conector MySQL para Python, permitindo que você execute comandos SQL diretamente do seu código Python.

Requisitos:

  1. Python: Certifique-se de que o Python está instalado em seu sistema.
  2. MySQL Server: Você precisará do MySQL Server instalado e em execução.
  3. Conector MySQL para Python: Use o pacote mysql-connector-python para conectar o Python ao MySQL.

Passos para o Projeto:

  1. Configuração do Ambiente: Instale o conector MySQL para Python
    pip install mysql-connector-python
  2. Crie um arquivo chamado controledebancodedados.py para gerenciar a conexão com o MySQL
    import mysql.connector
    from mysql.connector import errorcode
  3. Gerenciar a criação exclusão de tabelas, assim como colunas, chave primaria e estrangeira.
  4. Inserção, atualização e exclusão de registros.
  5. Busca e listagem de dados com filtros.

Execução:

  1. Crie uma variavel que vai receber a classe Moderador que recebe o nome do banco de dados a ser criado, Ex: biblioteca
    root = Moderador("biblioteca")
    Se o banco de dados existir, será tentado uma conexão, caso consiga será impresso na tela:
    Conexão ao MySQL Server bem-sucedida
    Banco de Dados: BIBLIOTECA
    Se não, o banco de dados será criado:
    Conexão ao MySQL Server bem-sucedida
    Criação de Banco de dados bem sucedida
    Banco de Dados: BIBLIOTECA
  2. Metodos da classe para manipulação de tabelas e colunas

  3. commit()#CONFIRMA A TRANSAÇÃO ATUAL
  4. root.commit()
  5. close()#ENCERRAR CONEXÕES
  6. root.close()
  7. dataBaseDrop() #DELETAR BANCO DE DADOS
  8. root.dataBaseDrop()
  9. tableCreate(table,colls)#CRIA TABELAS (PARAMETRO: nome da tabela, nome das colunas e seu respectivos valores)
  10. Criar tabela Livros:
    root.tableCreate("livros","""
      titulo VARCHAR(100),
      autor VARCHAR(20),
      ano_publicacao INT,
      editora VARCHAR(20),
      genero VARCHAR(20)""")
      
    Criar tabela Autores:
    root.tableCreate("autores","""
      id_autor INT AUTO_INCREMENT PRIMARY KEY,
      nome VARCHAR(20),
      nacionalidade VARCHAR(20),
      data_nascimento VARCHAR(30)""")
      
  11. tableDrop(table): #DELETAR TABELAS (PARAMETRO:nome da tabela)
  12. root.tableDrop('autores')
  13. addColumns(table,coll)#ADICIONA COLUNA (PARAMETRO: nome da tabela, nome das colunas e seu respectivos valores)
  14. root.addColumns('livros','isnb10 INT NOT NULL')
    root.addColumns('livros','idioma VARCHAR(15)')
  15. dropColumns(table,coll): #EXCLUIR COLUNA (PARAMETRO: nome da tabela, nome da coluna)
  16. root.dropColumns('livros','idioma')
  17. alterForeign(table1,coll1,table2,coll2):#ADD CHAVE ESTRANGEIRA
    (PARAMETRO: nome da tabela 1, nome da coluna 1,nome da tabela 2, nome da coluna 2)
  18. root.alterForeign('autores','nome','livros','autor')
  19. alterForeignCONSTRAINT(self,table1,coll1,table2,coll2,ship):#ADD CHAVE ESTRANGEIRA
    (PARAMETRO: nome da tabela 1, nome da coluna 1,nome da tabela 2, nome da coluna 2, restrição)
  20. root.alterForeignCONSTRAINT('autores','nome','livros','autor','FK_livrosAutores')
  21. dropForeign(self,table,coll):#EXCLUIR CHAVE ESTRANGEIRA (PARAMETRO: nome da tabela, nome da coluna)
  22. root.dropForeign('livros','autor')
  23. alterPrimaryKey(self,table,coll):#ALTERAR CHAVE PRIMARIA (PARAMETRO: nome da tabela, nome da coluna)
  24. root.alterPrimaryKey('livros','isnb10')
  25. dropPrimaryKey(table):#EXCLUIR CHAVE PRIMARIA
  26. root.dropPrimaryKey('livros')
  27. showTable(self):#MOSTRAR TODAS AS TABELAS
  28. for i in root.showTable():
      print(i)
  29. showColumns(self,table):#MOSTRAR TODAS AS COLUNAS EM UMA TABELAS (PARAMETRO: nome da tabela)
  30. for i in root.showColumns('livros'):
      print(i)

    Metodos da classe para manipulação de registros

  31. insert(table,coll,values):#INSERIR REGISTROS (PARAMETRO: nome da tabela,colunas afetadas,valores)
  32. Inserir registro na tabela Livros
    #Colunas Livros
    livros = 'titulo,autor,ano_publicacao,editora,genero,isnb10'
    root.insert('livros',livros,'"Dom Casmurro", "Machado de Assis",1899,"Garnier","Romance",6586490081')
    root.insert('livros',livros,'"O Senhor dos Anéis: A Sociedade do Anel","J.R.R. Tolkien",1954,"Allen & Unwin","Fantasia",8595084750')
    root.insert('livros',livros,'"1984","George Orwell",1949,"Secker & Warburg","Ficção Distópica",6587034209')
    root.insert('livros',livros,'"Harry Potter e a Pedra Filosofal","J.K. Rowling", 1997,"Bloomsbury","Fantasia",8532530788')
    Inserir registro na tabela Autores
    #Colunas Autores
    autores = 'nome,nacionalidade,data_nascimento'
    root.insert('autores',autores,'"Agatha Christie","Britânica","1890-09-15"')
    root.insert('autores',autores,'"George Orwell","Britânica","1903-06-25"')
    root.insert('autores',autores,'"J.R.R. Tolkien","Britânica","1892-01-03"')
    root.insert('autores',autores,'"J.K. Rowling","Britânica","1965-07-31"')
  33. delete(table,coll,values):#DELETAR REGISTRO (PARAMETRO: nome da tabela,colunas onde valor ocorrore)
  34. root.delete('livros','autor','J.K. Rowling')
  35. update(table,values,_id):#ATUALIZAR REGISTRO (PARAMETRO: nome da tabela,coluna, id ou valor)
  36. root.update('livros','titulo="Harry Potter e a Câmara Secreta,isbn=8532530796,ano_publicacao=1998"','autor="J.K. Rowling"')
  37. select(table,coll):#SELECIONAR VALORES(PARAMETRO: nome da tabela, string coluna='valor' procurados)
  38. root.select('livros','autor="J.K. Rowling"')
  39. search(table,coll):#EXIBIR REGISTROS(PARAMETRO: nome da tabela,nome da coluna ou * para ver todas as colunas)
  40. root.update('livros','*')

Expansão do Projeto:

Interface de usuário (UI) com frameworks como Tkinter (para aplicações de desktop) ou Flask/Django (para aplicações web).

Este projeto base oferece um sólido ponto de partida para o gerenciamento de bancos de dados em Python, com ampla margem para expansão e personalização conforme sua necessidade.

About

Projeto de gestão de banco de dados em Python que interage com MySQL para criar bancos de dados e tabelas

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages