manage-sql 0.7.1.dev1015__tar.gz → 1.0.2.dev1302__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.
Files changed (18) hide show
  1. {manage_sql-0.7.1.dev1015 → manage_sql-1.0.2.dev1302}/PKG-INFO +63 -50
  2. {manage_sql-0.7.1.dev1015 → manage_sql-1.0.2.dev1302}/README.md +50 -48
  3. {manage_sql-0.7.1.dev1015 → manage_sql-1.0.2.dev1302}/manage_sql/Utils/SQLITE.py +122 -49
  4. {manage_sql-0.7.1.dev1015 → manage_sql-1.0.2.dev1302}/manage_sql.egg-info/PKG-INFO +63 -50
  5. {manage_sql-0.7.1.dev1015 → manage_sql-1.0.2.dev1302}/setup.py +1 -1
  6. {manage_sql-0.7.1.dev1015 → manage_sql-1.0.2.dev1302}/LICENCE +0 -0
  7. {manage_sql-0.7.1.dev1015 → manage_sql-1.0.2.dev1302}/manage_sql/Utils/MYSQL.py +0 -0
  8. {manage_sql-0.7.1.dev1015 → manage_sql-1.0.2.dev1302}/manage_sql/Utils/POSTGRESQL.py +0 -0
  9. {manage_sql-0.7.1.dev1015 → manage_sql-1.0.2.dev1302}/manage_sql/Utils/__init__.py +0 -0
  10. {manage_sql-0.7.1.dev1015 → manage_sql-1.0.2.dev1302}/manage_sql/Utils/utils_mysql.py +0 -0
  11. {manage_sql-0.7.1.dev1015 → manage_sql-1.0.2.dev1302}/manage_sql/Utils/utils_postgres.py +0 -0
  12. {manage_sql-0.7.1.dev1015 → manage_sql-1.0.2.dev1302}/manage_sql/Utils/utils_sqlite.py +0 -0
  13. {manage_sql-0.7.1.dev1015 → manage_sql-1.0.2.dev1302}/manage_sql/__init__.py +0 -0
  14. {manage_sql-0.7.1.dev1015 → manage_sql-1.0.2.dev1302}/manage_sql.egg-info/SOURCES.txt +0 -0
  15. {manage_sql-0.7.1.dev1015 → manage_sql-1.0.2.dev1302}/manage_sql.egg-info/dependency_links.txt +0 -0
  16. {manage_sql-0.7.1.dev1015 → manage_sql-1.0.2.dev1302}/manage_sql.egg-info/requires.txt +0 -0
  17. {manage_sql-0.7.1.dev1015 → manage_sql-1.0.2.dev1302}/manage_sql.egg-info/top_level.txt +0 -0
  18. {manage_sql-0.7.1.dev1015 → manage_sql-1.0.2.dev1302}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: manage-sql
3
- Version: 0.7.1.dev1015
3
+ Version: 1.0.2.dev1302
4
4
  Summary: Python library for managing SQLite, MySQL, and PostgreSQL databases with greater efficiency.
5
5
  Home-page: https://github.com/webtechmoz/manage-sql.git
6
6
  Author: Web Tech Moz
@@ -20,6 +20,17 @@ License-File: LICENCE
20
20
  Requires-Dist: mysql-connector
21
21
  Requires-Dist: mysql-connector-python
22
22
  Requires-Dist: psycopg2-binary
23
+ Dynamic: author
24
+ Dynamic: author-email
25
+ Dynamic: classifier
26
+ Dynamic: description
27
+ Dynamic: description-content-type
28
+ Dynamic: home-page
29
+ Dynamic: keywords
30
+ Dynamic: license
31
+ Dynamic: requires-dist
32
+ Dynamic: requires-python
33
+ Dynamic: summary
23
34
 
24
35
  # MANAGE-SQL DOCUMENTATION
25
36
 
