增删改完成了,下面就是需要查询了
要把这个employee表的实体类创建出来
这个employee表的实体类创建出来
作为一个实体类,把数据库里的数据加入到一个个实体类产生的数据,对column进行一些描述,不需要完全一一对应,整数对应整数,字符串大小(有点偏差不会出现大问题),只有在create_all的时候,48,64varchar大小影响多长,类型一样的话问题不大,只影响create_all,不影响数据装进来
有一个枚举
hire_date=招入时间
这里用的是python中的枚举,
python中如何使用枚举,导入模块enum,定义它的子类,定义类属性
现在是否能把这些数据拿回来,先试试查询
拿到数据了
如果这样,就是懒查询,print只是把语句打印一下,不做任何查询
这样还是懒查询,只是把语句打印了一下
写个查询结果的函数,两条没有问题
!=代表不等,==代表等于
在数据库设计的时候并不推荐使用枚举,可以tiint,一个字节,8位,有256种
建议用数字来表示,可以写个类属性,写字典,告诉你,1,2,3对应什么
查询大于10015且是女性的
也可以用枚举,就是类属性,这样也可以,枚举就是固定几个类型,不能超出范围
试试sql一样的与或非
filter函数里面用and函数,and函数就可以传两个参数,这就是条件
这两个是等价的
查询员工号码大于18小于03的
这种写法是经常使用的
加个|或,但是确实也支持
用|号,需要把所有表达式用括号括起来
试试&与,也需要把表达式括起来,符号两边的条件一定要拿括号括起来
取反有两种方式,先试试最简单的。这样取反就是<=10003的
还有一种方式
这些就是与或非的用法
与或非都需要在表达式上加括号
给个列表,当集合,当做可迭代的值,把列表里的值组织好后,直接丢给判断条件即可
试试 取反,等于not in,后面的可迭代对象要自己生成
试试前缀匹配
试试能否取反,不是p开头
notlike也是一样的
‘这一块是对字符串有要求’
如果要忽略大小写,用ilke,
等于都小写了
直接使用like,就没有做任何调整,sql语句对于字段里的内容是区分大小写的,所以要不区分大小写匹配,就用ilike
也有取反的ilike
排序
现在是升序
现在就逆序了,这个排序是对查询结果的排序
排序可以指定多个字段,先按照emp_no降序,再按照lastname升序排序
这样也是相同的效果
明确写asc,就出来了,不写,默认就是升序
sql默认都是主键排序给你的
分页
拿两个,偏移2个
单表操作现在就是与或非,limit,in,notin ,order by 问题