manage-sql 0.2.3__tar.gz → 0.3.3__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.2.3 → manage_sql-0.3.3}/PKG-INFO +97 -23
- {manage_sql-0.2.3 → manage_sql-0.3.3}/README.md +95 -20
- {manage_sql-0.2.3 → manage_sql-0.3.3}/manage_sql/SQLITE.py +204 -52
- {manage_sql-0.2.3 → manage_sql-0.3.3}/manage_sql/test_SQLITE.py +35 -3
- {manage_sql-0.2.3 → manage_sql-0.3.3}/manage_sql.egg-info/PKG-INFO +97 -23
- {manage_sql-0.2.3 → manage_sql-0.3.3}/manage_sql.egg-info/requires.txt +0 -1
- {manage_sql-0.2.3 → manage_sql-0.3.3}/setup.py +2 -3
- {manage_sql-0.2.3 → manage_sql-0.3.3}/LICENCE +0 -0
- {manage_sql-0.2.3 → manage_sql-0.3.3}/manage_sql/__init__.py +0 -0
- {manage_sql-0.2.3 → manage_sql-0.3.3}/manage_sql.egg-info/SOURCES.txt +0 -0
- {manage_sql-0.2.3 → manage_sql-0.3.3}/manage_sql.egg-info/dependency_links.txt +0 -0
- {manage_sql-0.2.3 → manage_sql-0.3.3}/manage_sql.egg-info/top_level.txt +0 -0
- {manage_sql-0.2.3 → manage_sql-0.3.3}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: manage-sql
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.3
|
|
4
4
|
Summary: Biblioteca Python para gestão de bases de dados SQLite com maior eficiência
|
|
5
5
|
Home-page: https://github.com/webtechmoz/manage-sql
|
|
6
6
|
Author: Web Tech Moz
|
|
@@ -10,38 +10,40 @@ Keywords: manage-sql,sqlite,sqlite manager
|
|
|
10
10
|
Classifier: Programming Language :: Python :: 3
|
|
11
11
|
Classifier: License :: OSI Approved :: MIT License
|
|
12
12
|
Classifier: Operating System :: OS Independent
|
|
13
|
-
Requires-Python: >=3.
|
|
13
|
+
Requires-Python: >=3.10
|
|
14
14
|
Description-Content-Type: text/markdown
|
|
15
15
|
License-File: LICENCE
|
|
16
16
|
Requires-Dist: deprecated
|
|
17
17
|
Requires-Dist: dataclasses
|
|
18
|
-
Requires-Dist: pathlib
|
|
19
18
|
|
|
20
19
|
# SQLITE.py
|
|
21
20
|
|
|
22
21
|
`SQLITE.py` é uma classe Python para interagir com bancos de dados SQLite de forma simplificada. Esta classe fornece métodos para conectar a um banco de dados, criar tabelas, inserir dados e outras operações básicas.
|
|
23
22
|
|
|
24
23
|
## Índice
|
|
25
|
-
1. [
|
|
26
|
-
2. [
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
- [
|
|
31
|
-
- [
|
|
32
|
-
- [
|
|
33
|
-
- [
|
|
34
|
-
- [
|
|
35
|
-
- [
|
|
36
|
-
- [
|
|
37
|
-
- [apagarTabela](#apagartabela)
|
|
38
|
-
- [verDados](#verdados)
|
|
39
|
-
- [encryptPass (descontinuado)](#encryptpass-descontinuado)
|
|
40
|
-
- [encriptarValor](#encriptarvalor)
|
|
24
|
+
1. [Instalação](#instalação)
|
|
25
|
+
2. [Uso da Classe SQLITE](#uso)
|
|
26
|
+
1. [Métodos Disponíveis](#Métodos)
|
|
27
|
+
- [conectarBanco](#Conectar-Banco)
|
|
28
|
+
- [criarTabela](#Criar-Tabela)
|
|
29
|
+
- [inserirDados](#Inserir-Dados)
|
|
30
|
+
- [apagarDados](#Apagar-Dados)
|
|
31
|
+
- [editarDados](#Editar-Dados)
|
|
32
|
+
- [adicionarColuna](#Adicionar-Coluna)
|
|
33
|
+
- [apagarColuna](#Apagar-Coluna)
|
|
34
|
+
- [apagarTabela](#Apagar-Tabela)
|
|
35
|
+
- [verDados](#Ver-Dados)
|
|
41
36
|
- [verDadosPlus (descontinuado)](#verdadosplus-descontinuado)
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
37
|
+
- [encryptPass (descontinuado)](#encryptpass-descontinuado)
|
|
38
|
+
- [encriptarValor](#Encriptar-valor)
|
|
39
|
+
- [numeroTabelas](#número-de-tabelas)
|
|
40
|
+
- [nomeTabelas](#nome-de-tabelas)
|
|
41
|
+
- [totalLinhas](#total-linhas)
|
|
42
|
+
- [ultimaLinha](#última-linha)
|
|
43
|
+
- [numeroColunas](#número-de-colunas)
|
|
44
|
+
- [nomeColunas](#nome-de-colunas)
|
|
45
|
+
3. [Contibuição](#contribuição)
|
|
46
|
+
4. [Licença](#licença)
|
|
45
47
|
|
|
46
48
|
## Instalação
|
|
47
49
|
|
|
@@ -117,7 +119,7 @@ db.inserirDados(
|
|
|
117
119
|
)
|
|
118
120
|
```
|
|
119
121
|
|
|
120
|
-
###
|
|
122
|
+
### Ver Dados
|
|
121
123
|
Consulta dados da tabela especificada.
|
|
122
124
|
|
|
123
125
|
#### Parâmetros:
|
|
@@ -147,6 +149,78 @@ db.deletarDados(
|
|
|
147
149
|
)
|
|
148
150
|
```
|
|
149
151
|
|
|
152
|
+
### Número de Tabelas
|
|
153
|
+
Retorna o número de tabelas constantes na base de dados.
|
|
154
|
+
|
|
155
|
+
#### Exemplo de uso:
|
|
156
|
+
```python
|
|
157
|
+
db.numeroTabelas
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### Nome de Tabelas
|
|
161
|
+
Retorna o nome de todas tabelas constantes na base de dados.
|
|
162
|
+
|
|
163
|
+
#### Exemplo de uso:
|
|
164
|
+
```python
|
|
165
|
+
db.nomeTabelas
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### Total Linhas
|
|
169
|
+
Retorna o numero total de registos dentro de uma tabela.
|
|
170
|
+
|
|
171
|
+
#### Parâmetros:
|
|
172
|
+
nomeTabela (str): Nome da tabela de onde os dados serão contados.
|
|
173
|
+
return (int): total de registos dentro do banco de dados
|
|
174
|
+
|
|
175
|
+
#### Exemplo de uso:
|
|
176
|
+
```python
|
|
177
|
+
db.totalLinhas(
|
|
178
|
+
nomeTabela='minha_tabela',
|
|
179
|
+
)
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### Última Linha
|
|
183
|
+
Retorna todos os dados do último registo dentro de uma tabela.
|
|
184
|
+
|
|
185
|
+
#### Parâmetros:
|
|
186
|
+
nomeTabela (str): Nome da tabela de onde os dados serão verificados.
|
|
187
|
+
return (list): dados do ultimo registo da tabela
|
|
188
|
+
|
|
189
|
+
#### Exemplo de uso:
|
|
190
|
+
```python
|
|
191
|
+
db.ultimaLinhas(
|
|
192
|
+
nomeTabela='minha_tabela',
|
|
193
|
+
)
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
### Número de Colunas
|
|
197
|
+
Retorna o número total de colunas dentro de uma tabela.
|
|
198
|
+
|
|
199
|
+
#### Parâmetros:
|
|
200
|
+
nomeTabela (str): Nome da tabela de onde as colunas serão verificadas.
|
|
201
|
+
return (int): número de colunas dentro da tabela
|
|
202
|
+
|
|
203
|
+
#### Exemplo de uso:
|
|
204
|
+
```python
|
|
205
|
+
db.numeroColunas(
|
|
206
|
+
nomeTabela='minha_tabela',
|
|
207
|
+
)
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
### Nome de Colunas
|
|
211
|
+
Retorna o nome de todas as colunas dentro de uma tabela.
|
|
212
|
+
|
|
213
|
+
#### Parâmetros:
|
|
214
|
+
nomeTabela (str): Nome da tabela de onde as colunas serão verificadas.
|
|
215
|
+
return (list): nome de colunas dentro da tabela
|
|
216
|
+
|
|
217
|
+
#### Exemplo de uso:
|
|
218
|
+
```python
|
|
219
|
+
db.nomeColunas(
|
|
220
|
+
nomeTabela='minha_tabela',
|
|
221
|
+
)
|
|
222
|
+
```
|
|
223
|
+
|
|
150
224
|
## Contribuição
|
|
151
225
|
Sinta-se à vontade para contribuir com melhorias e novas funcionalidades.
|
|
152
226
|
|
|
@@ -3,26 +3,29 @@
|
|
|
3
3
|
`SQLITE.py` é uma classe Python para interagir com bancos de dados SQLite de forma simplificada. Esta classe fornece métodos para conectar a um banco de dados, criar tabelas, inserir dados e outras operações básicas.
|
|
4
4
|
|
|
5
5
|
## Índice
|
|
6
|
-
1. [
|
|
7
|
-
2. [
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
- [
|
|
12
|
-
- [
|
|
13
|
-
- [
|
|
14
|
-
- [
|
|
15
|
-
- [
|
|
16
|
-
- [
|
|
17
|
-
- [
|
|
18
|
-
- [apagarTabela](#apagartabela)
|
|
19
|
-
- [verDados](#verdados)
|
|
20
|
-
- [encryptPass (descontinuado)](#encryptpass-descontinuado)
|
|
21
|
-
- [encriptarValor](#encriptarvalor)
|
|
6
|
+
1. [Instalação](#instalação)
|
|
7
|
+
2. [Uso da Classe SQLITE](#uso)
|
|
8
|
+
1. [Métodos Disponíveis](#Métodos)
|
|
9
|
+
- [conectarBanco](#Conectar-Banco)
|
|
10
|
+
- [criarTabela](#Criar-Tabela)
|
|
11
|
+
- [inserirDados](#Inserir-Dados)
|
|
12
|
+
- [apagarDados](#Apagar-Dados)
|
|
13
|
+
- [editarDados](#Editar-Dados)
|
|
14
|
+
- [adicionarColuna](#Adicionar-Coluna)
|
|
15
|
+
- [apagarColuna](#Apagar-Coluna)
|
|
16
|
+
- [apagarTabela](#Apagar-Tabela)
|
|
17
|
+
- [verDados](#Ver-Dados)
|
|
22
18
|
- [verDadosPlus (descontinuado)](#verdadosplus-descontinuado)
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
19
|
+
- [encryptPass (descontinuado)](#encryptpass-descontinuado)
|
|
20
|
+
- [encriptarValor](#Encriptar-valor)
|
|
21
|
+
- [numeroTabelas](#número-de-tabelas)
|
|
22
|
+
- [nomeTabelas](#nome-de-tabelas)
|
|
23
|
+
- [totalLinhas](#total-linhas)
|
|
24
|
+
- [ultimaLinha](#última-linha)
|
|
25
|
+
- [numeroColunas](#número-de-colunas)
|
|
26
|
+
- [nomeColunas](#nome-de-colunas)
|
|
27
|
+
3. [Contibuição](#contribuição)
|
|
28
|
+
4. [Licença](#licença)
|
|
26
29
|
|
|
27
30
|
## Instalação
|
|
28
31
|
|
|
@@ -98,7 +101,7 @@ db.inserirDados(
|
|
|
98
101
|
)
|
|
99
102
|
```
|
|
100
103
|
|
|
101
|
-
###
|
|
104
|
+
### Ver Dados
|
|
102
105
|
Consulta dados da tabela especificada.
|
|
103
106
|
|
|
104
107
|
#### Parâmetros:
|
|
@@ -128,6 +131,78 @@ db.deletarDados(
|
|
|
128
131
|
)
|
|
129
132
|
```
|
|
130
133
|
|
|
134
|
+
### Número de Tabelas
|
|
135
|
+
Retorna o número de tabelas constantes na base de dados.
|
|
136
|
+
|
|
137
|
+
#### Exemplo de uso:
|
|
138
|
+
```python
|
|
139
|
+
db.numeroTabelas
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### Nome de Tabelas
|
|
143
|
+
Retorna o nome de todas tabelas constantes na base de dados.
|
|
144
|
+
|
|
145
|
+
#### Exemplo de uso:
|
|
146
|
+
```python
|
|
147
|
+
db.nomeTabelas
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### Total Linhas
|
|
151
|
+
Retorna o numero total de registos dentro de uma tabela.
|
|
152
|
+
|
|
153
|
+
#### Parâmetros:
|
|
154
|
+
nomeTabela (str): Nome da tabela de onde os dados serão contados.
|
|
155
|
+
return (int): total de registos dentro do banco de dados
|
|
156
|
+
|
|
157
|
+
#### Exemplo de uso:
|
|
158
|
+
```python
|
|
159
|
+
db.totalLinhas(
|
|
160
|
+
nomeTabela='minha_tabela',
|
|
161
|
+
)
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
### Última Linha
|
|
165
|
+
Retorna todos os dados do último registo dentro de uma tabela.
|
|
166
|
+
|
|
167
|
+
#### Parâmetros:
|
|
168
|
+
nomeTabela (str): Nome da tabela de onde os dados serão verificados.
|
|
169
|
+
return (list): dados do ultimo registo da tabela
|
|
170
|
+
|
|
171
|
+
#### Exemplo de uso:
|
|
172
|
+
```python
|
|
173
|
+
db.ultimaLinhas(
|
|
174
|
+
nomeTabela='minha_tabela',
|
|
175
|
+
)
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### Número de Colunas
|
|
179
|
+
Retorna o número total de colunas dentro de uma tabela.
|
|
180
|
+
|
|
181
|
+
#### Parâmetros:
|
|
182
|
+
nomeTabela (str): Nome da tabela de onde as colunas serão verificadas.
|
|
183
|
+
return (int): número de colunas dentro da tabela
|
|
184
|
+
|
|
185
|
+
#### Exemplo de uso:
|
|
186
|
+
```python
|
|
187
|
+
db.numeroColunas(
|
|
188
|
+
nomeTabela='minha_tabela',
|
|
189
|
+
)
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
### Nome de Colunas
|
|
193
|
+
Retorna o nome de todas as colunas dentro de uma tabela.
|
|
194
|
+
|
|
195
|
+
#### Parâmetros:
|
|
196
|
+
nomeTabela (str): Nome da tabela de onde as colunas serão verificadas.
|
|
197
|
+
return (list): nome de colunas dentro da tabela
|
|
198
|
+
|
|
199
|
+
#### Exemplo de uso:
|
|
200
|
+
```python
|
|
201
|
+
db.nomeColunas(
|
|
202
|
+
nomeTabela='minha_tabela',
|
|
203
|
+
)
|
|
204
|
+
```
|
|
205
|
+
|
|
131
206
|
## Contribuição
|
|
132
207
|
Sinta-se à vontade para contribuir com melhorias e novas funcionalidades.
|
|
133
208
|
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import sqlite3 as sq
|
|
2
2
|
import hashlib as sh
|
|
3
|
-
from pathlib import Path
|
|
4
3
|
from deprecated import deprecated
|
|
5
4
|
import os
|
|
6
5
|
|
|
@@ -51,8 +50,17 @@ class SQLITE:
|
|
|
51
50
|
db = SQLITE('meu_banco)
|
|
52
51
|
```
|
|
53
52
|
"""
|
|
53
|
+
|
|
54
54
|
self.nomeBanco = nomeBanco
|
|
55
55
|
|
|
56
|
+
@property
|
|
57
|
+
def numeroTabelas(self) -> int:
|
|
58
|
+
return self._numeroTabelas
|
|
59
|
+
|
|
60
|
+
@property
|
|
61
|
+
def nomeTabelas(self) -> list:
|
|
62
|
+
return self._nomeTabelas
|
|
63
|
+
|
|
56
64
|
def conectarBanco(self):
|
|
57
65
|
"""
|
|
58
66
|
Conecta ao banco de dados e cria a pasta 'database' se não existir.
|
|
@@ -65,8 +73,11 @@ class SQLITE:
|
|
|
65
73
|
database, cursor = db.conectarBanco()
|
|
66
74
|
```
|
|
67
75
|
"""
|
|
68
|
-
|
|
69
|
-
|
|
76
|
+
try:
|
|
77
|
+
path = rf'{os.getcwd()}\database'
|
|
78
|
+
os.mkdir(path)
|
|
79
|
+
except:
|
|
80
|
+
pass
|
|
70
81
|
|
|
71
82
|
database = sq.connect(f'database/{self.nomeBanco}.db')
|
|
72
83
|
cursor = database.cursor()
|
|
@@ -297,7 +308,7 @@ class SQLITE:
|
|
|
297
308
|
|
|
298
309
|
return dados
|
|
299
310
|
|
|
300
|
-
@deprecated(reason='Esta função
|
|
311
|
+
@deprecated(reason='Esta função vai ser descontinuada na versão 0.4.0. Considere usar função verDados()')
|
|
301
312
|
def verDadosPlus(self, query: str, params: list):
|
|
302
313
|
"""
|
|
303
314
|
Consulta dados com base em uma query SQL customizada.
|
|
@@ -324,7 +335,7 @@ class SQLITE:
|
|
|
324
335
|
|
|
325
336
|
return dados
|
|
326
337
|
|
|
327
|
-
@deprecated(reason='Esta função vai ser descontinuada
|
|
338
|
+
@deprecated(reason='Esta função vai ser descontinuada na versão 0.4.0. Considere usar a função encriptarValor()')
|
|
328
339
|
def encryptPass(self, value: str):
|
|
329
340
|
"""
|
|
330
341
|
Gera um hash SHA-512 de um valor fornecido.
|
|
@@ -364,73 +375,214 @@ class SQLITE:
|
|
|
364
375
|
value_hashed = hash.hexdigest()
|
|
365
376
|
|
|
366
377
|
return value_hashed
|
|
378
|
+
|
|
379
|
+
@property
|
|
380
|
+
def _nomeTabelas(self):
|
|
381
|
+
database, cursor = self.conectarBanco()
|
|
382
|
+
rows = []
|
|
383
|
+
|
|
384
|
+
tables = cursor.execute(
|
|
385
|
+
'SELECT name FROM sqlite_master WHERE type = "table"'
|
|
386
|
+
).fetchall()
|
|
387
|
+
|
|
388
|
+
database.close()
|
|
389
|
+
|
|
390
|
+
for row in tables:
|
|
391
|
+
if row[0] != 'sqlite_sequence':
|
|
392
|
+
rows.append(row[0])
|
|
393
|
+
|
|
394
|
+
return rows
|
|
395
|
+
|
|
396
|
+
@property
|
|
397
|
+
def _numeroTabelas(self):
|
|
398
|
+
database, cursor = self.conectarBanco()
|
|
399
|
+
|
|
400
|
+
number = cursor.execute(
|
|
401
|
+
'SELECT COUNT(name) FROM sqlite_master WHERE type = "table"'
|
|
402
|
+
).fetchone()[0] - 1
|
|
403
|
+
|
|
404
|
+
database.close()
|
|
405
|
+
|
|
406
|
+
return number
|
|
407
|
+
|
|
408
|
+
def totalLinhas(self, nomeTabela: str):
|
|
409
|
+
database, cursor = self.conectarBanco()
|
|
410
|
+
|
|
411
|
+
number: int = cursor.execute(
|
|
412
|
+
f'SELECT COUNT("*") FROM {nomeTabela}'
|
|
413
|
+
).fetchone()[0]
|
|
414
|
+
|
|
415
|
+
database.close()
|
|
416
|
+
|
|
417
|
+
return number
|
|
418
|
+
|
|
419
|
+
def ultimaLinha(self, nomeTabela: str):
|
|
420
|
+
id = self.totalLinhas(nomeTabela)
|
|
421
|
+
database, cursor = self.conectarBanco()
|
|
422
|
+
|
|
423
|
+
if id != 0:
|
|
424
|
+
lastrow: list = cursor.execute(
|
|
425
|
+
f'SELECT * FROM {nomeTabela} WHERE id ="{id}"'
|
|
426
|
+
).fetchone()
|
|
427
|
+
|
|
428
|
+
database.close()
|
|
429
|
+
|
|
430
|
+
return lastrow
|
|
431
|
+
|
|
432
|
+
else:
|
|
433
|
+
database.close()
|
|
434
|
+
|
|
435
|
+
return id
|
|
436
|
+
|
|
437
|
+
def numeroColunas(self, nomeTabela: str):
|
|
438
|
+
database, cursor = self.conectarBanco()
|
|
439
|
+
|
|
440
|
+
number = cursor.execute(
|
|
441
|
+
f'PRAGMA table_info({nomeTabela})'
|
|
442
|
+
).fetchall()
|
|
443
|
+
|
|
444
|
+
database.close()
|
|
445
|
+
|
|
446
|
+
return len(number)
|
|
447
|
+
|
|
448
|
+
def nomeColunas(self, nomeTabela: str):
|
|
449
|
+
database, cursor = self.conectarBanco()
|
|
450
|
+
|
|
451
|
+
rows = cursor.execute(
|
|
452
|
+
f'PRAGMA table_info({nomeTabela})'
|
|
453
|
+
).fetchall()
|
|
454
|
+
|
|
455
|
+
database.close()
|
|
456
|
+
|
|
457
|
+
return [row[1] for row in rows]
|
|
367
458
|
|
|
368
459
|
|
|
369
460
|
if __name__ == '__main__':
|
|
370
|
-
# Exemplo de uso da classe SQLITE
|
|
371
|
-
db = SQLITE('users')
|
|
372
461
|
|
|
373
|
-
|
|
462
|
+
"""
|
|
463
|
+
Nesta secção vamos ver exemplo de como implementar cada função desta biblioteca
|
|
464
|
+
"""
|
|
465
|
+
|
|
466
|
+
# Criando a conexão com o banco de dados
|
|
467
|
+
db = SQLITE('usuarios')
|
|
468
|
+
|
|
469
|
+
# Criando as variáveis necessárias
|
|
470
|
+
nomebela = 'usuarios'
|
|
471
|
+
colunas = {
|
|
472
|
+
'nome': 'TEXT',
|
|
473
|
+
'usuario': 'TEXT',
|
|
474
|
+
'senha': 'TEXT',
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
dados = {
|
|
478
|
+
'nome': 'Alexandre Zunguze',
|
|
479
|
+
'usuario': 'azunguze',
|
|
480
|
+
'senha': 'Aa123'
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
# db.criarTabela()
|
|
374
484
|
db.criarTabela(
|
|
375
|
-
nomeTabela=
|
|
376
|
-
Colunas=[
|
|
377
|
-
ColunasTipo=[
|
|
485
|
+
nomeTabela=nomebela,
|
|
486
|
+
Colunas=[col for col in colunas],
|
|
487
|
+
ColunasTipo=[col for col in colunas.values()]
|
|
378
488
|
)
|
|
379
|
-
|
|
380
|
-
#
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
489
|
+
|
|
490
|
+
# db.inserirDados()
|
|
491
|
+
for _ in range(3):
|
|
492
|
+
db.inserirDados(
|
|
493
|
+
nomeTabela=nomebela,
|
|
494
|
+
Colunas=[col for col in dados],
|
|
495
|
+
dados=[dado for dado in dados.values()]
|
|
496
|
+
)
|
|
497
|
+
|
|
498
|
+
# db.apagarDados()
|
|
499
|
+
db.apagarDados(
|
|
500
|
+
nomeTabela=nomebela,
|
|
501
|
+
conditions='id = 3'
|
|
385
502
|
)
|
|
386
503
|
|
|
387
|
-
#
|
|
388
|
-
db.
|
|
389
|
-
nomeTabela=
|
|
390
|
-
Coluna=
|
|
391
|
-
|
|
392
|
-
)
|
|
504
|
+
# db.editarDados()
|
|
505
|
+
db.editarDados(
|
|
506
|
+
nomeTabela=nomebela,
|
|
507
|
+
Coluna=list(colunas.keys())[2],
|
|
508
|
+
Valor=db.encriptarValor('Aa123')
|
|
509
|
+
)
|
|
393
510
|
|
|
394
|
-
# Editar dados
|
|
395
511
|
db.editarDados(
|
|
396
|
-
nomeTabela=
|
|
397
|
-
Coluna=
|
|
398
|
-
Valor='
|
|
512
|
+
nomeTabela=nomebela,
|
|
513
|
+
Coluna=list(colunas.keys())[2],
|
|
514
|
+
Valor=db.encriptarValor('Aa123'),
|
|
515
|
+
conditions='id = 2'
|
|
399
516
|
)
|
|
400
517
|
|
|
401
|
-
#
|
|
402
|
-
|
|
403
|
-
|
|
518
|
+
# db.adicionarColuna()
|
|
519
|
+
db.adicionarColuna(
|
|
520
|
+
nomeTabela=nomebela,
|
|
521
|
+
Coluna='email',
|
|
522
|
+
ColunaTipo='TEXT'
|
|
523
|
+
)
|
|
404
524
|
|
|
405
|
-
#
|
|
525
|
+
# db.apagarColuna()
|
|
406
526
|
db.apagarColuna(
|
|
407
|
-
nomeTabela=
|
|
408
|
-
Coluna='
|
|
527
|
+
nomeTabela=nomebela,
|
|
528
|
+
Coluna='email'
|
|
529
|
+
)
|
|
530
|
+
|
|
531
|
+
# db.verDados()
|
|
532
|
+
dados_1 = db.verDados(
|
|
533
|
+
nomeTabela=nomebela
|
|
534
|
+
)
|
|
535
|
+
|
|
536
|
+
dados_2 = db.verDados(
|
|
537
|
+
nomeTabela=nomebela,
|
|
538
|
+
conditions='id = 1'
|
|
539
|
+
)
|
|
540
|
+
|
|
541
|
+
dados_3 = db.verDadosPlus(
|
|
542
|
+
query=f'SELECT * FROM {nomebela} WHERE id = ?',
|
|
543
|
+
params=[1]
|
|
544
|
+
) # Descontinuado, será desativado na versão 0.4.0
|
|
545
|
+
|
|
546
|
+
print(f'dados 1:{dados_1}\ndados 2: {dados_2}\ndados 3:{dados_3}')
|
|
547
|
+
|
|
548
|
+
# db.encryptPass()
|
|
549
|
+
print(
|
|
550
|
+
db.encryptPass(
|
|
551
|
+
value='Aa123'
|
|
552
|
+
) # Descontinuado, será apagado na verão 0.4.0
|
|
409
553
|
)
|
|
410
554
|
|
|
411
|
-
#
|
|
412
|
-
|
|
413
|
-
|
|
555
|
+
# db.numeroTabelas
|
|
556
|
+
print(f'numero de tabelas: {db.numeroTabelas}')
|
|
557
|
+
|
|
558
|
+
# db.nomeTabelas
|
|
559
|
+
print(f'nome tabelas: {db.nomeTabelas}')
|
|
414
560
|
|
|
415
|
-
#
|
|
416
|
-
|
|
417
|
-
nomeTabela='
|
|
418
|
-
Colunas=['nome', 'username', 'ColunaB'],
|
|
419
|
-
dados=['Alexandre Zunguze', 'azunguze', 'Qualquer coisa']
|
|
561
|
+
# db.numeroLinhas()
|
|
562
|
+
print(
|
|
563
|
+
f'numero linhas: {db.totalLinhas(nomeTabela=nomebela)}'
|
|
420
564
|
)
|
|
421
565
|
|
|
422
|
-
#
|
|
566
|
+
# db.ultimaLinha()
|
|
567
|
+
print(
|
|
568
|
+
f'ultima linha: {db.ultimaLinha(nomeTabela=nomebela)}'
|
|
569
|
+
)
|
|
570
|
+
|
|
571
|
+
# db.numeroColunas()
|
|
572
|
+
print(f'numero de colunas: {db.numeroColunas(nomeTabela=nomebela)}')
|
|
573
|
+
|
|
574
|
+
# db.nomeColunas()
|
|
575
|
+
print(f'nome de colunas: {db.nomeColunas(nomeTabela=nomebela)}')
|
|
576
|
+
|
|
577
|
+
# Apagador todos dados
|
|
423
578
|
db.apagarDados(
|
|
424
|
-
nomeTabela=
|
|
425
|
-
conditions='id = 1'
|
|
579
|
+
nomeTabela=nomebela
|
|
426
580
|
)
|
|
427
581
|
|
|
428
|
-
#
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
# Apagar tabela
|
|
433
|
-
db.apagarTabela('users')
|
|
582
|
+
# db.apagarTabela()
|
|
583
|
+
db.apagarTabela(
|
|
584
|
+
nomeTabela=nomebela
|
|
585
|
+
)
|
|
434
586
|
|
|
435
|
-
#
|
|
436
|
-
os.remove(rf'{
|
|
587
|
+
# apagar a database
|
|
588
|
+
os.remove(rf'{os.getcwd()}\database\usuarios.db')
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import unittest
|
|
2
|
-
from pathlib import Path
|
|
3
2
|
import os
|
|
4
3
|
from dataclasses import is_dataclass
|
|
5
4
|
|
|
@@ -17,7 +16,7 @@ class TestSQLITE(unittest.TestCase):
|
|
|
17
16
|
self.table_name = 'tabela_test'
|
|
18
17
|
self.columns = ['Col_1', 'Col_2', 'Col_3']
|
|
19
18
|
self.columns_type = ['TEXT', 'TEXT', 'INTEGER']
|
|
20
|
-
self.path: str = rf"{
|
|
19
|
+
self.path: str = rf"{os.getcwd()}\database\{self.db_name}.db"
|
|
21
20
|
self.database: SQLITE = SQLITE(self.db_name)
|
|
22
21
|
self.database.criarTabela(
|
|
23
22
|
nomeTabela=self.table_name,
|
|
@@ -89,7 +88,40 @@ class TestSQLITE(unittest.TestCase):
|
|
|
89
88
|
nomeTabela=self.table_name
|
|
90
89
|
)
|
|
91
90
|
self.assertEqual(len(data), 0)
|
|
92
|
-
|
|
91
|
+
|
|
92
|
+
def test_numeroTabelas(self):
|
|
93
|
+
data = self.database.numeroTabelas
|
|
94
|
+
self.assertEqual(data, 1)
|
|
95
|
+
|
|
96
|
+
def test_nomeTabelas(self):
|
|
97
|
+
data = self.database.nomeTabelas
|
|
98
|
+
self.assertEqual(data, [self.table_name])
|
|
99
|
+
|
|
100
|
+
def test_totalColunas(self):
|
|
101
|
+
data = self.database.numeroColunas(self.table_name)
|
|
102
|
+
self.assertEqual(data, 3)
|
|
103
|
+
|
|
104
|
+
def test_totalColunas(self):
|
|
105
|
+
data = self.database.nomeColunas(self.table_name)[1:]
|
|
106
|
+
self.assertEqual(data, self.columns)
|
|
107
|
+
|
|
108
|
+
def test_totalLinhas(self):
|
|
109
|
+
[self.database.inserirDados(
|
|
110
|
+
nomeTabela=self.table_name,
|
|
111
|
+
Colunas=self.columns,
|
|
112
|
+
dados=['Web', 'Tech', value]
|
|
113
|
+
) for value in range(10)]
|
|
114
|
+
data = self.database.totalLinhas(self.table_name)
|
|
115
|
+
self.assertEqual(data, 10)
|
|
116
|
+
|
|
117
|
+
def test_totalLinhas(self):
|
|
118
|
+
[self.database.inserirDados(
|
|
119
|
+
nomeTabela=self.table_name,
|
|
120
|
+
Colunas=self.columns,
|
|
121
|
+
dados=['Web', 'Tech', value]
|
|
122
|
+
) for value in range(10)]
|
|
123
|
+
data = self.database.ultimaLinha(self.table_name)
|
|
124
|
+
self.assertEqual(list(data), [10, 'Web', 'Tech', 9])
|
|
93
125
|
|
|
94
126
|
if __name__ == '__main__':
|
|
95
127
|
unittest.main()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: manage-sql
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.3
|
|
4
4
|
Summary: Biblioteca Python para gestão de bases de dados SQLite com maior eficiência
|
|
5
5
|
Home-page: https://github.com/webtechmoz/manage-sql
|
|
6
6
|
Author: Web Tech Moz
|
|
@@ -10,38 +10,40 @@ Keywords: manage-sql,sqlite,sqlite manager
|
|
|
10
10
|
Classifier: Programming Language :: Python :: 3
|
|
11
11
|
Classifier: License :: OSI Approved :: MIT License
|
|
12
12
|
Classifier: Operating System :: OS Independent
|
|
13
|
-
Requires-Python: >=3.
|
|
13
|
+
Requires-Python: >=3.10
|
|
14
14
|
Description-Content-Type: text/markdown
|
|
15
15
|
License-File: LICENCE
|
|
16
16
|
Requires-Dist: deprecated
|
|
17
17
|
Requires-Dist: dataclasses
|
|
18
|
-
Requires-Dist: pathlib
|
|
19
18
|
|
|
20
19
|
# SQLITE.py
|
|
21
20
|
|
|
22
21
|
`SQLITE.py` é uma classe Python para interagir com bancos de dados SQLite de forma simplificada. Esta classe fornece métodos para conectar a um banco de dados, criar tabelas, inserir dados e outras operações básicas.
|
|
23
22
|
|
|
24
23
|
## Índice
|
|
25
|
-
1. [
|
|
26
|
-
2. [
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
- [
|
|
31
|
-
- [
|
|
32
|
-
- [
|
|
33
|
-
- [
|
|
34
|
-
- [
|
|
35
|
-
- [
|
|
36
|
-
- [
|
|
37
|
-
- [apagarTabela](#apagartabela)
|
|
38
|
-
- [verDados](#verdados)
|
|
39
|
-
- [encryptPass (descontinuado)](#encryptpass-descontinuado)
|
|
40
|
-
- [encriptarValor](#encriptarvalor)
|
|
24
|
+
1. [Instalação](#instalação)
|
|
25
|
+
2. [Uso da Classe SQLITE](#uso)
|
|
26
|
+
1. [Métodos Disponíveis](#Métodos)
|
|
27
|
+
- [conectarBanco](#Conectar-Banco)
|
|
28
|
+
- [criarTabela](#Criar-Tabela)
|
|
29
|
+
- [inserirDados](#Inserir-Dados)
|
|
30
|
+
- [apagarDados](#Apagar-Dados)
|
|
31
|
+
- [editarDados](#Editar-Dados)
|
|
32
|
+
- [adicionarColuna](#Adicionar-Coluna)
|
|
33
|
+
- [apagarColuna](#Apagar-Coluna)
|
|
34
|
+
- [apagarTabela](#Apagar-Tabela)
|
|
35
|
+
- [verDados](#Ver-Dados)
|
|
41
36
|
- [verDadosPlus (descontinuado)](#verdadosplus-descontinuado)
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
37
|
+
- [encryptPass (descontinuado)](#encryptpass-descontinuado)
|
|
38
|
+
- [encriptarValor](#Encriptar-valor)
|
|
39
|
+
- [numeroTabelas](#número-de-tabelas)
|
|
40
|
+
- [nomeTabelas](#nome-de-tabelas)
|
|
41
|
+
- [totalLinhas](#total-linhas)
|
|
42
|
+
- [ultimaLinha](#última-linha)
|
|
43
|
+
- [numeroColunas](#número-de-colunas)
|
|
44
|
+
- [nomeColunas](#nome-de-colunas)
|
|
45
|
+
3. [Contibuição](#contribuição)
|
|
46
|
+
4. [Licença](#licença)
|
|
45
47
|
|
|
46
48
|
## Instalação
|
|
47
49
|
|
|
@@ -117,7 +119,7 @@ db.inserirDados(
|
|
|
117
119
|
)
|
|
118
120
|
```
|
|
119
121
|
|
|
120
|
-
###
|
|
122
|
+
### Ver Dados
|
|
121
123
|
Consulta dados da tabela especificada.
|
|
122
124
|
|
|
123
125
|
#### Parâmetros:
|
|
@@ -147,6 +149,78 @@ db.deletarDados(
|
|
|
147
149
|
)
|
|
148
150
|
```
|
|
149
151
|
|
|
152
|
+
### Número de Tabelas
|
|
153
|
+
Retorna o número de tabelas constantes na base de dados.
|
|
154
|
+
|
|
155
|
+
#### Exemplo de uso:
|
|
156
|
+
```python
|
|
157
|
+
db.numeroTabelas
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### Nome de Tabelas
|
|
161
|
+
Retorna o nome de todas tabelas constantes na base de dados.
|
|
162
|
+
|
|
163
|
+
#### Exemplo de uso:
|
|
164
|
+
```python
|
|
165
|
+
db.nomeTabelas
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### Total Linhas
|
|
169
|
+
Retorna o numero total de registos dentro de uma tabela.
|
|
170
|
+
|
|
171
|
+
#### Parâmetros:
|
|
172
|
+
nomeTabela (str): Nome da tabela de onde os dados serão contados.
|
|
173
|
+
return (int): total de registos dentro do banco de dados
|
|
174
|
+
|
|
175
|
+
#### Exemplo de uso:
|
|
176
|
+
```python
|
|
177
|
+
db.totalLinhas(
|
|
178
|
+
nomeTabela='minha_tabela',
|
|
179
|
+
)
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### Última Linha
|
|
183
|
+
Retorna todos os dados do último registo dentro de uma tabela.
|
|
184
|
+
|
|
185
|
+
#### Parâmetros:
|
|
186
|
+
nomeTabela (str): Nome da tabela de onde os dados serão verificados.
|
|
187
|
+
return (list): dados do ultimo registo da tabela
|
|
188
|
+
|
|
189
|
+
#### Exemplo de uso:
|
|
190
|
+
```python
|
|
191
|
+
db.ultimaLinhas(
|
|
192
|
+
nomeTabela='minha_tabela',
|
|
193
|
+
)
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
### Número de Colunas
|
|
197
|
+
Retorna o número total de colunas dentro de uma tabela.
|
|
198
|
+
|
|
199
|
+
#### Parâmetros:
|
|
200
|
+
nomeTabela (str): Nome da tabela de onde as colunas serão verificadas.
|
|
201
|
+
return (int): número de colunas dentro da tabela
|
|
202
|
+
|
|
203
|
+
#### Exemplo de uso:
|
|
204
|
+
```python
|
|
205
|
+
db.numeroColunas(
|
|
206
|
+
nomeTabela='minha_tabela',
|
|
207
|
+
)
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
### Nome de Colunas
|
|
211
|
+
Retorna o nome de todas as colunas dentro de uma tabela.
|
|
212
|
+
|
|
213
|
+
#### Parâmetros:
|
|
214
|
+
nomeTabela (str): Nome da tabela de onde as colunas serão verificadas.
|
|
215
|
+
return (list): nome de colunas dentro da tabela
|
|
216
|
+
|
|
217
|
+
#### Exemplo de uso:
|
|
218
|
+
```python
|
|
219
|
+
db.nomeColunas(
|
|
220
|
+
nomeTabela='minha_tabela',
|
|
221
|
+
)
|
|
222
|
+
```
|
|
223
|
+
|
|
150
224
|
## Contribuição
|
|
151
225
|
Sinta-se à vontade para contribuir com melhorias e novas funcionalidades.
|
|
152
226
|
|
|
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
|
|
|
2
2
|
|
|
3
3
|
setup(
|
|
4
4
|
name='manage-sql',
|
|
5
|
-
version='0.
|
|
5
|
+
version='0.3.3',
|
|
6
6
|
author='Web Tech Moz',
|
|
7
7
|
author_email='zoidycine@gmail.com',
|
|
8
8
|
description='Biblioteca Python para gestão de bases de dados SQLite com maior eficiência',
|
|
@@ -20,7 +20,6 @@ setup(
|
|
|
20
20
|
install_requires=[
|
|
21
21
|
"deprecated",
|
|
22
22
|
"dataclasses",
|
|
23
|
-
"pathlib"
|
|
24
23
|
],
|
|
25
|
-
python_requires='>=3.
|
|
24
|
+
python_requires='>=3.10',
|
|
26
25
|
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|