manage-sql 0.7.0.dev9293__tar.gz → 0.7.1.dev1015__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- manage_sql-0.7.1.dev1015/PKG-INFO +441 -0
- manage_sql-0.7.1.dev1015/README.md +418 -0
- {manage_sql-0.7.0.dev9293 → manage_sql-0.7.1.dev1015}/manage_sql/Utils/MYSQL.py +111 -7
- {manage_sql-0.7.0.dev9293 → manage_sql-0.7.1.dev1015}/manage_sql/Utils/POSTGRESQL.py +166 -4
- manage_sql-0.7.1.dev1015/manage_sql/Utils/SQLITE.py +424 -0
- {manage_sql-0.7.0.dev9293 → manage_sql-0.7.1.dev1015}/manage_sql/Utils/utils_mysql.py +166 -3
- {manage_sql-0.7.0.dev9293 → manage_sql-0.7.1.dev1015}/manage_sql/Utils/utils_postgres.py +54 -2
- {manage_sql-0.7.0.dev9293 → manage_sql-0.7.1.dev1015}/manage_sql/Utils/utils_sqlite.py +92 -3
- manage_sql-0.7.1.dev1015/manage_sql/__init__.py +3 -0
- manage_sql-0.7.1.dev1015/manage_sql.egg-info/PKG-INFO +441 -0
- {manage_sql-0.7.0.dev9293 → manage_sql-0.7.1.dev1015}/setup.py +2 -2
- manage_sql-0.7.0.dev9293/PKG-INFO +0 -666
- manage_sql-0.7.0.dev9293/README.md +0 -643
- manage_sql-0.7.0.dev9293/manage_sql/Utils/SQLITE.py +0 -232
- manage_sql-0.7.0.dev9293/manage_sql/__init__.py +0 -3
- manage_sql-0.7.0.dev9293/manage_sql.egg-info/PKG-INFO +0 -666
- {manage_sql-0.7.0.dev9293 → manage_sql-0.7.1.dev1015}/LICENCE +0 -0
- {manage_sql-0.7.0.dev9293 → manage_sql-0.7.1.dev1015}/manage_sql/Utils/__init__.py +0 -0
- {manage_sql-0.7.0.dev9293 → manage_sql-0.7.1.dev1015}/manage_sql.egg-info/SOURCES.txt +0 -0
- {manage_sql-0.7.0.dev9293 → manage_sql-0.7.1.dev1015}/manage_sql.egg-info/dependency_links.txt +0 -0
- {manage_sql-0.7.0.dev9293 → manage_sql-0.7.1.dev1015}/manage_sql.egg-info/requires.txt +0 -0
- {manage_sql-0.7.0.dev9293 → manage_sql-0.7.1.dev1015}/manage_sql.egg-info/top_level.txt +0 -0
- {manage_sql-0.7.0.dev9293 → manage_sql-0.7.1.dev1015}/setup.cfg +0 -0
|
@@ -0,0 +1,441 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: manage-sql
|
|
3
|
+
Version: 0.7.1.dev1015
|
|
4
|
+
Summary: Python library for managing SQLite, MySQL, and PostgreSQL databases with greater efficiency.
|
|
5
|
+
Home-page: https://github.com/webtechmoz/manage-sql.git
|
|
6
|
+
Author: Web Tech Moz
|
|
7
|
+
Author-email: zoidycine@gmail.com
|
|
8
|
+
License: MIT
|
|
9
|
+
Keywords: manage-sql,sqlite,sqlite manager,mysql,mysql manager,mysql python,mysql connector,postgresql connector,postgresql,postgresql python
|
|
10
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.7
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.6
|
|
15
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
16
|
+
Classifier: Operating System :: OS Independent
|
|
17
|
+
Requires-Python: >=3.6
|
|
18
|
+
Description-Content-Type: text/markdown
|
|
19
|
+
License-File: LICENCE
|
|
20
|
+
Requires-Dist: mysql-connector
|
|
21
|
+
Requires-Dist: mysql-connector-python
|
|
22
|
+
Requires-Dist: psycopg2-binary
|
|
23
|
+
|
|
24
|
+
# MANAGE-SQL DOCUMENTATION
|
|
25
|
+
|
|
26
|
+
A classe **manage-sql** foi feita de modo a facilitar a gestão e interação com bancos de dados sqlite.
|
|
27
|
+
|
|
28
|
+
## Funcionalidades
|
|
29
|
+
- Criação e gestão de bancos de dados sqlite, mysql e postegres.
|
|
30
|
+
- Definição de estruturas de tabelas usando tipos de colunas customizadas.
|
|
31
|
+
- Maior performance nas operações CRUD.
|
|
32
|
+
- Executar operações sql brutas sem depender da classe
|
|
33
|
+
- Método próprio para encriptar valores sensíveis como senhas.
|
|
34
|
+
|
|
35
|
+
## Instalação
|
|
36
|
+
Primeiro garanta que tem o python instalando. Caso não tenha o python, [clique aqui](https://www.python.org/downloads/)
|
|
37
|
+
|
|
38
|
+
Segundo, instale a biblioteca manage-sql usando o comando abaixo na linha de comandos
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
pip install manage.sql
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Métodos
|
|
45
|
+
|
|
46
|
+
Para fazer a gestão dos bancos de dados, ao importar pode fazer o *import* dependendo do tipo de banco que pretende gerir.
|
|
47
|
+
|
|
48
|
+
```python
|
|
49
|
+
from manage_sql import SQLITE
|
|
50
|
+
from manage_sql import MYSQL
|
|
51
|
+
from manage_sql import POSTEGRESQL
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Conectando com o banco
|
|
55
|
+
#### SQLITE
|
|
56
|
+
```python
|
|
57
|
+
from manage_sql import SQLITE
|
|
58
|
+
|
|
59
|
+
db = SQLITE(
|
|
60
|
+
database = 'my_database',
|
|
61
|
+
path = 'path_database'
|
|
62
|
+
)
|
|
63
|
+
```
|
|
64
|
+
**Parametros**
|
|
65
|
+
- `database`: *str* (opcional) - nome do banco de dados sqlite
|
|
66
|
+
- `path`: *str* (opcional) - local onde pretender colocar o banco de dados. Caso não defina, o caminho padrão será o */database*
|
|
67
|
+
|
|
68
|
+
***
|
|
69
|
+
|
|
70
|
+
#### MYSQL
|
|
71
|
+
```python
|
|
72
|
+
from manage_sql import MYSQL
|
|
73
|
+
|
|
74
|
+
db = MYSQL(
|
|
75
|
+
host = 'localhost',
|
|
76
|
+
username = 'mysql_user',
|
|
77
|
+
password = 'user_password',
|
|
78
|
+
database = 'database_name',
|
|
79
|
+
port = 3306
|
|
80
|
+
)
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
**Parametros**
|
|
84
|
+
- `host`: *str* - local onde está a rodar o servidor mysql
|
|
85
|
+
- `username`: *str* - usuario do banco de dados
|
|
86
|
+
- `password`: *str* - palavra-passe do usuario mysql
|
|
87
|
+
- `database`: *str* (opcional) - nome do banco de dados mysql
|
|
88
|
+
- `port`: *int* (opcional) - a porta padrão do servidor mysql é o **3306**
|
|
89
|
+
|
|
90
|
+
***
|
|
91
|
+
|
|
92
|
+
#### POSTGRESQL
|
|
93
|
+
- **Conectar usando o postegres_url (dsn)**
|
|
94
|
+
```python
|
|
95
|
+
from manage_sql import POSTEGRESQL
|
|
96
|
+
|
|
97
|
+
db = POSTEGRESQL(
|
|
98
|
+
postegres_url = 'postegres_url',
|
|
99
|
+
)
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
- **Conectar usando os parametros normais**
|
|
103
|
+
```python
|
|
104
|
+
from manage_sql import POSTEGRESQL
|
|
105
|
+
|
|
106
|
+
db = POSTEGRESQL(
|
|
107
|
+
host = 'localhost',
|
|
108
|
+
username = 'postgres_user',
|
|
109
|
+
password = 'user_password',
|
|
110
|
+
database = 'database_name',
|
|
111
|
+
port = 5432
|
|
112
|
+
)
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
**Parametros**
|
|
116
|
+
- `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)
|
|
117
|
+
- `host`: *str* - local onde está a rodar o servidor postgres
|
|
118
|
+
- `username`: *str* - usuario do banco de dados
|
|
119
|
+
- `password`: *str* - palavra-passe do usuario postgres
|
|
120
|
+
- `database`: *str* (opcional) - nome do banco de dados postgres
|
|
121
|
+
- `port`: *int* (opcional) - a porta padrão do servidor postgres é **5432**
|
|
122
|
+
|
|
123
|
+
***
|
|
124
|
+
*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***
|
|
125
|
+
***
|
|
126
|
+
|
|
127
|
+
### Criar Tabela
|
|
128
|
+
```python
|
|
129
|
+
from manage_sql import MYSQL
|
|
130
|
+
|
|
131
|
+
db = MYSQL(
|
|
132
|
+
host='localhost',
|
|
133
|
+
username='root',
|
|
134
|
+
password='Alex756545!',
|
|
135
|
+
database='usuarios'
|
|
136
|
+
)
|
|
137
|
+
|
|
138
|
+
db.create_table(
|
|
139
|
+
tablename='usuarios',
|
|
140
|
+
columns=[
|
|
141
|
+
db.Column(
|
|
142
|
+
name='nome',
|
|
143
|
+
column_type=db.column_types.Char(60).varchar
|
|
144
|
+
),
|
|
145
|
+
db.Column(
|
|
146
|
+
name='username',
|
|
147
|
+
column_type=db.column_types.Char(60).varchar
|
|
148
|
+
)
|
|
149
|
+
]
|
|
150
|
+
)
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
**Parametros**
|
|
154
|
+
- `tablename`: *str* - nome da tabela que pretende criar no banco de dados especificado na conexão
|
|
155
|
+
- `columns`: *list[Column]* - lista de colunas que pretende criar dentro da tabela.
|
|
156
|
+
|
|
157
|
+
**Nota 1:** A documentação devida do `Column` será feita em breve.
|
|
158
|
+
**Nota 2:** Tenha atenção aos tipos do `column_types`, dado que cada tipo de banco de dados possui seus respectivos tipos.
|
|
159
|
+
|
|
160
|
+
***
|
|
161
|
+
|
|
162
|
+
### Inserir Dados
|
|
163
|
+
```python
|
|
164
|
+
from manage_sql import MYSQL
|
|
165
|
+
|
|
166
|
+
db = MYSQL(
|
|
167
|
+
host='localhost',
|
|
168
|
+
username='root',
|
|
169
|
+
password='Alex756545!',
|
|
170
|
+
database='usuarios'
|
|
171
|
+
)
|
|
172
|
+
|
|
173
|
+
db.insert_data(
|
|
174
|
+
tablename='usuarios',
|
|
175
|
+
insert_query=[
|
|
176
|
+
db.ColumnData(
|
|
177
|
+
column='nome',
|
|
178
|
+
value='Web Tech Moz'
|
|
179
|
+
),
|
|
180
|
+
db.ColumnData(
|
|
181
|
+
column='nome',
|
|
182
|
+
value='webtechmoz'
|
|
183
|
+
)
|
|
184
|
+
]
|
|
185
|
+
)
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
**Parametros**
|
|
189
|
+
- `tablename`: str - nome da tabela que pretende inserir os dados
|
|
190
|
+
- `insert_query`: *list[ColumnData]* - lista de ColumnData abaixo descritos
|
|
191
|
+
- `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
|
|
192
|
+
|
|
193
|
+
***
|
|
194
|
+
|
|
195
|
+
### Apagar Dados
|
|
196
|
+
```python
|
|
197
|
+
from manage_sql import MYSQL
|
|
198
|
+
|
|
199
|
+
db = MYSQL(
|
|
200
|
+
host='localhost',
|
|
201
|
+
username='root',
|
|
202
|
+
password='Alex756545!',
|
|
203
|
+
database='usuarios'
|
|
204
|
+
)
|
|
205
|
+
|
|
206
|
+
db.detele_data(
|
|
207
|
+
tablename='usuarios',
|
|
208
|
+
condition=db.delete_by(
|
|
209
|
+
column='id'
|
|
210
|
+
).EQUAL(
|
|
211
|
+
value=1
|
|
212
|
+
)
|
|
213
|
+
)
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
**Parametros**
|
|
217
|
+
- `tablename`: *str* - nome da tabela que pretende inserir os dados
|
|
218
|
+
- `condition`: *Filter* (opcional) - método de filtragem que permite selecionar o(s) dado(s) que pretende apagar.
|
|
219
|
+
|
|
220
|
+
**Parametros de Filtragem**
|
|
221
|
+
O `delete_by` deve receber uma coluna base para fazer a filtragem dos dados. Este método possui várioss metodos de filtragem abaixo indicados:
|
|
222
|
+
- `EQUAL`: recebe um valor em que a coluna especificada deverá ser igual `=`
|
|
223
|
+
- `GATHER_THAN`: recebe um valor minimo para comparação `>`
|
|
224
|
+
- `GATHER_OR_EQUAL`: recebe um valor que deverá ser o mínimo incluido para comparação `>=`
|
|
225
|
+
- `LESS_THAN`: recebe um valor máximo para comparação `<`
|
|
226
|
+
- `LESS_OR_EQUAL`: recebe um valor máximo incluido `<=`
|
|
227
|
+
- `CONTAIN`: recebe uma parte de texto para validação de strings `LIKE`
|
|
228
|
+
|
|
229
|
+
Pode tambem fazer filtragem em multiplas colunas usando as condicionais abaixo:
|
|
230
|
+
|
|
231
|
+
- **`OR`** e **`AND`**
|
|
232
|
+
```python
|
|
233
|
+
from manage_sql import MYSQL
|
|
234
|
+
|
|
235
|
+
db = MYSQL(
|
|
236
|
+
host='localhost',
|
|
237
|
+
username='root',
|
|
238
|
+
password='Alex756545!',
|
|
239
|
+
database='usuarios'
|
|
240
|
+
)
|
|
241
|
+
|
|
242
|
+
# Filtrando usando o OR
|
|
243
|
+
db.detele_data(
|
|
244
|
+
tablename='usuarios',
|
|
245
|
+
condition=db.delete_by(
|
|
246
|
+
column='id'
|
|
247
|
+
).EQUAL(
|
|
248
|
+
value=1
|
|
249
|
+
).OR.filterby(
|
|
250
|
+
column='username'
|
|
251
|
+
).CONTAIN(
|
|
252
|
+
value='moz'
|
|
253
|
+
)
|
|
254
|
+
)
|
|
255
|
+
|
|
256
|
+
# Filtrando usando o AND
|
|
257
|
+
db.detele_data(
|
|
258
|
+
tablename='usuarios',
|
|
259
|
+
condition=db.delete_by(
|
|
260
|
+
column='id'
|
|
261
|
+
).EQUAL(
|
|
262
|
+
value=1
|
|
263
|
+
).AND.filterby(
|
|
264
|
+
column='username'
|
|
265
|
+
).CONTAIN(
|
|
266
|
+
value='moz'
|
|
267
|
+
)
|
|
268
|
+
)
|
|
269
|
+
```
|
|
270
|
+
***
|
|
271
|
+
|
|
272
|
+
### Ver os Dados
|
|
273
|
+
```python
|
|
274
|
+
from manage_sql import MYSQL
|
|
275
|
+
|
|
276
|
+
db = MYSQL(
|
|
277
|
+
host='localhost',
|
|
278
|
+
username='root',
|
|
279
|
+
password='Alex756545!',
|
|
280
|
+
database='usuarios'
|
|
281
|
+
)
|
|
282
|
+
|
|
283
|
+
dados = db.select_data(
|
|
284
|
+
tablename='usuarios',
|
|
285
|
+
columns=['id', 'nome', 'username'],
|
|
286
|
+
condition=db.filter_by(
|
|
287
|
+
column='id'
|
|
288
|
+
).GATHER_OR_EQUAL(
|
|
289
|
+
value=1
|
|
290
|
+
)
|
|
291
|
+
)
|
|
292
|
+
|
|
293
|
+
print(dados)
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
**Parametros**
|
|
297
|
+
- `tablename`: *str* - nome da tabela
|
|
298
|
+
- `columns`: *list[str]* (opcional) - lista de nome das colunas que pretende retornar. Caso não especifique, irá retornar todas colunas da tabela
|
|
299
|
+
- `condition`: *Filter* - Para mais detalhes veja [parametros de filtragem](#Parametros-de-Filtragem)
|
|
300
|
+
|
|
301
|
+
***
|
|
302
|
+
|
|
303
|
+
### Actualizar Dados
|
|
304
|
+
```python
|
|
305
|
+
from manage_sql import MYSQL
|
|
306
|
+
|
|
307
|
+
db = MYSQL(
|
|
308
|
+
host='localhost',
|
|
309
|
+
username='root',
|
|
310
|
+
password='Alex756545!',
|
|
311
|
+
database='usuarios'
|
|
312
|
+
)
|
|
313
|
+
|
|
314
|
+
db.update_data(
|
|
315
|
+
tablename='usuarios',
|
|
316
|
+
edit_query=db.ColumnData(
|
|
317
|
+
column='nome',
|
|
318
|
+
value='Alex Zunguze'
|
|
319
|
+
),
|
|
320
|
+
condition=db.filter_by(
|
|
321
|
+
column='id'
|
|
322
|
+
).EQUAL(
|
|
323
|
+
value=1
|
|
324
|
+
)
|
|
325
|
+
)
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
**Parametros**
|
|
329
|
+
- `tablename`: str - nome da tabela que pretende inserir os dados
|
|
330
|
+
- `edit_query`: *list[ColumnData]* - lista de ColumnData abaixo descritos
|
|
331
|
+
- `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
|
|
332
|
+
- `condition`: *Filter* (opcional) - Para mais detalhes veja [parametros de filtragem](#Parametros-de-Filtragem)
|
|
333
|
+
|
|
334
|
+
***
|
|
335
|
+
|
|
336
|
+
### Adiconar Coluna
|
|
337
|
+
```python
|
|
338
|
+
db = MYSQL(
|
|
339
|
+
host='localhost',
|
|
340
|
+
username='root',
|
|
341
|
+
password='Alex756545!',
|
|
342
|
+
database='usuarios'
|
|
343
|
+
)
|
|
344
|
+
|
|
345
|
+
db.add_column(
|
|
346
|
+
tablename='usuarios',
|
|
347
|
+
column=db.Column(
|
|
348
|
+
name='idade',
|
|
349
|
+
column_type=db.column_types.Integer.integer
|
|
350
|
+
)
|
|
351
|
+
)
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
**Parametros**
|
|
355
|
+
- `tablename`: *str* - nome da tabela
|
|
356
|
+
- `column`: *Column* - instância contendo os detalhes na coluna a ser adicionada
|
|
357
|
+
|
|
358
|
+
Mais Detalhes sobre a `Column` veja a documentação [clicando aqui](#criar-tabela)
|
|
359
|
+
|
|
360
|
+
***
|
|
361
|
+
|
|
362
|
+
### Apagar Coluna
|
|
363
|
+
```python
|
|
364
|
+
from manage_sql import MYSQL
|
|
365
|
+
|
|
366
|
+
db = MYSQL(
|
|
367
|
+
host='localhost',
|
|
368
|
+
username='root',
|
|
369
|
+
password='Alex756545!',
|
|
370
|
+
database='usuarios'
|
|
371
|
+
)
|
|
372
|
+
|
|
373
|
+
db.drop_column(
|
|
374
|
+
tablename='usuarios',
|
|
375
|
+
column_name='idade'
|
|
376
|
+
)
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
**Parametros**
|
|
380
|
+
- `tablename`: *str* - nome da tabela
|
|
381
|
+
- `column_name`: *str* - nome da coluna que pretende apagar
|
|
382
|
+
|
|
383
|
+
***
|
|
384
|
+
|
|
385
|
+
### Apagar Tabela
|
|
386
|
+
```python
|
|
387
|
+
from manage_sql import MYSQL
|
|
388
|
+
|
|
389
|
+
db = MYSQL(
|
|
390
|
+
host='localhost',
|
|
391
|
+
username='root',
|
|
392
|
+
password='Alex756545!',
|
|
393
|
+
database='usuarios'
|
|
394
|
+
)
|
|
395
|
+
|
|
396
|
+
db.drop_table(
|
|
397
|
+
tablename='usuarios'
|
|
398
|
+
)
|
|
399
|
+
```
|
|
400
|
+
|
|
401
|
+
**Parametros**
|
|
402
|
+
- `tablename`: *str* - nome da tabela que pretende apagar
|
|
403
|
+
|
|
404
|
+
**Atenção**: Tenha em atenção que se executar este comando perderá todos dados dentro da referida tabela.
|
|
405
|
+
|
|
406
|
+
### Comandos SQL
|
|
407
|
+
Caso 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:
|
|
408
|
+
|
|
409
|
+
```python
|
|
410
|
+
from manage_sql import MYSQL
|
|
411
|
+
|
|
412
|
+
db = MYSQL(
|
|
413
|
+
host='localhost',
|
|
414
|
+
username='root',
|
|
415
|
+
password='Alex756545!',
|
|
416
|
+
database='usuarios'
|
|
417
|
+
)
|
|
418
|
+
|
|
419
|
+
columns = db.execute_query(
|
|
420
|
+
query='show columns from usuarios'
|
|
421
|
+
)
|
|
422
|
+
|
|
423
|
+
print(columns)
|
|
424
|
+
```
|
|
425
|
+
|
|
426
|
+
### Encriptar Valores
|
|
427
|
+
O `manage_sql` possui um metodo proprio para encriptar valores baseado no hash512 que geral 128 caracteres aleatórios. É util para armazenar senhas criptografadas
|
|
428
|
+
|
|
429
|
+
```python
|
|
430
|
+
from manage_sql import MYSQL
|
|
431
|
+
db = MYSQL(
|
|
432
|
+
host='localhost',
|
|
433
|
+
username='root',
|
|
434
|
+
password='Alex756545!',
|
|
435
|
+
database='usuarios'
|
|
436
|
+
)
|
|
437
|
+
|
|
438
|
+
hash_value = db.encrypt_value(
|
|
439
|
+
value='Aa12456'
|
|
440
|
+
)
|
|
441
|
+
```
|