# for dep in query11: # print(dep.dep_id, dep.dep_name) ############################# query12 = session.query(Departments).count() # print(query12) # 统计departments表的行数 ############################# query13 = session.query(Employees.emp_name, Departments.dep_name)\ .join(Departments) # 员工表和部门表有主外键约束,join后,可以得到正确结果 # for emp_name, dep_name in query13: # print(emp_name, dep_name) ############################# query14 = session.query(Departments.dep_name, Employees.emp_name)\ .join(Employees) # for dep_name, emp_name in query14: # print(emp_name, dep_name) ############################# # 找到实例,重新赋值,即可实现更新操作 query15 = session.query(Departments)\ .filter(Departments.dep_name=='人事部') # print(query15.all()) # 返回的是长度为1的列表 # print(query15.one()) # 返回的是实例 # hr = query15.one() # hr.dep_name = '人力资源部' ############################# query16 = session.query(Departments).filter(Departments.dep_id==6) ui = query16.one() session.delete(ui) ############################# session.commit() session.close()
# 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()
# print('*' * 30) # print(qset10.first()) # 返回all()中的第一个对象 ############################################# # qset11 = session.query(Departments).filter(Departments.dep_id==1) # print(qset11.all()) # print(qset11.first()) # print(qset11.one()) # 要求查询到的结果只有一个记录,否则报错 ############################################# # qset12 = session.query(Departments.dep_name, Departments.dep_id).filter(Departments.dep_id==1) # print(qset12.one()) # print(qset12.scalar()) # 返回one的第一个字段 ############################################# # qset13 = session.query(Departments).count() # print(qset13) ############################################# # 注意Employees.emp_name先写的,join时就要写Departments # qset14 = session.query(Employees.emp_name, Departments.dep_name).join(Departments) # for emp_name, dep_name in qset14: # print('%s: %s' % (emp_name, dep_name)) ############################################# # qset15 = session.query(Departments).filter(Departments.dep_id==1) # hr = qset15.one() # hr.dep_name = '人力资源部' ############################################# qset16 = session.query(Departments).filter(Departments.dep_name=='财务部') finance = qset16.one() session.delete(finance) session.commit() session.close()
################################################### # 统计一共有几个部门 qset12 = session.query(Departments).count() print(qset12) ################################################### # 得到每个员工在哪个部门,部门使用名字,不用ID qset13 = session.query(Employees.emp_name, Departments.dep_name).\ join(Departments, Employees.dep_id==Departments.dep_id) print(qset13.all()) # 注意query()中先写Employees.emp_name,join()中就要先用Departments ################################################### ################################################### # 第一种修改记录的方法,通过查询语句的update方法 hr = session.query(Departments).filter(Departments.dep_name == 'hr') print(hr) hr.update({'dep_name': '人力资源部'}) session.commit() session.close() ################################################### hr = session.query(Departments).get(1) # 获取主键是1的实例 print(hr) hr.dep_name = '人事部' session.commit() session.close() ################################################### # 删除ID号为5的员工记录 tom = session.query(Employees).get(5) session.delete(tom) session.commit() session.close()
# print(query11) ########################################## # from sqlalchemy import and_, or_ # query11 = session.query(Employees)\ # .filter(or_(Employees.emp_id==1, Employees.gender=='女')) # result = query11.all() # all取出全部结果 # print(result) # result1 = query11.first() # first取出查询集中的第一个结果 # print(result1) # result2 = query11.one() # 报错,因为one要求只能得到一个结果 ########################################## # query12 = session.query(Departments).count() # print(query12) # 相当于select count(*) from departments; ########################################## # query先写的是Employees.name,join时就要用Departments # 如果query先写join时就要用Departments.dep_name,join时就要用query先写的是Employees # query13 = session.query(Employees.name, Departments.dep_name)\ # .join(Departments, Employees.dep_id==Departments.dep_id) # print(query13) # for name, dep in query13: # print(name, dep) ########################################## # dep = session.query(Departments).get(1) # 取出主键是1的部门 # dep.dep_name = '人力资源部' # session.commit() ########################################## emp = session.query(Employees).get(1) session.delete(emp) session.commit()
# print(emp.emp_name, emp.email) ################################## # qset7 = session.query(Departments).filter(Departments.dep_id.in_([1, 3, 6])) # print(qset7.all()) # all返回列表 # print(qset7.first()) # 返回all列表中的第一项 # dep = qset7.first() # print(dep.dep_id, dep.dep_name) ################################## # qset8 = session.query(Departments).filter(Departments.dep_id==3) # dep = qset8.one() # one要求返回一项,0或多都会报错 # print(dep.dep_id, dep.dep_name) ################################## # 多表查询,先写Employees.emp_name,join的参数必须是Departments # 如果写先Departments.dep_name,join的参数必须是Employees # qset9 = session.query(Employees.emp_name, Departments.dep_name)\ # .join(Departments) # print(qset9.all()) ################################## # 修改,只要进行变量重新赋值即可 # qset10 = session.query(Departments).filter(Departments.dep_id==1) # hr = qset10.one() # hr.dep_name = '人力资源部' ################################## # 删除,先取出实例,再调用delete方法 qset11 = session.query(Departments).filter(Departments.dep_id == 6) market = qset11.one() session.delete(market) ################################## session.commit() session.close()
#!/usr/bin/env python3 # _*_coding:utf8_*_ from dbconn import Session, Departments # cw = Departments(dep_id=5,dep_name='cw') session = Session() det = session.query(Departments).get(5) session.delete(det) # qset = session.query(Departments.dep_id,Departments.dep_name) # for id , name in qset: # print(id,name) # session.add(cw) session.commit() session.close()
####################################### # query14 = session.query(Departments).filter(Departments.dep_id==1) # print(query14.one()) # 返回一个具体的实例,多于1或少于1都会报错,常用 ####################################### # query15 = session.query(Departments.dep_name, Departments.dep_id)\ # .filter(Departments.dep_id==1) # print(query15.scalar()) # 返回one结果中的第一项 ####################################### # query16 = session.query(Departments).count() # print(query16) ####################################### # query17 = session.query(Employees.emp_name, Departments.dep_name)\ # .join(Departments) # print(query17) # for emp_name, dep_name in query17: # print('%s: %s' % (emp_name, dep_name)) ####################################### # query18 = session.query(Departments).filter(Departments.dep_name=='人事部') # hr = query18.one() # print(hr) # hr.dep_name = '人力资源部' ####################################### query19 = session.query(Departments).filter(Departments.dep_name == '行政部') xz = query19.one() session.delete(xz) ####################################### session.commit() session.close()
from dbconn import Departments, Session session = Session() q1 = session.query(Departments).filter(Departments.dep_name=='运维部') dep = q1.one() # print(dep) session.delete(dep) session.commit() session.close()
from dbconn import Departments, Session session = Session() # sales = Departments(dep_id=6, dep_name='销售') # session.add(sales) # session.commit() ########################## # xs = session.query(Departments).filter(Departments.dep_id==6) # xs = xs.one() # 取出实例 # print(xs) # xs.dep_name = '销售部' # 实例重新赋值 # session.commit() ########################## xs = session.query(Departments).filter(Departments.dep_id==6) xs = xs.one() session.delete(xs) session.commit() session.close()
from dbconn import Departments, Employees, Session, Salary session = Session() # xz=Departments(dep_id=5,dep_name='行政部') # session.add(xz) dev = session.query(Departments).get(5) session.delete(dev) session.commit() session.close()
from dbconn import Session, Department session = Session() # query1 = session.query(Department)\ # .filter(Department.dep_name=='development') # query1.update({'dep_name': '开发部'}) # query2 = session.query(Department).filter(Department.dep_name=='人事部') # dep_hr = query2.one() # dep_hr.dep_name = '人力资源部' dep_fn = session.query(Department).get(2) print(dep_fn) session.delete(dep_fn) session.commit() session.close()
#!/usr/bin/env python3 # -*- coding:utf-8 -*- from dbconn import Departments,Session,Employees from sqlalchemy import and_,or_ session = Session() finance = session.query(Departments).get(3) qset = session.query(Departments).filter(Departments.dep_name=="财务部门") result = qset.all()[0] result = qset.one() result = qset.first() result = finance print(result) session.delete(result) session.commit() session.close()