sqlalchemy常用的数据库操作
时间: 2023-08-30 21:06:30 浏览: 88
SQLAlchemy 是 Python 中最流行的 ORM(对象关系映射)框架之一,它支持多种数据库,包括 PostgreSQL、MySQL、SQLite 等。下面是一些 SQLAlchemy 常用的数据库操作:
1. 创建表:
```python
from sqlalchemy import Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String(50))
email = Column(String(120), unique=True)
```
在上面的示例中,我们使用 SQLAlchemy 的 declarative_base() 函数创建一个基类 Base,然后定义了一个名为 User 的表,包括三个字段:id、name 和 email。
2. 插入数据:
```python
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
engine = create_engine('sqlite:///example.db', echo=True)
Session = sessionmaker(bind=engine)
session = Session()
new_user = User(name='John Doe', email='johndoe@example.com')
session.add(new_user)
session.commit()
```
在上面的示例中,我们使用 create_engine() 函数创建一个数据库引擎,并使用 sessionmaker() 函数创建一个会话对象。然后,我们创建一个新的 User 对象并将其添加到会话中,最后提交会话以保存数据。
3. 查询数据:
```python
users = session.query(User).all()
for user in users:
print(user.name, user.email)
```
在上面的示例中,我们使用 query() 方法查询 User 表中的所有数据,并使用 all() 方法获取查询结果。然后,我们遍历查询结果并打印每个用户的姓名和电子邮件地址。
4. 更新数据:
```python
user = session.query(User).filter_by(name='John Doe').first()
user.email = 'newemail@example.com'
session.commit()
```
在上面的示例中,我们使用 query() 方法查询 User 表中姓名为 'John Doe' 的用户,并更新其电子邮件地址为 'newemail@example.com'。最后,我们提交会话以保存更改。
5. 删除数据:
```python
user = session.query(User).filter_by(name='John Doe').first()
session.delete(user)
session.commit()
```
在上面的示例中,我们使用 query() 方法查询 User 表中姓名为 'John Doe' 的用户,并删除该用户。最后,我们提交会话以保存更改。
总之,SQLAlchemy 提供了一组强大的 API,可以帮助我们轻松地进行数据库操作,包括创建表、插入数据、查询数据、更新数据和删除数据等。
阅读全文