def table_insert(): # 取得session对象 session = get_session() # 创建 Course类实例 course_obj = Course(course_name='Python', teacher_name='Teacher liu', class_times=32) # 添加对象 session.add(course_obj) # 事务提交 session.commit()
def table_query(): """ 表数据查询 :return: """ # 取得session对象 session = get_session() # 数据查询 query_result = session.query(Course).filter(text("course_name='MySQL'")).all() for item in query_result: print(f'查询结果为==>{item}')
def table_query(): """ 表数据查询 :return: """ # 取得session对象 session = get_session() # 数据查询 query_result = session.query(Course).all() for item in query_result: print(f'查询结果为==>{item}') #这种写法不是很熟
def table_query(): """ 表数据查询 :return: """ # 取得session对象 session = get_session() # 使用 is null query_result = session.query(Course).filter(Course.teacher_name is None) for item in query_result: print(f'查询结果为==>{item}')
def table_query(): """ 表数据查询 :return: """ # 取得session对象 session = get_session() # 数据查询 query_result = session.query(Course).filter(Course.course_name == 'Python') for item in query_result: print(f'查询结果为==>{item}')
def table_query(): """ 表数据查询 :return: """ # 取得session对象 session = get_session() # 数据查询,查找course表中course_name不等于MySQL的记录 query_result = session.query(Course).filter(Course.course_name != 'MySQL') for item in query_result: print(f'查询结果为==>{item}')
def table_query(): """ 表数据查询 :return: """ # 取得session对象 session = get_session() # not in查询, query_result = session.query(Course).filter(~Course.teacher_name.in_(['Teacher Wang', 'Teacher Zhang'])) for item in query_result: print(f'查询结果为==>{item}')
def table_query(): """ 表数据查询 :return: """ # 取得session对象 session = get_session() # 使用 or_() query_result = session.query(Course).\ filter(or_(Course.teacher_name == 'Teacher Wang', Course.course_name == 'SQLAlchemy')) for item in query_result: print(f'查询结果为==>{item}')
def table_query(): """ 表数据查询 :return: """ # 取得session对象 session = get_session() # 数据查询 # query_result = session.query(func.count(Course.course_name), Course.course_name).group_by(Course.course_name).all() # query_result = session.query(func.count('*')).select_from(Course).scalar() query_result = session.query(func.count(Course.id)).scalar() print(f'查询结果为==>{query_result}')
def table_query(): """ 表数据查询 :return: """ # 取得session对象 session = get_session() # 数据查询 query_result = session.query(Course).\ from_statement(text("SELECT * FROM course WHERE course_name='MySQL'")) for item in query_result: print(f'查询结果为==>{item}')
def table_query(): """ 表数据查询 :return: """ # 取得session对象 session = get_session() # 数据查询 query_result = session.query(Course).\ filter(text("teacher_name=:t_name and course_name=:c_name")).\ params(t_name='Teacher Wang', c_name='MySQL').all() for item in query_result: print(f'查询结果为==>{item}')
def table_query(): """ 表数据查询 :return: """ # 取得session对象 session = get_session() # 数据记录统计 # query_result = session.query(Course).count() # 数据记录统计 # query_result = session.query(func.count('*')).select_from(Course).scalar() # 数据记录统计 query_result = session.query(func.count(Course.id)).scalar() print(f'查询结果为==>{query_result}')
def table_query(): """ 表数据查询 :return: """ # 取得session对象 session = get_session() # 返回多于一个查询结果 # query_result = session.query(Course).one() # 没有查询结果 # query_result = session.query(Course).filter(Course.course_name == 'Python').one() # 返回一个查询结果 query_result = session.query(Course).filter(Course.course_name == 'MySQL').one() print(f'查询结果为==>{query_result}')
def table_query(): """ 表数据查询 :return: """ # 取得session对象 session = get_session() # 全模糊匹配,teacher_name中包含 Wang 这个字符串记录都查询出来 # query_result = session.query(Course).filter(Course.teacher_name.like('%Wang%')) # 右模糊匹配,teacher_name中包含以 Wang 这个字符串开头的记录都查询出来 # query_result = session.query(Course).filter(Course.teacher_name.like('Wang%')) # 左模糊匹配,teacher_name中包含以 Wang 这个字符串结尾的记录都查询出来 query_result = session.query(Course).filter( Course.teacher_name.like('%Wang')) for item in query_result: print(f'查询结果为==>{item}')
def table_insert(): # 取得session对象 session = get_session() # 创建 Course类实例 course_obj_1 = Course(course_name='MySQL', teacher_name='Teacher Wang', class_times=32) course_obj_2 = Course(course_name='PyMySQL', teacher_name='Teacher Zhang', class_times=32) course_obj_3 = Course(course_name='SQLAlchemy', teacher_name='Teacher Gao', class_times=32) # 添加多个对象 session.add_all([course_obj_1, course_obj_2, course_obj_3]) # 事务提交 session.commit()
def table_query(): """ 表数据查询 :return: """ # 取得session对象 session = get_session() # 方法一:使用 and_() query_result = session.query(Course).\ filter(and_(Course.teacher_name == 'Teacher Wang', Course.course_name == 'MySQL')) # 方法二:在filter()中设置多个表达式 query_result = session.query(Course).\ filter(Course.teacher_name == 'Teacher Wang', Course.course_name == 'MySQL') # 方法三:使用多个filter() query_result = session.query(Course).filter(Course.teacher_name == 'Teacher Wang').\ filter(Course.course_name == 'MySQL') for item in query_result: print(f'查询结果为==>{item}')
def table_delete(): """ 表数据查询 :return: """ # 取得session对象 session = get_session() # 数据查询 course_obj = session.query(Course).filter( Course.course_name == 'Python').first() # print(course_obj) print(f'删除前==>{course_obj}') # 数据删除 session.delete(course_obj) session.commit() course_obj = session.query(Course).filter( Course.course_name == 'Python').first() print(f'删除后==>{course_obj}')
def table_update(): """ 数据查询并修改 :return: """ # 取得session对象 session = get_session() # 数据查询 query_result = session.query(Course).filter(Course.course_name == 'Python') for item in query_result: print(f'查询结果为==>{item}') print(f'item对象的类型为:{type(item)}') print(f'更改前:teacher_name={item.teacher_name}') # 将 Teacher liu 更改为 Teacher LI item.teacher_name = 'Teacher LI' session.add(item) session.commit() query_result = session.query(Course).filter(Course.course_name == 'Python') for item in query_result: print(f'更改后:teacher_name={item.teacher_name}')
def table_update(): """ 数据查询并修改 :return: """ # 取得session对象 session = get_session() # 数据查询 course_obj = session.query(Course).filter( Course.course_name == 'Python').first() print(course_obj) print(type(course_obj)) print(f'更改前:teacher_name={course_obj.teacher_name}') # 将 Teacher LI 更改为 Teacher LIU course_obj.teacher_name = 'Teacher LIU' session.add(course_obj) session.commit() course_obj = session.query(Course).filter( Course.course_name == 'Python').first() print(course_obj) print(f'更改后:teacher_name={course_obj.teacher_name}')