查询语句关键字的执行顺序:
from ——where——group by ——having——select——order by
from:需要从那个数据表检索数据
where:过滤表中的数据
group by:将过滤后的数据进行分组,相同条件的记录,默认显示第一个
having:对于已经分组的数据进行过滤的条件
select:查看结果集上的那个列或列的计算结果
order by:对结果集进行排序,来查看返回的数据
函数:
count()返回匹配指定条件的行数
查询A(Id,name)表中的第31到40条记录,id可能不是连续增长的记录
oracle(使用rownum):select * from (select NID,SNAME,SDESCRIPTION,NPRICE,SIMG,SMCTAG,DCDATE,NMAXID,NMINID,rownum as num from t_mc where rownum<=40) where num>=31
思路:先获取前40条记录 在筛选出大于等于31的记录
查询表中id重复三次以上的记录:
SELECT * from account where id in(SELECT id from account GROUP BY id HAVING COUNT(*)>1);
思路 1先找出重复三次以上的id的结果集 2通过id是否包含在结果集内 来筛选符合条件的记录