业务中百分之八九十的工作,基本都是在考虑数据的增删改查,基本各种语言框架都提供了ORM查询方式,但学多了真的头痛,业务中又急着要用,干脆搞个原生查询算了,不管换哪种语言都会提供SQL原生查询,好了开搞吧。
关于null值
null参与运算后,运算结果都会为null。
null不能直接用比较运算符进行比较如(!=,=)等,需要用 is null和not null进行判断
and和or
and的优先级要高于or,如果有多个or条件,建议用()包裹再与and查询
in和not in判断值是否再列表中
in本质是分别查询,字段=值,如此查询,不会显示为null的结果。
not in 查询结果不会显示为null的值。
如果not in加入了null,整个语句不会有结果。(特别注意:如果not in 中有子查询,不能出现null)
like模糊查询
%匹配任意多个字符,如匹配标题中包含“高手”,“%高手%”
_匹配任意一个字符,如匹配名字第三个字为“丽”“__丽”
order by
可以多字段进行排序,如果优先排序字段有重复,可用逗号隔开填写第二排序字段名和规则即可,有重复会自动触发,没有将不会触发
distinct排重查询
可对查询结果进行排重处理,不会影响源数据。
注意:distinct关键词只能出现再查询字段的最前面。
如若是多字段会自动联合判断排重