[파이썬] SQLAlchemy DDL (Data Definition Language) 명령

SQLAlchemy is a popular Python library that provides a powerful and flexible way to interact with databases. In addition to querying and manipulating data, SQLAlchemy also allows you to define and manage the structure or schema of your database using DDL (Data Definition Language) commands.

DDL commands are used to create, modify, and delete the structure of database objects such as tables, indexes, constraints, and more. SQLAlchemy provides a comprehensive set of DDL commands that you can use to define and manipulate your database schema.

Let’s take a look at some common SQLAlchemy DDL commands and how they can be used to manage your database schema.

Creating Tables

In SQLAlchemy, you can use the Table class from the sqlalchemy.schema module to define a table and its columns. To create the table in the database, you can use the create_all method of the MetaData object.

from sqlalchemy import create_engine, MetaData
from sqlalchemy.schema import Table, Column, Integer, String

engine = create_engine('your_database_uri')
metadata = MetaData()

users = Table('users', metadata,
    Column('id', Integer, primary_key=True),
    Column('name', String),
    Column('email', String, unique=True)
)

metadata.create_all(engine)

The code above creates a users table with three columns: id, name, and email. The create_all method creates the table in the database specified by the engine.

Modifying Tables

To modify an existing table, you can use the alter_table method of the Table object. For example, let’s say we want to add a new column called age to the users table:

from sqlalchemy.schema import Table, Column, Integer

metadata = MetaData(bind=engine)
users = Table('users', metadata, autoload=True)

age_column = Column('age', Integer)
age_column.create(users)

The code above adds a new column age to the existing users table.

Deleting Tables

To delete a table, you can use the drop_all method of the MetaData object.

metadata.drop_all(engine)

The code above will drop all the tables defined in the MetaData object from the database.

Conclusion

SQLAlchemy DDL commands provide a convenient way to define and manage the structure of your database. Whether you are creating tables, modifying existing ones, or deleting tables, SQLAlchemy provides a comprehensive set of tools to help you manage your database schema effectively.

By using SQLAlchemy’s DDL commands, you can easily maintain and evolve your database schema over time, making it an essential tool for any Python developer working with databases.