{"id":14972191,"url":"https://github.com/webtechmoz/manage-sql","last_synced_at":"2025-11-04T11:03:06.884Z","repository":{"id":244524721,"uuid":"815493541","full_name":"webtechmoz/manage-sql","owner":"webtechmoz","description":"Biblioteca para gestão de bancos SQLITE E MYSQL de dados","archived":false,"fork":false,"pushed_at":"2024-10-15T13:06:27.000Z","size":181,"stargazers_count":3,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-31T22:11:41.641Z","etag":null,"topics":["database","manage-mysql","manage-sql","mysql","mysql-database","sql","sqlite3"],"latest_commit_sha":null,"homepage":"https://github.com/webtechmoz/manage-sql.git","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/webtechmoz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-15T10:22:08.000Z","updated_at":"2024-11-09T06:07:42.000Z","dependencies_parsed_at":"2024-07-11T00:29:48.578Z","dependency_job_id":"fa69b227-1b1d-46ec-90c2-3bbd6ba30668","html_url":"https://github.com/webtechmoz/manage-sql","commit_stats":{"total_commits":11,"total_committers":1,"mean_commits":11.0,"dds":0.0,"last_synced_commit":"3fd58aafd7e868b1dda4509eb0879015c127c5e0"},"previous_names":["webtechmoz/manage-sql"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webtechmoz%2Fmanage-sql","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webtechmoz%2Fmanage-sql/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webtechmoz%2Fmanage-sql/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webtechmoz%2Fmanage-sql/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/webtechmoz","download_url":"https://codeload.github.com/webtechmoz/manage-sql/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238386091,"owners_count":19463293,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["database","manage-mysql","manage-sql","mysql","mysql-database","sql","sqlite3"],"created_at":"2024-09-24T13:46:31.235Z","updated_at":"2025-10-26T18:31:39.381Z","avatar_url":"https://github.com/webtechmoz.png","language":"Python","readme":"# MANAGE-SQL DOCUMENTATION\n\n[![PyPI version](https://img.shields.io/pypi/v/manage-sql.svg)](https://pypi.org/project/pyweber/) [![License](https://img.shields.io/pypi/l/manage-sql.svg)](https://github.com/webtechmoz/manage-sql/blob/master/LICENSE)\n\n\nA classe **manage-sql** foi feita de modo a facilitar a gestão e interação com bancos de dados sqlite.\n\n## Funcionalidades\n- Criação e gestão de bancos de dados sqlite, mysql e postegres.\n- Definição de estruturas de tabelas usando tipos de colunas customizadas.\n- Maior performance nas operações CRUD.\n- Executar operações sql brutas sem depender da classe\n- Método próprio para encriptar valores sensíveis como senhas.\n\n## Instalação\nPrimeiro garanta que tem o python instalando. Caso não tenha o python, [clique aqui](https://www.python.org/downloads/)\n\nSegundo, instale a biblioteca manage-sql usando o comando abaixo na linha de comandos\n\n```bash\npip install manage.sql\n```\n\n## Métodos\n\nPara fazer a gestão dos bancos de dados, ao importar pode fazer o *import* dependendo do tipo de banco que pretende gerir.\n\n```python\nfrom manage_sql import SQLITE\nfrom manage_sql import MYSQL\nfrom manage_sql import POSTEGRESQL\n```\n\n### Conectando com o banco\n#### SQLITE\n```python\nfrom manage_sql import SQLITE\n\ndb = SQLITE(\n    database = 'my_database',\n    path = 'path_database'\n)\n```\n**Parametros**\n- `database`: *str* (opcional) - nome do banco de dados sqlite\n- `path`: *str* (opcional) - local onde pretender colocar o banco de dados. Caso não defina, o caminho padrão será o */database*\n\n***\n\n#### MYSQL\n```python\nfrom manage_sql import MYSQL\n\ndb = MYSQL(\n    host = 'localhost',\n    username = 'mysql_user',\n    password = 'user_password',\n    database = 'database_name',\n    port = 3306\n)\n```\n\n**Parametros**\n- `host`: *str* - local onde está a rodar o servidor mysql\n- `username`: *str* - usuario do banco de dados\n- `password`: *str* - palavra-passe do usuario mysql\n- `database`: *str* (opcional) - nome do banco de dados mysql\n- `port`: *int* (opcional) - a porta padrão do servidor mysql é o **3306**\n\n***\n\n#### POSTGRESQL\n- **Conectar usando o postegres_url (dsn)**\n```python\nfrom manage_sql import POSTEGRESQL\n\ndb = POSTEGRESQL(\n    postegres_url = 'postegres_url',\n)\n```\n\n- **Conectar usando os parametros normais**\n```python\nfrom manage_sql import POSTEGRESQL\n\ndb = POSTEGRESQL(\n    host = 'localhost',\n    username = 'postgres_user',\n    password = 'user_password',\n    database = 'database_name',\n    port = 5432\n)\n```\n\n**Parametros**\n- `portegres_url`: *str* - caminho para o servidor onde está alocado o banco de dados postegres. Mais detalhes consulte [clique aqui](https://www.psycopg.org/docs/connection.html#connection.dsn)\n- `host`: *str* - local onde está a rodar o servidor postgres\n- `username`: *str* - usuario do banco de dados\n- `password`: *str* - palavra-passe do usuario postgres\n- `database`: *str* (opcional) - nome do banco de dados postgres\n- `port`: *int* (opcional) - a porta padrão do servidor postgres é **5432**\n\n***\n*Os métodos abaixo aplicam-se para os três bancos de dados (mysql, sqlite, postegresql). A título de exemplo a documentação tomará como base, o banco de dados **MYSQL***\n***\n\n### Criar Tabela\n```python\nfrom manage_sql import MYSQL\n\ndb = MYSQL(\n    host='hostname',\n    username='username',\n    password='user_password',\n    database='database_name'\n)\n\ndb.create_table(\n    tablename='usuarios',\n    columns=[\n        db.Column(\n            name='nome',\n            column_type=db.Column_types.Char(60).varchar\n        ),\n        db.Column(\n            name='username',\n            column_type=db.Column_types.Char(60).varchar\n        )\n    ]\n)\n```\n\n**Parametros**\n- `tablename`: *str* - nome da tabela que pretende criar no banco de dados especificado na conexão\n- `columns`: *list[Column]* - lista de colunas que pretende criar dentro da tabela.\n\n**Nota 1:** A documentação devida do `Column` será feita em breve.\n**Nota 2:** Tenha atenção aos tipos do `Column_types`, dado que cada tipo de banco de dados possui seus respectivos tipos.\n\n***\n\n### Inserir Dados\n```python\nfrom manage_sql import MYSQL\n\ndb = MYSQL(\n    host='hostname',\n    username='username',\n    password='user_password',\n    database='database_name'\n)\n\ndb.insert_data(\n    tablename='usuarios',\n    insert_query=[\n        db.ColumnData(\n            column='nome',\n            value='Web Tech Moz'\n        ),\n        db.ColumnData(\n            column='nome',\n            value='webtechmoz'\n        )\n    ]\n)\n```\n\n**Parametros**\n- `tablename`: str - nome da tabela que pretende inserir os dados\n- `insert_query`: *list[ColumnData]* - lista de ColumnData abaixo descritos\n- `ColumnData`: ColumnDate - instância para inserir os dados nas colunas da tabela. Recebe `column` que corresponde ao nome da coluna e `value` correspondente ao valor a inserir\n\n***\n\n### Apagar Dados\n```python\nfrom manage_sql import MYSQL\n\ndb = MYSQL(\n    host='hostname',\n    username='username',\n    password='user_password',\n    database='database_name'\n)\n\ndb.detele_data(\n    tablename='usuarios',\n    condition=db.delete_by(\n        column='id'\n    ).EQUAL(\n        value=1\n    )\n)\n```\n\n**Parametros**\n- `tablename`: *str* - nome da tabela que pretende inserir os dados\n- `condition`: *Filter* (opcional) - método de filtragem que permite selecionar o(s) dado(s) que pretende apagar.\n\n**Parametros de Filtragem**\nO `delete_by` deve receber uma coluna base para fazer a filtragem dos dados. Este método possui várioss metodos de filtragem abaixo indicados:\n- `EQUAL`: recebe um valor em que a coluna especificada deverá ser igual `=`\n- `NOT_EQUAL`: recebe um valor em que a coluna especificada deverá ser igual `!=`\n- `GATHER_THAN`: recebe um valor minimo para comparação `\u003e`\n- `GATHER_OR_EQUAL`: recebe um valor que deverá ser o mínimo incluido para comparação `\u003e=`\n- `LESS_THAN`: recebe um valor máximo para comparação `\u003c`\n- `LESS_OR_EQUAL`: recebe um valor máximo incluido `\u003c=`\n- `CONTAIN`: recebe uma parte de texto para validação de strings `LIKE`\n- `NOT_CONTAIN`: recebe uma parte de texto para validação de strings `NOT LIKE`\n\nPode tambem fazer filtragem em multiplas colunas usando as condicionais abaixo:\n\n- **`OR`** e **`AND`**\n```python\nfrom manage_sql import MYSQL\n\ndb = MYSQL(\n    host='hostname',\n    username='username',\n    password='user_password',\n    database='database_name'\n)\n\n# Filtrando usando o OR\ndb.detele_data(\n    tablename='usuarios',\n    condition=db.delete_by(\n        column='id'\n    ).EQUAL(\n        value=1\n    ).OR.filterby(\n        column='username'\n    ).CONTAIN(\n        value='moz'\n    )\n)\n\n# Filtrando usando o AND\ndb.detele_data(\n    tablename='usuarios',\n    condition=db.delete_by(\n        column='id'\n    ).EQUAL(\n        value=1\n    ).AND.filterby(\n        column='username'\n    ).CONTAIN(\n        value='moz'\n    )\n)\n```\n***\n\n### Ver os Dados\n```python\nfrom manage_sql import MYSQL\n\ndb = MYSQL(\n    host='hostname',\n    username='username',\n    password='user_password',\n    database='database_name'\n)\n\ndados = db.select_data(\n    tablename='usuarios',\n    columns=['id', 'nome', 'username'],\n    condition=db.filter_by(\n        column='id'\n    ).GATHER_OR_EQUAL(\n        value=1\n    )\n)\n\nprint(dados)\n```\n\n**Parametros**\n- `tablename`: *str* - nome da tabela\n- `columns`: *list[str]* (opcional) - lista de nome das colunas que pretende retornar. Caso não especifique, irá retornar todas colunas da tabela\n- `condition`: *Filter* - Para mais detalhes veja [parametros de filtragem](#Parametros-de-Filtragem)\n\n***\n\n### Actualizar Dados\n```python\nfrom manage_sql import MYSQL\n\ndb = MYSQL(\n    host='hostname',\n    username='username',\n    password='user_password',\n    database='database_name'\n)\n\ndb.update_data(\n    tablename='usuarios',\n    edit_query=db.ColumnData(\n        column='nome',\n        value='Alex Zunguze'\n    ),\n    condition=db.filter_by(\n        column='id'\n    ).EQUAL(\n        value=1\n    )\n)\n```\n\n**Parametros**\n- `tablename`: str - nome da tabela que pretende inserir os dados\n- `edit_query`: *list[ColumnData]* - lista de ColumnData abaixo descritos\n- `ColumnData`: ColumnDate - instância para inserir os dados nas colunas da tabela. Recebe `column` que corresponde ao nome da coluna e `value` correspondente ao novo valor a inserir\n- `condition`: *Filter* (opcional) - Para mais detalhes veja [parametros de filtragem](#Parametros-de-Filtragem)\n\n***\n\n### Adiconar Coluna\n```python\ndb = MYSQL(\n    host='hostname',\n    username='username',\n    password='user_password',\n    database='database_name'\n)\n\ndb.add_column(\n    tablename='usuarios',\n    column=db.Column(\n        name='idade',\n        column_type=db.Column_types.Integer.integer\n    )\n)\n```\n\n**Parametros**\n- `tablename`: *str* - nome da tabela\n- `column`: *Column* - instância contendo os detalhes na coluna a ser adicionada\n\nMais Detalhes sobre a `Column` veja a documentação [clicando aqui](#criar-tabela)\n\n***\n\n### Apagar Coluna\n```python\nfrom manage_sql import MYSQL\n\ndb = MYSQL(\n    host='hostname',\n    username='username',\n    password='user_password',\n    database='database_name'\n)\n\ndb.drop_column(\n    tablename='usuarios',\n    column_name='idade'\n)\n```\n\n**Parametros**\n- `tablename`: *str* - nome da tabela\n- `column_name`: *str* - nome da coluna que pretende apagar\n\n***\n\n### Apagar Tabela\n```python\nfrom manage_sql import MYSQL\n\ndb = MYSQL(\n    host='hostname',\n    username='username',\n    password='user_password',\n    database='database_name'\n)\n\ndb.drop_table(\n    tablename='usuarios'\n)\n```\n\n**Parametros**\n- `tablename`: *str* - nome da tabela que pretende apagar\n\n**Atenção**: Tenha em atenção que se executar este comando perderá todos dados dentro da referida tabela.\n\n### Comandos SQL\nCaso queira rodar outras queries SQL que o `manage_sql` ainda não possua de forma nativa, pode usar o método `execute_query` conforme vem no exemplo abaixo:\n\n```python\nfrom manage_sql import MYSQL\n\ndb = MYSQL(\n    host='hostname',\n    username='username',\n    password='user_password',\n    database='database_name'\n)\n\ncolumns = db.execute_query(\n    query='show columns from usuarios'\n)\n\nprint(columns)\n```\n\n### Encriptar Valores\nO `manage_sql` possui um metodo proprio para encriptar valores baseado no hash512 que geral 128 caracteres aleatórios. É util para armazenar senhas criptografadas\n\n```python\nfrom manage_sql import MYSQL\ndb = MYSQL(\n    host='hostname',\n    username='username',\n    password='user_password',\n    database='database_name'\n)\n\nhash_value = db.encrypt_value(\n    value='Aa12456'\n)\n```","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebtechmoz%2Fmanage-sql","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwebtechmoz%2Fmanage-sql","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebtechmoz%2Fmanage-sql/lists"}