# Python: ligação de programas a bases de dados MariaDB

Com Python e MariaDB, pode **conectar aplicações a uma base de dados de forma eficiente** e processar informações. A combinação de Python e MariaDB é especialmente útil para aplicações web, análise de dados e automatização de relatórios.

## Quais são os requisitos?

Antes de poder ligar programas Python ao MariaDB, deve cumprir os seguintes requisitos:

- **Instalação do Python**: certifique-se de que o Python está instalado no seu sistema e que é uma versão compatível.
- **Base de dados MariaDB**: necessita de uma base de dados MariaDB funcional. Pode utilizar uma instalação local do MariaDB ou ligar-se a uma base de dados remota.
- **Credenciais de acesso ao banco de dados**: você precisa de informações como o nome do host, a porta, o nome do banco de dados, o nome de utilizador e a senha para se conectar ao banco de dados MariaDB.
- **Módulo Python**: deve ter o módulo Python/Connector instalado para se conectar ao MariaDB.

## Preparação e instalação

Existem duas formas de aceder a um servidor MariaDB. Pode instalar um servidor MariaDB no seu próprio computador ou servidor, ou utilizar a plataforma MariaDB na nuvem.

### Opção 1. Instalar o servidor MariaDB no seu hardware

É bastante simples descarregar o **pacote MariaDB** e instalá-lo no seu computador. Aqui está um guia detalhado:

**Passo 1. Verifique os requisitos do sistema**

Certifique-se de que o seu hardware cumpre os requisitos mínimos, como ter espaço suficiente em disco e memória RAM.

**Passo 2. Descarregue o MariaDB**

Visite o site oficial do MariaDB e faça o download da versão correspondente ao seu sistema operativo (Windows, Linux ou macOS).

**Passo 3. Instale o pacote**

