Produtos com super desconto na Amazon!
Produtos com super desconto na Amazon!

Como utilizar o Python com MariaDB e MySQL Connector

Hoje veremos como utilizar a linguagem de programação Python e o SQLAlchemy com o banco de dados MariaDB através do conector mysql-connector-python.


Mysql-connector-python

O mysql-connector-python é o conector oficial do banco de dados MySQL para a linguagem de programação Python.

Ele permite que os desenvolvedores escrevam código Python para interagir com um banco de dados MySQL, executando consultas, inserindo dados, atualizando registros e muito mais.

O mysql-connector-python pode ser instalado usando o pip, que é o gerenciador de pacotes padrão do Python:

pip install mysql-connector-python

Depois de instalado, você pode importar o conector em seus scripts Python e usá-lo para se conectar a um servidor MySQL e executar operações de banco de dados.


Contêiner

Para testar o código de exemplo foi utilizando o seguinte arquivo docker-compose.yaml:

services:
  db:
    image: mariadb:11.3.2-jammy
    container_name: MariaDB
    restart: on-failure
    ports:
      - "3306:3306"
    environment:
      MYSQL_USER: dbuser
      MYSQL_PASSWORD: 123456
      MYSQL_ROOT_PASSWORD: 123456
      MYSQL_DATABASE: database_name

📝 Contêiner testado com Docker e com o Podman.


Exemplo de CRUD

# -*- coding: utf-8 -*-
"""CRUD - Python - MySQL Connector - MariaDB."""

from mysql.connector import connect

# Conexão (commit, rollback, close, etc).
con = connect(
    user='dbuser',
    password='123456',
    host='localhost',
    port='3306',
    database='database_name'
)

# config = {
#    'user': 'dbuser',
#    'password': '123456',
#    'host': 'localhost',
#    'port': '3306',
#    'database': 'database_name'
# }
# con = connect(**config)

# Cursor (DML, DDL, etc).
cur = con.cursor()

cur.execute('DROP TABLE IF EXISTS table_name;')

table_name = '''CREATE TABLE IF NOT EXISTS table_name (
id    INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
name  VARCHAR(32),
age   SMALLINT
);'''
cur.execute(table_name)

# Create.
print('[!] Create [!]')
query = 'INSERT INTO table_name (name, age) VALUES (%s, %s);'
cur.execute(
    query,
    ('renato', 35),
)

# Bulk create.
cur.executemany(
    query,
    (
        ('maria', 25),
        ('sandy', 19),
    )
)

# Read.
print('\n[!] Read [!]')
cur.execute('SELECT * FROM table_name;')
print(cur.fetchall())

# Limit.
query = 'SELECT * FROM table_name LIMIT %s;'
cur.execute(
    query,
    (3,),
)
print(cur.fetchall())

# Where.
query = 'SELECT * FROM table_name WHERE id = %s;'
cur.execute(
    query,
    (1,),
)
print(cur.fetchone())

query = 'SELECT * FROM table_name WHERE age > %s;'
cur.execute(
    query,
    (20,),
)
print(cur.fetchall())

# Update.
print('\n[!] Update [!]')
query = 'SELECT * FROM table_name WHERE id = %s;'
cur.execute(
    query,
    (1,),
)
print(cur.fetchone())

query = 'UPDATE table_name SET name = %s WHERE id = %s;'
cur.execute(
    query,
    ('joão', 1),
)

query = 'SELECT * FROM table_name WHERE id = %s;'
cur.execute(
    query,
    (1,),
)
print(cur.fetchone())

# Delete.
print('\n[!] Delete [!]')
query = 'SELECT * FROM table_name WHERE id = %s;'
cur.execute(
    query,
    (1,),
)
print(cur.fetchone())

query = 'DELETE FROM table_name WHERE id = %s;'
cur.execute(
    query,
    (1,),
)

query = 'SELECT * FROM table_name WHERE id = %s;'
cur.execute(
    query,
    (1,),
)
print(cur.fetchone())

con.close()

Conclusão

O MariaDB é uma poderosa ferramenta de banco de dados relacional que oferece compatibilidade com o MySQL e uma variedade de recursos avançados.

Compreender os conceitos básicos, como banco de dados, tabelas, consultas SQL e índices, pode ajudá-lo a utilizar o MariaDB de forma eficaz em seus projetos de desenvolvimento.