@@ -129,10 +140,10 @@ db = POSTEGRESQL(
129
140
  from manage_sql import MYSQL
130
141
 
131
142
  db = MYSQL(
132
- host='localhost',
133
- username='root',
134
- password='Alex756545!',
135
- database='usuarios'
143
+ host='hostname',
144
+ username='username',
145
+ password='user_password',
146
+ database='database_name'
136
147
  )
137
148
 
138
149
  db.create_table(
@@ -140,11 +151,11 @@ db.create_table(
140
151
  columns=[
141
152
  db.Column(
142
153
  name='nome',
143
- column_type=db.column_types.Char(60).varchar
154
+ column_type=db.Column_types.Char(60).varchar
144
155
  ),
145
156
  db.Column(
146
157
  name='username',
147
- column_type=db.column_types.Char(60).varchar
158
+ column_type=db.Column_types.Char(60).varchar
148
159
  )
149
160
  ]
150
161
  )
@@ -155,7 +166,7 @@ db.create_table(
155
166
  - `columns`: *list[Column]* - lista de colunas que pretende criar dentro da tabela.
156
167
 
157
168
  **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.
169
+ **Nota 2:** Tenha atenção aos tipos do `Column_types`, dado que cada tipo de banco de dados possui seus respectivos tipos.
159
170
 
160
171
  ***
161
172
 
@@ -164,10 +175,10 @@ db.create_table(
164
175
  from manage_sql import MYSQL
165
176
 
166
177
  db = MYSQL(
167
- host='localhost',
168
- username='root',
169
- password='Alex756545!',
170
- database='usuarios'
178
+ host='hostname',
179
+ username='username',
180
+ password='user_password',
181
+ database='database_name'
171
182
  )
172
183
 
173
184
  db.insert_data(
@@ -197,10 +208,10 @@ db.insert_data(
197
208
  from manage_sql import MYSQL
198
209
 
199
210
  db = MYSQL(
200
- host='localhost',
201
- username='root',
202
- password='Alex756545!',
203
- database='usuarios'
211
+ host='hostname',
212
+ username='username',
213
+ password='user_password',
214
+ database='database_name'
204
215
  )
205
216
 
206
217
  db.detele_data(
@@ -220,11 +231,13 @@ db.detele_data(
220
231
  **Parametros de Filtragem**
221
232
  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
233
  - `EQUAL`: recebe um valor em que a coluna especificada deverá ser igual `=`
234
+ - `NOT_EQUAL`: recebe um valor em que a coluna especificada deverá ser igual `!=`
223
235
  - `GATHER_THAN`: recebe um valor minimo para comparação `>`
224
236
  - `GATHER_OR_EQUAL`: recebe um valor que deverá ser o mínimo incluido para comparação `>=`
225
237
  - `LESS_THAN`: recebe um valor máximo para comparação `<`
226
238
  - `LESS_OR_EQUAL`: recebe um valor máximo incluido `<=`
227
239
  - `CONTAIN`: recebe uma parte de texto para validação de strings `LIKE`
240
+ - `NOT_CONTAIN`: recebe uma parte de texto para validação de strings `NOT LIKE`
228
241
 
229
242
  Pode tambem fazer filtragem em multiplas colunas usando as condicionais abaixo:
230
243
 
@@ -233,10 +246,10 @@ Pode tambem fazer filtragem em multiplas colunas usando as condicionais abaixo:
233
246
  from manage_sql import MYSQL
234
247
 
235
248
  db = MYSQL(
236
- host='localhost',
237
- username='root',
238
- password='Alex756545!',
239
- database='usuarios'
249
+ host='hostname',
250
+ username='username',
251
+ password='user_password',
252
+ database='database_name'
240
253
  )
241
254
 
242
255
  # Filtrando usando o OR
@@ -274,10 +287,10 @@ db.detele_data(
274
287
  from manage_sql import MYSQL
275
288
 
276
289
  db = MYSQL(
277
- host='localhost',
278
- username='root',
279
- password='Alex756545!',
280
- database='usuarios'
290
+ host='hostname',
291
+ username='username',
292
+ password='user_password',
293
+ database='database_name'
281
294
  )
282
295
 
283
296
  dados = db.select_data(
@@ -305,10 +318,10 @@ print(dados)
305
318
  from manage_sql import MYSQL
306
319
 
307
320
  db = MYSQL(
308
- host='localhost',
309
- username='root',
310
- password='Alex756545!',
311
- database='usuarios'
321
+ host='hostname',
322
+ username='username',
323
+ password='user_password',
324
+ database='database_name'
312
325
  )
313
326
 
314
327
  db.update_data(
@@ -336,17 +349,17 @@ db.update_data(
336
349
  ### Adiconar Coluna
337
350
  ```python
338
351
  db = MYSQL(
339
- host='localhost',
340
- username='root',
341
- password='Alex756545!',
342
- database='usuarios'
352
+ host='hostname',
353
+ username='username',
354
+ password='user_password',
355
+ database='database_name'
343
356
  )
344
357
 
345
358
  db.add_column(
346
359
  tablename='usuarios',
347
360
  column=db.Column(
348
361
  name='idade',
349
- column_type=db.column_types.Integer.integer
362
+ column_type=db.Column_types.Integer.integer
350
363
  )
351
364
  )
352
365
  ```
@@ -364,10 +377,10 @@ Mais Detalhes sobre a `Column` veja a documentação [clicando aqui](#criar-tabe
364
377
  from manage_sql import MYSQL
365
378
 
366
379
  db = MYSQL(
367
- host='localhost',
368
- username='root',
369
- password='Alex756545!',
370
- database='usuarios'
380
+ host='hostname',
381
+ username='username',
382
+ password='user_password',
383
+ database='database_name'
371
384
  )
372
385
 
373
386
  db.drop_column(
@@ -387,10 +400,10 @@ db.drop_column(
387
400
  from manage_sql import MYSQL
388
401
 
389
402
  db = MYSQL(
390
- host='localhost',
391
- username='root',
392
- password='Alex756545!',
393
- database='usuarios'
403
+ host='hostname',
404
+ username='username',
405
+ password='user_password',
406
+ database='database_name'
394
407
  )
395
408
 
396
409
  db.drop_table(
@@ -410,10 +423,10 @@ Caso queira rodar outras queries SQL que o `manage_sql` ainda não possua de for
410
423
  from manage_sql import MYSQL
411
424
 
412
425
  db = MYSQL(
413
- host='localhost',
414
- username='root',
415
- password='Alex756545!',
416
- database='usuarios'
426
+ host='hostname',
427
+ username='username',
428
+ password='user_password',
429
+ database='database_name'
417
430
  )
418
431
 
419
432
  columns = db.execute_query(
@@ -429,10 +442,10 @@ O `manage_sql` possui um metodo proprio para encriptar valores baseado no hash51
429
442
  ```python
430
443
  from manage_sql import MYSQL
431
444
  db = MYSQL(
432
- host='localhost',
433
- username='root',
434
- password='Alex756545!',
435
- database='usuarios'
445
+ host='hostname',
446
+ username='username',
447
+ password='user_password',
448
+ database='database_name'
436
449
  )
437
450
 
438
451
  hash_value = db.encrypt_value(
@@ -106,10 +106,10 @@ db = POSTEGRESQL(
106
106
  from manage_sql import MYSQL
107
107
 
108
108
  db = MYSQL(
109
- host='localhost',
110
- username='root',
111
- password='Alex756545!',
112
- database='usuarios'
109
+ host='hostname',
110
+ username='username',
111
+ password='user_password',
112
+ database='database_name'
113
113
  )
114
114
 
115
115
  db.create_table(
@@ -117,11 +117,11 @@ db.create_table(
117
117
  columns=[
118
118
  db.Column(
119
119
  name='nome',
120
- column_type=db.column_types.Char(60).varchar
120
+ column_type=db.Column_types.Char(60).varchar
121
121
  ),
122
122
  db.Column(
123
123
  name='username',
124
- column_type=db.column_types.Char(60).varchar
124
+ column_type=db.Column_types.Char(60).varchar
125
125
  )
126
126
  ]
127
127
  )
@@ -132,7 +132,7 @@ db.create_table(
132
132
  - `columns`: *list[Column]* - lista de colunas que pretende criar dentro da tabela.
133
133
 
134
134
  **Nota 1:** A documentação devida do `Column` será feita em breve.
135
- **Nota 2:** Tenha atenção aos tipos do `column_types`, dado que cada tipo de banco de dados possui seus respectivos tipos.
135
+ **Nota 2:** Tenha atenção aos tipos do `Column_types`, dado que cada tipo de banco de dados possui seus respectivos tipos.
136
136
 
137
137
  ***
138
138
 
@@ -141,10 +141,10 @@ db.create_table(
141
141
  from manage_sql import MYSQL
142
142
 
143
143
  db = MYSQL(
144
- host='localhost',
145
- username='root',
146
- password='Alex756545!',
147
- database='usuarios'
144
+ host='hostname',
145
+ username='username',
146
+ password='user_password',
147
+ database='database_name'
148
148
  )
149
149
 
150
150
  db.insert_data(
@@ -174,10 +174,10 @@ db.insert_data(
174
174
  from manage_sql import MYSQL
175
175
 
176
176
  db = MYSQL(
177
- host='localhost',
178
- username='root',
179
- password='Alex756545!',
180
- database='usuarios'
177
+ host='hostname',
178
+ username='username',
179
+ password='user_password',
180
+ database='database_name'
181
181
  )
182
182
 
183
183
  db.detele_data(
@@ -197,11 +197,13 @@ db.detele_data(
197
197
  **Parametros de Filtragem**
198
198
  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:
199
199
  - `EQUAL`: recebe um valor em que a coluna especificada deverá ser igual `=`
200
+ - `NOT_EQUAL`: recebe um valor em que a coluna especificada deverá ser igual `!=`
200
201
  - `GATHER_THAN`: recebe um valor minimo para comparação `>`
201
202
  - `GATHER_OR_EQUAL`: recebe um valor que deverá ser o mínimo incluido para comparação `>=`
202
203
  - `LESS_THAN`: recebe um valor máximo para comparação `<`
203
204
  - `LESS_OR_EQUAL`: recebe um valor máximo incluido `<=`
204
205
  - `CONTAIN`: recebe uma parte de texto para validação de strings `LIKE`
206
+ - `NOT_CONTAIN`: recebe uma parte de texto para validação de strings `NOT LIKE`
205
207
 
206
208
  Pode tambem fazer filtragem em multiplas colunas usando as condicionais abaixo:
207
209
 
@@ -210,10 +212,10 @@ Pode tambem fazer filtragem em multiplas colunas usando as condicionais abaixo:
210
212
  from manage_sql import MYSQL
211
213
 
212
214
  db = MYSQL(
213
- host='localhost',
214
- username='root',
215
- password='Alex756545!',
216
- database='usuarios'
215
+ host='hostname',
216
+ username='username',
217
+ password='user_password',
218
+ database='database_name'
217
219
  )
218
220
 
219
221
  # Filtrando usando o OR
@@ -251,10 +253,10 @@ db.detele_data(
251
253
  from manage_sql import MYSQL
252
254
 
253
255
  db = MYSQL(
254
- host='localhost',
255
- username='root',
256
- password='Alex756545!',
257
- database='usuarios'
256
+ host='hostname',
257
+ username='username',
258
+ password='user_password',
259
+ database='database_name'
258
260
  )
259
261
 
260
262
  dados = db.select_data(
@@ -282,10 +284,10 @@ print(dados)
282
284
  from manage_sql import MYSQL
283
285
 
284
286
  db = MYSQL(
285
- host='localhost',
286
- username='root',
287
- password='Alex756545!',
288
- database='usuarios'
287
+ host='hostname',
288
+ username='username',
289
+ password='user_password',
290
+ database='database_name'
289
291
  )
290
292
 
291
293
  db.update_data(
@@ -313,17 +315,17 @@ db.update_data(
313
315
  ### Adiconar Coluna
314
316
  ```python
315
317
  db = MYSQL(
316
- host='localhost',
317
- username='root',
318
- password='Alex756545!',
319
- database='usuarios'
318
+ host='hostname',
319
+ username='username',
320
+ password='user_password',
321
+ database='database_name'
320
322
  )
321
323
 
322
324
  db.add_column(
323
325
  tablename='usuarios',
324
326
  column=db.Column(
325
327
  name='idade',
326
- column_type=db.column_types.Integer.integer
328
+ column_type=db.Column_types.Integer.integer
327
329
  )
328
330
  )
329
331
  ```
@@ -341,10 +343,10 @@ Mais Detalhes sobre a `Column` veja a documentação [clicando aqui](#criar-tabe
341
343
  from manage_sql import MYSQL
342
344
 
343
345
  db = MYSQL(
344
- host='localhost',
345
- username='root',
346
- password='Alex756545!',
347
- database='usuarios'
346
+ host='hostname',
347
+ username='username',
348
+ password='user_password',
349
+ database='database_name'
348
350
  )
349
351
 
350
352
  db.drop_column(
@@ -364,10 +366,10 @@ db.drop_column(
364
366
  from manage_sql import MYSQL
365
367
 
366
368
  db = MYSQL(
367
- host='localhost',
368
- username='root',
369
- password='Alex756545!',
370
- database='usuarios'
369
+ host='hostname',
370
+ username='username',
371
+ password='user_password',
372
+ database='database_name'
371
373
  )
372
374
 
373
375
  db.drop_table(
@@ -387,10 +389,10 @@ Caso queira rodar outras queries SQL que o `manage_sql` ainda não possua de for
387
389
  from manage_sql import MYSQL
388
390
 
389
391
  db = MYSQL(
390
- host='localhost',
391
- username='root',
392
- password='Alex756545!',
393
- database='usuarios'
392
+ host='hostname',
393
+ username='username',
394
+ password='user_password',
395
+ database='database_name'
394
396
  )
395
397
 
396
398
  columns = db.execute_query(
@@ -406,10 +408,10 @@ O `manage_sql` possui um metodo proprio para encriptar valores baseado no hash51
406
408
  ```python
407
409
  from manage_sql import MYSQL
408
410
  db = MYSQL(
409
- host='localhost',
410
- username='root',
411
- password='Alex756545!',
412
- database='usuarios'
411
+ host='hostname',
412
+ username='username',
413
+ password='user_password',
414
+ database='database_name'
413
415
  )
414
416
 
415
417
  hash_value = db.encrypt_value(
@@ -1,3 +1,4 @@
1
+ import multiprocessing
1
2
  import sqlite3 as sq
2
3
  import os
3
4
 
@@ -63,6 +64,9 @@ class SQLITE:
63
64
  self.filter_by = Filter
64
65
  self.delete_by = Filter
65
66
  self.ColumnData = ColumnData
67
+ self.__sql_multiprocess = SQLITE_MULTI(
68
+ connection=self.__connect
69
+ )
66
70
 
67
71
  @property
68
72
  def __connect(self) -> tuple[sq.Connection, sq.Cursor]:
@@ -172,14 +176,12 @@ class SQLITE:
172
176
  ]
173
177
 
174
178
  all_columns = ', '.join(column.column_parameters for column in columns_details)
175
-
176
- connection, cursor = self.__connect
177
- cursor.execute(
178
- f'CREATE TABLE IF NOT EXISTS {tablename} ({all_columns})'
179
- )
179
+ multiprocessing.Process(
180
+ target=self.__sql_multiprocess.create_table_multi,
181
+ args=(tablename, all_columns),
182
+ daemon=True
183
+ ).start()
180
184
 
181
- connection.close()
182
-
183
185
  except Exception as e:
184
186
  self.__exception_error(message_error=e)
185
187
 
@@ -197,14 +199,11 @@ class SQLITE:
197
199
  key: str = ', '.join('?' for _ in insert_query)
198
200
 
199
201
  try:
200
- connection, cursor = self.__connect
201
-
202
- cursor.execute(
203
- f'INSERT INTO {tablename} ({columns}) VALUES ({key})', tuple(params)
204
- )
205
-
206
- connection.commit()
207
- connection.close()
202
+ multiprocessing.Process(
203
+ target=self.__sql_multiprocess.insert_data_multi,
204
+ args=(tablename, columns, key, params),
205
+ daemon=True
206
+ ).start()
208
207
 
209
208
  except Exception as e:
210
209
  self.__exception_error(message_error=e)
@@ -217,20 +216,27 @@ class SQLITE:
217
216
  tablename (str): Name of the table where data will be deleted.
218
217
  condition (Filter, optional): Filtering condition to specify which records to delete.
219
218
  """
220
-
221
- connection, cursor = self.__connect
222
-
223
- if not condition:
224
- cursor.execute(f'DELETE FROM {tablename}')
225
219
 
226
- else:
227
- condition_query = condition._Filter__condition.strip()
228
- condition_params = condition._Filter__params
229
-
230
- cursor.execute(f'DELETE FROM {tablename} {condition_query}', tuple(condition_params))
220
+ try:
221
+ if condition:
222
+ multiprocessing.Process(
223
+ target=self.__sql_multiprocess.delete_data_multi,
224
+ args=(tablename),
225
+ daemon=True
226
+ ).start()
227
+
228
+ else:
229
+ condition_query = condition._Filter__condition.strip()
230
+ condition_params = condition._Filter__params
231
+
232
+ multiprocessing.Process(
233
+ target=self.__sql_multiprocess.delete_data_multi,
234
+ args=(tablename, condition_params, condition_query),
235
+ daemon=True
236
+ ).start()
231
237
 
232
- connection.commit()
233
- connection.close()
238
+ except Exception as e:
239
+ self.__exception_error(message_error=e)
234
240
 
235
241
  def select_data(self, tablename: str, columns: list[str] = ['*'], condition: Filter = None):
236
242
  """
@@ -277,22 +283,32 @@ class SQLITE:
277
283
  condition (Filter, optional):
278
284
  Condition to specify which records to update.
279
285
  """
280
-
281
- connection, cursor = self.__connect
286
+
282
287
  columns: str = ', '.join([f'{edit.column} = ?' for edit in edit_query])
283
288
  params: list = [edit.value for edit in edit_query]
284
289
 
285
- if not condition:
286
- cursor.execute(f"UPDATE {tablename} SET {columns}", tuple(params))
287
-
288
- else:
289
- condition_query: str = condition._Filter__condition.strip()
290
- params.extend(condition._Filter__params)
290
+ try:
291
+
291
292
 
292
- cursor.execute(f"UPDATE {tablename} SET {columns} {condition_query}", tuple(params))
293
-
294
- connection.commit()
295
- connection.close()
293
+ if not condition:
294
+ multiprocessing.Process(
295
+ target=self.__sql_multiprocess.update_data_multi,
296
+ args=(tablename, columns, params),
297
+ daemon=True
298
+ ).start()
299
+
300
+ else:
301
+ condition_query: str = condition._Filter__condition.strip()
302
+ params.extend(condition._Filter__params)
303
+
304
+ multiprocessing.Process(
305
+ target=self.__sql_multiprocess.update_data_multi,
306
+ args=(tablename, columns, params, condition_query),
307
+ daemon=True
308
+ ).start()
309
+
310
+ except Exception as e:
311
+ self.__exception_error(message_error=e)
296
312
 
297
313
  def add_column(self, tablename: str, column: Column):
298
314
  """
@@ -380,16 +396,13 @@ class SQLITE:
380
396
  Exception:
381
397
  If there is an error in executing the SQL query, the exception is logged or raised.
382
398
  """
383
-
384
- try:
385
- connection, cursor = self.__connect
386
-
387
- cursor.execute(query)
388
-
389
- return cursor.fetchall()
390
399
 
391
- finally:
392
- connection.close()
400
+ multiprocessing.Process(
401
+ target=self.__sql_multiprocess.execute_query_multi,
402
+ args=(query),
403
+ daemon=True
404
+ ).start()
405
+
393
406
 
394
407
  def encrypt_value(self, value) -> str:
395
408
  """
@@ -421,4 +434,64 @@ class SQLITE:
421
434
 
422
435
  def __exception_error(self, message_error: str):
423
436
  print(f'Error: {message_error}')
424
- exit()
437
+ exit()
438
+
439
+ class SQLITE_MULTI:
440
+ def __init__(
441
+ self,
442
+ connection: tuple[sq.Connection, sq.Cursor]
443
+ ):
444
+ self.__connect = connection
445
+
446
+ def create_table_multi(self, table_name: str, columns: str):
447
+ connection, cursor = self.__connect
448
+ cursor.execute(
449
+ f'CREATE TABLE IF NOT EXISTS {table_name} ({columns})'
450
+ )
451
+
452
+ connection.close()
453
+
454
+ def insert_data_multi(self, table_name: str, columns: str, key: str, params: list[None]):
455
+ connection, cursor = self.__connect
456
+
457
+ cursor.execute(
458
+ f'INSERT INTO {table_name} ({columns}) VALUES ({key})', tuple(params)
459
+ )
460
+
461
+ connection.commit()
462
+ connection.close()
463
+
464
+ def delete_data_multi(self, tablename: str, condition_params: list = None, condition_query: str = None):
465
+ connection, cursor = self.__connect
466
+
467
+ if not condition_query:
468
+ cursor.execute(f'DELETE FROM {tablename}')
469
+
470
+ else:
471
+ cursor.execute(f'DELETE FROM {tablename} {condition_query}', tuple(condition_params))
472
+
473
+ connection.commit()
474
+ connection.close()
475
+
476
+ def update_data_multi(self, tablename: str, columns: str, params: list, condition_query: str = None):
477
+ connection, cursor = self.__connect
478
+
479
+ if not condition_query:
480
+ cursor.execute(f"UPDATE {tablename} SET {columns}", tuple(params))
481
+
482
+ else:
483
+ cursor.execute(f"UPDATE {tablename} SET {columns} {condition_query}", tuple(params))
484
+
485
+ connection.commit()
486
+ connection.close()
487
+
488
+ def execute_query_multi(self, query: str):
489
+ try:
490
+ connection, cursor = self.__connect
491
+
492
+ cursor.execute(query)
493
+
494
+ return cursor.fetchall()
495
+
496
+ finally:
497
+ connection.close()
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: manage-sql
3
- Version: 0.7.1.dev1015
3
+ Version: 1.0.2.dev1302
4
4
  Summary: Python library for managing SQLite, MySQL, and PostgreSQL databases with greater efficiency.
5
5
  Home-page: https://github.com/webtechmoz/manage-sql.git
6
6
  Author: Web Tech Moz
@@ -20,6 +20,17 @@ License-File: LICENCE
20
20
  Requires-Dist: mysql-connector
21
21
  Requires-Dist: mysql-connector-python
22
22
  Requires-Dist: psycopg2-binary
23
+ Dynamic: author
24
+ Dynamic: author-email
25
+ Dynamic: classifier
26
+ Dynamic: description
27
+ Dynamic: description-content-type
28
+ Dynamic: home-page
29
+ Dynamic: keywords
30
+ Dynamic: license
31
+ Dynamic: requires-dist
32
+ Dynamic: requires-python
33
+ Dynamic: summary
23
34
 
24
35
  # MANAGE-SQL DOCUMENTATION
25
36
 
@@ -129,10 +140,10 @@ db = POSTEGRESQL(
129
140
  from manage_sql import MYSQL
130
141
 
131
142
  db = MYSQL(
132
- host='localhost',
133
- username='root',
134
- password='Alex756545!',
135
- database='usuarios'
143
+ host='hostname',
144
+ username='username',
145
+ password='user_password',
146
+ database='database_name'
136
147
  )
137
148
 
138
149
  db.create_table(
@@ -140,11 +151,11 @@ db.create_table(
140
151
  columns=[
141
152
  db.Column(
142
153
  name='nome',
143
- column_type=db.column_types.Char(60).varchar
154
+ column_type=db.Column_types.Char(60).varchar
144
155
  ),
145
156
  db.Column(
146
157
  name='username',
147
- column_type=db.column_types.Char(60).varchar
158
+ column_type=db.Column_types.Char(60).varchar
148
159
  )
149
160
  ]
150
161
  )
@@ -155,7 +166,7 @@ db.create_table(
155
166
  - `columns`: *list[Column]* - lista de colunas que pretende criar dentro da tabela.
156
167
 
157
168
  **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.
169
+ **Nota 2:** Tenha atenção aos tipos do `Column_types`, dado que cada tipo de banco de dados possui seus respectivos tipos.
159
170
 
160
171
  ***
161
172
 
@@ -164,10 +175,10 @@ db.create_table(
164
175
  from manage_sql import MYSQL
165
176
 
166
177
  db = MYSQL(
167
- host='localhost',
168
- username='root',
169
- password='Alex756545!',
170
- database='usuarios'
178
+ host='hostname',
179
+ username='username',
180
+ password='user_password',
181
+ database='database_name'
171
182
  )
172
183
 
173
184
  db.insert_data(
@@ -197,10 +208,10 @@ db.insert_data(
197
208
  from manage_sql import MYSQL
198
209
 
199
210
  db = MYSQL(
200
- host='localhost',
201
- username='root',
202
- password='Alex756545!',
203
- database='usuarios'
211
+ host='hostname',
212
+ username='username',
213
+ password='user_password',
214
+ database='database_name'
204
215
  )
205
216
 
206
217
  db.detele_data(
@@ -220,11 +231,13 @@ db.detele_data(
220
231
  **Parametros de Filtragem**
221
232
  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
233
  - `EQUAL`: recebe um valor em que a coluna especificada deverá ser igual `=`
234
+ - `NOT_EQUAL`: recebe um valor em que a coluna especificada deverá ser igual `!=`
223
235
  - `GATHER_THAN`: recebe um valor minimo para comparação `>`
224
236
  - `GATHER_OR_EQUAL`: recebe um valor que deverá ser o mínimo incluido para comparação `>=`
225
237
  - `LESS_THAN`: recebe um valor máximo para comparação `<`
226
238
  - `LESS_OR_EQUAL`: recebe um valor máximo incluido `<=`
227
239
  - `CONTAIN`: recebe uma parte de texto para validação de strings `LIKE`
240
+ - `NOT_CONTAIN`: recebe uma parte de texto para validação de strings `NOT LIKE`
228
241
 
229
242
  Pode tambem fazer filtragem em multiplas colunas usando as condicionais abaixo:
230
243
 
@@ -233,10 +246,10 @@ Pode tambem fazer filtragem em multiplas colunas usando as condicionais abaixo:
233
246
  from manage_sql import MYSQL
234
247
 
235
248
  db = MYSQL(
236
- host='localhost',
237
- username='root',
238
- password='Alex756545!',
239
- database='usuarios'
249
+ host='hostname',
250
+ username='username',
251
+ password='user_password',
252
+ database='database_name'
240
253
  )
241
254
 
242
255
  # Filtrando usando o OR
@@ -274,10 +287,10 @@ db.detele_data(
274
287
  from manage_sql import MYSQL
275
288
 
276
289
  db = MYSQL(
277
- host='localhost',
278
- username='root',
279
- password='Alex756545!',
280
- database='usuarios'
290
+ host='hostname',
291
+ username='username',
292
+ password='user_password',
293
+ database='database_name'
281
294
  )
282
295
 
283
296
  dados = db.select_data(
@@ -305,10 +318,10 @@ print(dados)
305
318
  from manage_sql import MYSQL
306
319
 
307
320
  db = MYSQL(
308
- host='localhost',
309
- username='root',
310
- password='Alex756545!',
311
- database='usuarios'
321
+ host='hostname',
322
+ username='username',
323
+ password='user_password',
324
+ database='database_name'
312
325
  )
313
326
 
314
327
  db.update_data(
@@ -336,17 +349,17 @@ db.update_data(
336
349
  ### Adiconar Coluna
337
350
  ```python
338
351
  db = MYSQL(
339
- host='localhost',
340
- username='root',
341
- password='Alex756545!',
342
- database='usuarios'
352
+ host='hostname',
353
+ username='username',
354
+ password='user_password',
355
+ database='database_name'
343
356
  )
344
357
 
345
358
  db.add_column(
346
359
  tablename='usuarios',
347
360
  column=db.Column(
348
361
  name='idade',
349
- column_type=db.column_types.Integer.integer
362
+ column_type=db.Column_types.Integer.integer
350
363
  )
351
364
  )
352
365
  ```
@@ -364,10 +377,10 @@ Mais Detalhes sobre a `Column` veja a documentação [clicando aqui](#criar-tabe
364
377
  from manage_sql import MYSQL
365
378
 
366
379
  db = MYSQL(
367
- host='localhost',
368
- username='root',
369
- password='Alex756545!',
370
- database='usuarios'
380
+ host='hostname',
381
+ username='username',
382
+ password='user_password',
383
+ database='database_name'
371
384
  )
372
385
 
373
386
  db.drop_column(
@@ -387,10 +400,10 @@ db.drop_column(
387
400
  from manage_sql import MYSQL
388
401
 
389
402
  db = MYSQL(
390
- host='localhost',
391
- username='root',
392
- password='Alex756545!',
393
- database='usuarios'
403
+ host='hostname',
404
+ username='username',
405
+ password='user_password',
406
+ database='database_name'
394
407
  )
395
408
 
396
409
  db.drop_table(
@@ -410,10 +423,10 @@ Caso queira rodar outras queries SQL que o `manage_sql` ainda não possua de for
410
423
  from manage_sql import MYSQL
411
424
 
412
425
  db = MYSQL(
413
- host='localhost',
414
- username='root',
415
- password='Alex756545!',
416
- database='usuarios'
426
+ host='hostname',
427
+ username='username',
428
+ password='user_password',
429
+ database='database_name'
417
430
  )
418
431
 
419
432
  columns = db.execute_query(
@@ -429,10 +442,10 @@ O `manage_sql` possui um metodo proprio para encriptar valores baseado no hash51
429
442
  ```python
430
443
  from manage_sql import MYSQL
431
444
  db = MYSQL(
432
- host='localhost',
433
- username='root',
434
- password='Alex756545!',
435
- database='usuarios'
445
+ host='hostname',
446
+ username='username',
447
+ password='user_password',
448
+ database='database_name'
436
449
  )
437
450
 
438
451
  hash_value = db.encrypt_value(
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
 
3
3
  setup(
4
4
  name='manage-sql',
5
- version='0.7.1.dev1015',
5
+ version='1.0.2.dev1302',
6
6
  author='Web Tech Moz',
7
7
  author_email='zoidycine@gmail.com',
8
8
  description='Python library for managing SQLite, MySQL, and PostgreSQL databases with greater efficiency.',