Hoje veremos como utilizar a linguagem de programação Python com o banco de dados MySQL 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.
Posts relacionados:
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: mysql:8.4.0
# image: mysql:5.7.44
container_name: MySQL
restart: on-failure
ports:
- '3306:3306'
environment:
MYSQL_USER: dbuser
MYSQL_PASSWORD: 123456
MYSQL_ROOT_PASSWORD: 123456
MYSQL_DATABASE: database_name
Exemplo de CRUD
# -*- coding: utf-8 -*-
"""CRUD - Python - MySQL Connector - MySQL."""
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 MySQL é uma ferramenta poderosa para armazenar e gerenciar dados de forma eficiente.
Compreender os conceitos básicos, como bancos de dados, tabelas, consultas SQL e chaves, pode ajudá-lo a utilizar o MySQL de forma eficaz em seus projetos de desenvolvimento.