小言_互联网的博客

python数据库ORM学习二:sqlchemy增删改查,统计,多条件查询

445人阅读  评论(0)

一. 不多说直接看代码就明白了

import sqlalchemy
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column,Integer,String
from sqlalchemy.orm import sessionmaker
#创建连接,root是用户名,123456是密码,localhost是IP地址,test是数据库名。
engine = create_engine("mysql+pymysql://root:123456@localhost/test",encoding = 'utf-8',echo=True)

#生成orm基类
base = declarative_base()

class test_student(base):
    __tablename__ = 'test_student'
    id = Column(Integer, primary_key=True)
    name = Column(String(32))
    age = Column(Integer)

    def __repr__(self):
        return "<test_student(id='%s',name='%s',age='%s')>"%(self.id,self.name,self.age)

# 创建与数据库的会话
Session_class = sessionmaker(bind=engine)
# 生成session实例
session = Session_class()

#插入你要创建的数据对象,每执行一次都会新增一次数据
student = test_student(name = "tyj",age=20)
#要把创建的数据对象添加到这个session里面
session.add(student)
#提交,使前面修改的数据生效
session.commit()

#修改操作
target = session.query(test_student).filter(test_student.name == 'tyj').first()
target.age = 21
session.commit()

#查询操作
result = session.query(test_student).filter(test_student.name=='tyj').first()
print(result.id,result.name,result.age)

#查询所有
print(session.query(test_student).all())

#多条件查询
stu = session.query(test_student).filter(test_student.id>0).filter(test_student.id<=3).all() #注意:filter()中的关键字不能是表达式user.id=0
print(stu)

#统计和分组
objs = session.query(test_student).filter(test_student.name.like('t%')).count()  #统计
print(objs)

#删除操作
# target = session.query(test_student).filter(test_student.name == "tyj")
# session.delete(target)
session.query(test_student).filter(test_student.name == "tyj").delete()
session.commit()





 


转载:https://blog.csdn.net/qq_36499794/article/details/102575307
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场