Exemple #1
0
# qset7 = session.query(Departments).order_by(Departments.dep_id)
# print(qset7.all())
# print(qset7.first())
# dep = qset7.first()
# print(dep.dep_id, dep.dep_name)
#################################
# 多表查询,查询员工所在部门
# qset8 = session.query(Employees.emp_name, Departments.dep_name)\
#     .join(Departments)
# for item in qset8:
#     print(item)
# 多表查询时,query的第一个参数是Employees.emp_name,join时要写Departments
# 如果query的第一个参数是Departments.dep_name, join时要写Employees
# qset9 = session.query(Departments.dep_name, Employees.emp_name)\
#     .join(Employees)
# for item in qset9:
#     print(item)
#################################
# 更新,首先找到记录对应的实例,然后对实例重新赋值即可
# 注意,filter的结果是列表的形式
# qset10 = session.query(Departments).filter(Departments.dep_name=='人事部')
# hr = qset10[0]  # 从列表中取出第一个元素
# hr.dep_name = '人力资源部'
# session.commit()  # 增删改都要commit
#################################
# 删除,将7号部门删除
qset11 = session.query(Departments).filter(Departments.dep_id == 7)
sales = qset11[0]
session.delete(sales)
session.commit()
Exemple #2
0
from dbconn import Departments, Employees, Salary, Session

# 创建会话实例,用于连接数据库
session = Session()

# 创建部门实例
hr = Departments(dep_id=1, dep_name='人事部')
ops = Departments(dep_id=2, dep_name='运维部')
dev = Departments(dep_id=3, dep_name='开发部')
qa = Departments(dep_id=4, dep_name='测试部')
finance = Departments(dep_id=5, dep_name='财务部')
market = Departments(dep_id=6, dep_name='市场部')
sales = Departments(dep_id=7, dep_name='销售部')

# 在数据库中创建记录
deps = [hr, ops, dev, qa, finance, market, sales]
session.add_all(deps)
session.commit()        # 确认至数据库

# 关闭会话
session.close()
Exemple #3
0
# dep = qset7.first()
# print(dep)
###############################################
# one要求查询结果只有一个值,0或多个值都报错
# qset8 = session.query(Departements).filter(Departements.dep_id==3)
# dep = qset8.one()
# print(dep)
###############################################
# 修改,只要对对象重新赋值即可
# qset9 = session.query(Departements).filter(Departements.dep_name=='人事部')
# hr = qset9.one()
# hr.dep_name = '人力资源部'
###############################################
# 删除,也是找到实例,删除即可
# qset10 = session.query(Departements).filter(Departements.dep_id==7)
# market = qset10.one()
# session.delete(market)
###############################################
# 多表查询,查询时sqlalchemy会根据外键约束进行连接
# qset11 = session.query(Employees.emp_name, Departements.dep_name)\
#     .join(Departements)
# print(qset11.all())
# query时,先写Departments.dep_name就要join Employees
qset12 = session.query(Departements.dep_name, Employees.emp_name)\
    .join(Employees)
print(qset12.all())

###############################################
session.commit()  # 增删改需要commit
session.close()
Exemple #4
0
dep = qset7.first()
print(dep.dep_id, dep.dep_name)

#################################
# 多表查询,查询员工所在部门
qset8 = session.query(Employees.emp_name,
                      Departments.dep_name).join(Departments)
for item in qset8:
    print(item)
# 多表查询时,query的第一个参数是Employees.emp_name,join时要写Departments
# 如果query的第一个参数是Departments.dep_name, join时要写Employees
qset9 = session.query(Departments.dep_name, Employees.emp_name).join(Employees)
for item in qset8:
    print(item)

#################################
# 更新,首先找到记录对应的实例,然后对实例重新赋值即可
# 注意,filter的结果是列表的形式
qset10 = session.query(Departments).filter(Departments.dep_name == '人事部')
print(qset10)
print(list(qset10))
hr = qset10[0]  # 从列表中取出第一个元素
hr.dep_name = '人力资源部'
session.commit()  # 增删改都要commit确认

#################################
# 删除,将7号部门删除
qset11 = session.query(Departments).filter(Departments.dep_id == 7)
sales = qset11[0]
session.delete(sales)
session.commit()
Exemple #5
0
# print(qset8)  # qset8是SQL语句
# print(qset8.all())   # all方法返回列表
# print(qset8.first())  # first返回all中的第一项
#######################################
# qset9 = session.query(Departments.dep_id, Departments.dep_name)\
#     .filter(Departments.dep_id==20)
# # one方法要求查询的结果只有一项,0或多项都报错
# print(qset9.one())
#######################################
# 多表查询,默认情况下sqlalchemy会自动根据主外键约束找到对应关系
# 查询的时候参数先写Employees,join要写Departments,反之亦然
# qset10 = session.query(Employees.emp_name, Departments.dep_name)\
#     .join(Departments)
# print(qset10.all())
#######################################
# 修改,只要将实例重新赋值
# qset11 = session.query(Departments).filter(Departments.dep_name=='人事部')
# hr = qset11.one()
# hr.dep_name = '人力资源部'
#######################################
# 删除,先找到实例再删除
qset12 = session.query(Departments).filter(Departments.dep_id==6)
sales = qset12.one()
session.delete(sales)



#######################################
session.commit()   # 确认
session.close()    # 关闭会诂连接