# Introdução
Essa biblioteca foi criada como uma forma de abstração das operações mais simples
de um banco de dados MySQL.
# Início
Após fazer a instalação com o pip install fast_sql_manager
é necessário que você importe a classe correspondente ao banco
que deseja manipular.
```python
from fast_sql_manager.implementations.mysql import MySQLRepository
```
ou
```python
from fast_sql_manager.implementations.sqlite import SQLiteRepository
```
Ao importar a classe você pode instância-la ou
usa-la diretamente preenchendo os parâmetros necessários.
```python
db = Repository(
host='localhost',
port=3307,
user='root',
passwd='root',
db_name='sys'
)
```
# Métodos
## createDataBase
Para criar um Banco de Dados basta inserir o primeiro
parâmetro `db_name` com o nome do Banco que deseja Criar.
```python
db.create_database('nome_do_banco')
```
## createTable
Para criar um tabela é necessário informar apenas o nome
no parâmetro `name` através de uma String.
Para informar como devem ser as colunas o parâmetro
`coluns` deve ser um dicionário, onde a chave seria o nome
da coluna e o valor os atributos da coluna.
```python
db.create_table(
name='minha_tabela',
columns={'id': 'int not null primary key auto_increment'}
)
```
## selectAll
Para selecionar todos os dados de uma tabela
é necessário apenas preencher através de uma
string o parâmetro `table_name` para informar
qual tabela você deseja puxar o dados
```python
db.select_all(table_name='nome_da_tabela')
```
## insert
Para inserir os dados em uma tabela é necessário informar o nome da tabela no `table_name` como String, as colunas de deseja inserir no `table_columns` como uma Lista e os valores que deseja inserir no `insert_values` como uma Tupla.
```python
db.insert(
table_name='pessoas',
tb_columns=['cpf', 'nome', 'idade'],
insert_values=('000000000', 'João', 19)
)
```
## update
Para realizar o update informe o parâmetro tb_name como String.
O parâmetro `set` deve ser um Dicionário, sendo a chave a coluna que deseja alterar,
e o valor sendo o novo valor dessa coluna.
O parâmetro `where` também é um Dicionário contendo seu primeiro par de chave e valor com a coluna que deseja
realizar o filtro where e o valor que a coluna deve conter.
```python
db.update(
table_name='tab_pessoa',
set={'nome': 'Joãozinho', 'idade': 17},
where={'cpf': '123456789'}
)
```
É possível também inserir dentro do `where` operadores condicionais, porém o parametro muda um pouco
pois é necessário dentro do dicionário informar qual a condicional que deseja usar.
```python
db.update(
tb_name='tab_pessoa',
set={'nome': 'Joãozinho', 'idade': 17},
where={
'cpf': {'value':'123456789', 'condicional': 'and'},
'name': 'João',
}
)
```
## delete
Para realizar o update informe o parâmetro `tb_name` como String.
O parâmetro where também é um Dicionário contendo seu primeiro par de chave e valor com a coluna que deseja
realizar o filtro where e o valor que a coluna deve conter.
```python
db.delete('tab_pessoa', {'cpf': '123456789'})
```
É possível também inserir dentro do where operadores condicionais, porém o parâmetro muda um pouco
pois é necessário dentro do dicionário informar qual a condicional que deseja usar.
```python
db.delete(
tb_name='tab_pessoa',
where={
'cpf': {'value':'123456789', 'condicional': 'and'},
'name': 'João',
}
)
```