Faça o download do pacote correto para o seu sistema operativo e arquitetura (32 bits ou 64 bits). Após concluir o download, execute a instalação de acordo com o seu sistema operativo. Por exemplo, se você for [instalar o MariaDB no Ubuntu 20.04](https://www.ionos.com/pt-pt/digitalguide/hospedagem/questoes-tecnicas/instalacao-do-mariadb-no-ubuntu-2004/), terá que executar o comando `sudo apt install mariadb-server`.

**Passo 4. Configure a base de dados**

Após a instalação, configure o servidor MariaDB especificando os dados de acesso, a configuração de segurança e outros parâmetros da base de dados.

**Passo 5. Inicie o MariaDB**

Inicie o serviço do servidor MariaDB. No Windows, isso é feito através do Gestor de Serviços. No Linux e no macOS, funciona através da linha de comandos com `sudo systemctl start mariadb` ou `sudo service mariadb start`.

**Passo 6. Realize a configuração inicial**

Configure o MariaDB após iniciá-lo, executando o comando `mysql_secure_installation`. O comando ajuda a realizar configurações de segurança importantes, como definir senhas e eliminar contas de teste.

**Passo 7. Teste o acesso à base de dados**

Verifique se consegue ligar-se corretamente à base de dados. Inicie sessão como utilizador root com `mysql -u root -p`. Introduza a sua palavra-passe e execute algumas consultas SQL simples para verificar se o servidor está a funcionar corretamente.

### Opção 2. Utilizar MariaDB SkySQL

MariaDB SkySQL é uma **plataforma de base de dados na nuvem** que permite operar bases de dados MariaDB de forma simples e eficiente na nuvem. A plataforma inclui o MariaDB Enterprise Server e oferece várias vantagens, como escalabilidade automática, alta disponibilidade e funções de segurança integradas.

**Passo 1. Registe-se e inicie sessão**

Visite o site oficial do MariaDB SkySQL e registe-se para obter uma conta, caso ainda não tenha uma. Inicie sessão com as suas credenciais.

**Passo 2. Crie um novo serviço**

Após iniciar sessão, será redirecionado para a página inicial do SkySQL. Clique em «Criar novo serviço» ou num botão semelhante para iniciar um novo serviço de base de dados. Selecione o tipo de serviço que deseja, podendo escolher entre diferentes plataformas MariaDB, como **MariaDB Enterprise Server** e outros serviços de base de dados.

**Passo 3. Configure o serviço**

Personalize as configurações do serviço, incluindo a seleção da versão do MariaDB, a capacidade do banco de dados e outros **parâmetros de recursos**. Também pode utilizar as opções de alta disponibilidade e escalabilidade automática. Especifique as configurações de autenticação e segurança, incluindo nomes de utilizador e senhas, bem como a gestão das permissões de acesso ao banco de dados.

**Passo 4. Ligue-se à base de dados**

Após a ativação do serviço, receberá informações sobre o nome do host, a porta, o nome de utilizador e a palavra-passe. Utilize essas informações para se ligar à sua base de dados. Execute algumas consultas simples para verificar se o serviço está a funcionar.

**Passo 5. Monitorize e gere a base de dados**

O MariaDB SkySQL oferece **ferramentas de monitorização e análise** que permitem supervisionar o desempenho da sua base de dados. Utilize essas ferramentas para garantir que a sua base de dados funcione de forma ideal. Pode gerir e dimensionar a sua base de dados de acordo com as suas necessidades, ajustando os parâmetros de recursos ou ativando funções adicionais.

## Ligar ao servidor MariaDB

Utilize a biblioteca MariaDB do Python para se conectar a um banco de dados MariaDB e realizar diversas operações com ele, como consultar, inserir ou atualizar dados. Instale a biblioteca com o **gerenciador de pacotes** `pip`:

```shell
pip3 install mariadb
```

Agora pode ligar-se ao MariaDB a partir do Python.

### Passo 1. Estabeleça a ligação

Primeiro, você precisa importar a biblioteca e estabelecer uma conexão com o seu banco de dados MariaDB. Para isso, você precisa de informações como o nome do host, a porta, o nome do banco de dados, o nome de utilizador e a senha.

```python
import mariadb
# Detalles de la conexión a la base de datos
db_config = {
    'user': 'your_username',
    'password': 'your_password',
    'host': 'your_hostname',
    'database': 'your_database',
    'port': 3306  # Puerto predeterminado para MariaDB
}
# Establecer la conexión
conn = mariadb.connect(**db_config)
# Crear un cursor para ejecutar consultas
cursor = conn.cursor()
```

O **cursor** é um objeto que pode ser utilizado para realizar operações em bases de dados relacionais, como MariaDB. As operações incluem consultas SQL e edição de dados. Após estabelecer uma ligação com a base de dados, recebe-se um cursor em Python. A consulta é feita através da função `cursor()`.

### Passo 2. Consulte os dados

Em seguida, utilize o cursor para executar consultas SQL e recuperar dados da base de dados.

```python
# Definir la consulta SQL
sql_query = "SELECT * FROM your_table"
# Ejecutar la consulta
cursor.execute(sql_query)
# Obtener resultados
results = cursor.fetchall()
# Mostrar datos
for row in results:
    print(row)
```

### Passo 3. Introduza os dados

Para introduzir dados numa tabela, defina uma **consulta SQL INSERT** e execute-a com o cursor.

```python
# Definir la consulta SQL INSERT
insert_query = "INSERT INTO your_table (column1, column2) VALUES (%s, %s)"
# Valores a insertar
values = ('value1', 'value2')
# Ejecutar la consulta INSERT
cursor.execute(insert_query, values)
# Confirmar la transacción
conn.commit()
```

A instrução SQL INSERT especifica em que tabela (`your_table`) e em que colunas (`column1` e `column2`) pretende inserir os dados. Os marcadores de posição, como `%s`, representam os valores a serem inseridos. A tupla `values` contém os valores correspondentes que pretende introduzir na base de dados. O cursor executa a **instrução `INSERT`** com os valores especificados. Em seguida, a função `conn.commit()` confirma a transação para garantir que as alterações sejam guardadas permanentemente na base de dados.

### Passo 4. Encerre a ligação

Depois de concluir as suas operações com a base de dados, deve fechar o cursor e a ligação para libertar recursos.

```python
# Cierra el cursor y la conexión
cursor.close()
conn.close()
```

### Passo 5. Gerencie os erros

É importante incluir a gestão de erros para poder detetar possíveis exceções ao estabelecer a ligação ou executar as consultas.

```python
try:
        # Establecer la conexión
        conn = mariadb.connect(**db_config)
        # Crear un cursor
        cursor = conn.cursor()
        # Ejecutar la consulta
        cursor.execute(sql_query)
        # Obtener resultados
        results = cursor.fetchall()
        for row in results:
            print(row)
    except mariadb.Error as err:
        print(f"Error: {err}")
    finally:
        # Cerrar cursor y conexión
        if cursor:
            cursor.close()
        if conn:
            conn.close()
```

Pode adaptar esta estrutura básica às suas necessidades específicas para implementar várias operações de base de dados.

Aqui está o código completo:

```python
import mariadb
# Detalles de la conexión a la base de datos
db_config = {
    'user': 'your_username',
    'password': 'your_password',
    'host': 'your_hostname',
    'database': 'your_database',
    'port': 3306  # Puerto predeterminado para MariaDB
}
try:
    # Establecer la conexión
    conn = mariadb.connect(**db_config)
    # Crear un cursor para ejecutar consultas
    cursor = conn.cursor()
    # Definir la consulta SQL
    sql_query = "SELECT * FROM your_table"
    # Ejecutar la consulta
    cursor.execute(sql_query)
    # Obtener los resultados
    results = cursor.fetchall()
    # Mostrar los datos
    for row in results:
        print(row)
    # Definir la consulta SQL INSERT
    insert_query = "INSERT INTO your_table (column1, column2) VALUES (%s, %s)"
    # Valores a insertar
    values = ('value1', 'value2')
    # Ejecutar la consulta INSERT
    cursor.execute(insert_query, values)
    # Confirmar la transacción
    conn.commit()
except mariadb.Error as err:
    print(f"Error: {err}")
finally:
    # Cerrar el cursor y la conexión
    if cursor:
        cursor.close()
    if conn:
        conn.close()
```


This is a markdown version of: [https://www.ionos.com/pt-pt/digitalguide/paginas-web/desenvolvimento-web/python-mariadb/](https://www.ionos.com/pt-pt/digitalguide/paginas-web/desenvolvimento-web/python-mariadb/) for AI/LLM consumption.