1. 进行mysql数据库的创建,如果已经存在,就相当于进行数据库的连接操作
from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column, Integer, String, Date from sqlalchemy.orm import sessionmaker # 创建连接 engine = create_engine(‘mysql+pymysql://root:123456@localhost/oldboydb‘, encoding=‘utf-8‘) Base = declarative_base() # 生成orm基类 class User(Base): __tablename__ = ‘user‘ # table的名字 id = Column(Integer, primary_key=True) # 创建id属性 name = Column(String(32)) # 创建name属性 password = Column(String(64)) # 创建密码属性 def __repr__(self): # 用于进行查找时的数据返回 return ‘<%s name :%s>‘ %(self.id, self.name)
Base.metadata.create_all(engine) # 进行指令的调用,即生成table
2. 进行数据的查询,包括条件查询和多条件查询
from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column, Integer, String, Date from sqlalchemy.orm import sessionmaker # 创建连接 engine = create_engine(‘mysql+pymysql://root:lishentao22@localhost/oldboydb‘, encoding=‘utf-8‘) Base = declarative_base() # 生成orm基类 class User(Base): # User继承了上述的操作 __tablename__ = ‘student_user‘ id = Column(Integer, primary_key=True) name = Column(String(32)) password = Column(String(64)) def __repr__(self): # 返回查询到的信息 return ‘<id: %s name: %s password: %s>‘ %(self.id, self.name, self.password) # 执行上述的操作 Base.metadata.create_all(engine) Session_class = sessionmaker(bind=engine) # 进行数据库的连接 Session = Session_class() # 生成session 实例 # 进行数据查询 .all()输出所有的检索结果,.first() 输出第一条的结果 data = Session.query(User).filter_by(name=‘alex‘).first() print(data) data = Session.query(User).filter(User.name == ‘rain‘).first() print(data) # 多条件查询 data = Session.query(User).filter(User.name==‘rain‘).filter(User.id > 1).first() print(data)
3. 进行用户属性的修改
# 进行数据的条件修改 data = Session.query(User).filter(User.name==‘rain‘).first() # 查找出数据的类 data.name = ‘Tom‘ # 对类属性进行修改 Session.commit() # 结果的提交
print(data.id) # 打印查找结果的id信息
4. 添加新的用户信息
fake_user = User(name=‘Jack‘, password=‘123456‘) # 设置用户的名字和密码 Session.add(fake_user) # 将数据添加到表内
5. 进行用户信息的删除
data = Session.query(User).filter(User.name==‘Jack‘).first() # 查找用户信息 Session.delete(data) # 删除用户 Session.commit() # 提交结果
6. 数据的回滚操作
data = Session.query(User).filter(User.name==‘Jack‘).first() # 查找符合条件的数据 Session.delete(data) # 数据删除 Session.rollback() # 数据回滚,取消上述操作 Session.commit() # 提交结果
7. 数据统计
print(Session.query(User).filter(User.name.in_([‘alex‘, ‘Jack‘])).count()) # 统计名字是‘alex‘或者‘Jack‘的次数
# 2
8. 根据名字进行数据分组
from sqlalchemy import func data = Session.query(User.name, func.count(User.name)).group_by(User.name).all() print(data) # [(‘alex‘, 1), (‘Tom‘, 1), (‘Jack‘, 1)]
9. 定义数据库的student表,进行连表查询
# 定义Student类关联student table class Student(Base): __tablename__ = ‘student‘ id = Column(Integer, primary_key=True) name = Column(String(32)) register_data = Column(Date) sex = Column(String(32)) def __repr__(self): # 返回查询到的信息 return ‘<id: %s name: %s register_data: %s>‘ % (self.id, self.name, self.register_data) data = Session.query(User, Student).filter(User.name==Student.name).all() print(data)
python sqlalchemy 进行 mysql 数据库操作
原文:https://www.cnblogs.com/my-love-is-python/p/11507733.html