SQLAlchemy is a popular ORM (Object-Relational Mapping) library for Python that provides a high-level API for interacting with databases. With SQLAlchemy, you can write Python code to manipulate databases instead of writing raw SQL queries. In this blog post, we'll cover the basics of how to perform database operations using SQLAlchemy and MySQL.
Connecting to a MySQL Database
To connect to a MySQL database using SQLAlchemy, you need to install the MySQL Python connector. You can install it using pip:pip install mysql-connector-python
Once you've installed the connector, you can use the create_engine()
function to connect to the database. Here's an example:
from sqlalchemy import create_engine
# database URL in the format "mysql+mysqlconnector://user:password@host:port/database"
engine = create_engine('mysql+mysqlconnector://user:password@localhost:3306/mydatabase')
Creating Tables
To create tables in a MySQL database using SQLAlchemy, you need to define the table schema using theTable
class and the Column
class. Here's an example:from sqlalchemy import Table, Column, Integer, String, MetaData
metadata = MetaData()
users = Table('users', metadata,
Column('id', Integer, primary_key=True),
Column('name', String),
Column('age', Integer),
)
metadata.create_all(engine)
Inserting Data
To insert data into a MySQL table using SQLAlchemy, you can use theinsert()
method. Here's an example:from sqlalchemy import insert
conn = engine.connect()
ins = users.insert().values(name='John Doe', age=25)
conn.execute(ins)
Updating Data
To update data in a MySQL table using SQLAlchemy, you can use theupdate()
method. Here's an example:from sqlalchemy import update
conn = engine.connect()
stmt = users.update().where(users.c.id == 1).values(name='Jane Doe')
conn.execute(stmt)
Deleting Data
To delete data from a MySQL table using SQLAlchemy, you can use thedelete()
method. Here's an example:from sqlalchemy import delete
conn = engine.connect()
stmt = users.delete().where(users.c.id == 1)
conn.execute(stmt)
Querying Data
To query data from a MySQL table using SQLAlchemy, you can use theselect()
method. Here's an example:from sqlalchemy import select
conn = engine.connect()
stmt = select([users])
result = conn.execute(stmt)
for row in result:
print(row)