1 | from sqlalchemy import create_engine |
创建表 删除表drop_all 创建删除单个表 users.create(engine)
1 |
|
执行多个语句
1 | conn = engine.connect() |
select
from sqlalchemy.sql import select1
2
3
4
5
6
7result = engine.connect().execute(s)
for row in result:
print(row)
# print(result.fetchone())
## 还有另一种方法,其效用将在以后变得明显, 是使用Column直接作为键的对象:
for row in result:
print("name:", row[users.c.name], ", fullname:", row[users.c.fullname])
如果想要控制select的列
1 | result = engine.connect().execute(s) |
####加条件1
2result = engine.connect().execute(s)
print(result.fetchone())
算子
1 | print(users.c.id == 2) |
连词 and_ or_ not_
排序 及 函数 .order_by(users.c.name.desc())
1 | stmt = select([users.c.name, func.count(users.c.id).label('count')]).group_by('id').order_by(desc('id'), desc('name')) |
使用别名
1 | ### 连接 join() outerjoin() |
绑定参数对象
from sqlalchemy.sql import bindparam1
2
3result = engine.connect().execute(s, username='mash4').fetchall()
for row in result:
print(row)
排序 分组 限制 偏移
1 | .having(users.c.name != 'mash1').distinct().limit(1).offset(1) |
插入 更新 删除
1 | engine.connect().execute(s) |
1 | engine.connect().execute(s, [ |
删除
1 | engine.connect().execute(users.delete().where(users.c.name == 'mash4')) |
获取影响行数
1 | result.rowcount |