ORM框架SQLAlchemy操作
新增数据
new_data=表名(name='',age='')
session.add(new_data)
更新数据
(批量)更新数据 (条件判断fileter_by(id=1),去掉则批量)
session.query(表名).fileter_by(id=1).update({表名.age:12})
(单条)更新数据
get_data=session.query(表名).filter_by(id=1).first()
get_data.class_name=''
删除数据
(批量)删除数据 (条件判断fileter_by(id=1),去掉则批量)
del_data=session.query(表名).filter_by(id=1).delete()
查询数据
查询全部数据(session.query(myclass)相当于SQL语句里面的select * from myclass,而all()方法是将数据以列表的形式返回)
get_data=session.query(myclass).all()
for i in get_data:
print(i.name)
print(i.class_name)
session.close()
查询某一字段
get_data=session.query(myclass.name,myclass.class_name).all()
for i in get_data:
print(i.name)
print(i.class_name)
session.close()
筛选条件
((1)字段写法:filter筛选的字段是带类名(表名)的,而filter_by只需筛选字段即可。(2)判断条件:filter比filter_by多出一个等号。(3)作用范围:filter可以用于单表或者多表查询,而filter_by只能用于单表查询。)
1. get_data=session.query(myclass).filter(myclass.id==1).all()
2. get_data=session.query(myclass).filter_by(id=1).all()
print(str(type(get_data)))
for i in get_data:
print(i.name)
print(i.class_name)
3. from sqlalchemy or_
session.query(mytable).filter(or_(mytable.id>=2,mytable.class_name=='三年级二班')).all()