1.查找单表中的重复数据
select Email from Person group by Email having count(Email)>1;
总结:优先顺序where>group by>having>order by
where字句无法与聚合函数一起使用,如果要对分组查询的结果进行筛选,可以使用having子句
2.按条件修改数据(将表内某列特定值替换成其他值),只能使用update时
使用case、when
update salary set sex =
(case sex
when 'm' then 'f'
else 'm'
end
);
3.查找不在表里面的数据
涉及2张以上表的查询时,我们需要用到多表联结
select ...
from 表1 as a
left join 表2 as b
on a.列名=b.列名
where b.列名 is null;
4.组合两张表(从多表中查询数据),与3很像
select FirstName,LastName,City,State from Person left join Address on Person.PersonId=Address.PersonId;
#注意:如果没有某个人的地址信息,使用 where 子句过滤记录将失败,因为它不会显示姓名信息,所以要用on
5.删除单张表中的重复数据
DELETE p1 FROM Person p1,
Person