请问sqlalchemy 创建表的两种方式有何区别

一种是用公式:
metadata=MetaData() #创建metadata对象
cookies = Table('cookies', metadata,
Column('cookie_id', Integer(), primary_key=True),
Column('cookie_name', String(50), index=True),
Column('cookie_recipe_url', String(255)),
Column('cookie_sku', String(55)),
Column('quantity', Integer()),
Column('unit_cost', Numeric(12, 2)))

一种用类库:

基类:
Base = declarative_base()
元素:
class User(Base):
tablename = 'user'

id = Column(Integer,primary_key=True)
name = Column(String(32))
password = Column(String(64))

Base.metadata.create_all(engine)

这两种都是用的 SQLALchemy 的 metadata,一个是类库,一个是公式
请问前者是后边类库的应用吗 两种创建表的方式有何区别
我是初学者