zoukankan      html  css  js  c++  java
  • SQL管理工具

    1.查询某字段内容重复的记录----
    一个表中的Id有多个记录,把所有这个id的记录查出来,并显示共有多少条记录数。
    select id,count(*) from tb group by id having count(*)>1
    select * from (select count(id) as count from tb group by id) t where t.count>1


    2.存储查询结果到另一个表  --  赋值表内容到另一张表
     
     select 字段列表 into 新表名 from 表名
     eg: select sno,cno,degree into score_kkk from score
     select sno,cno,degree into db.#score_kkk from score
    注意:#为虚拟表,可以跨数据库创建


    3.分组查询  ---  group by 子句
     
      select 字段名列表|聚合函数 from 表名 [where 条件表达式] group by 字段名 having [筛选表达式]
      eg:select cno, avg(degree) as 成绩 from score group by cno having avg(degree)>80
    注意:字段名列表包含聚合函数事,则计算每组的汇总值
      
      特别注意:
      1.    如果使用group by子句,字段名列表中任一非聚合表达式内的所有列,都必须包含在group by列表中,
      或者group by表达式必须与选择列表表达式完全匹配  ---  即 gourp by 的字段 都必须在 select的字段名列表中
      2.    筛选查询<Having子句>   <Having子句对Group by子句分组后的结果进行筛选,看其是否满足条件。 故此Having只能配合group by子句使用。>


      当Where子句,Group by子句,Having子句同时使用时,其顺序如下:




    ①执行Where子句,从表中选取行;
    ②由Group By分组;
    ③执行Having子句选取满足的分组条件。




       聚合函数:使用聚合函数,实现数据统计。
    AVG:计算平均数
    Count(*):统计查询输出的记录总数
    Count():统计指定列中选择的记录总数
    Max:最大值
    Min:最小值
    Sum:计算总和
    Stdev:计算统计标准偏差
    Var:统计方差




    4.Having对分组尽心过滤
       
       HAVING 子句对 GROUP BY 子句设置条件的方式与 WHERE 和 SELECT 的交互方式类似。WHERE 搜索条件在进行分组操作之前应用;而 HAVING 搜索条件在进行分组操作之后应用。HAVING 语法与 WHERE 语法类似,但 HAVING 可以包含聚合函数。HAVING 子句可以引用选择列表中显示的任意项。


    查询table表查询每一个班级中年龄大于20,性别为男的人数
    select COUNT(*)as '>20岁人数',classid  from Table1 where sex='男' group by classid,age having age>20 
    --需要注意说明:当同时含有where子句、group by 子句 、having子句及聚集函数时,执行顺序如下:
    --执行where子句查找符合条件的数据;
    --使用group by 子句对数据进行分组;对group by 子句形成的组运行聚集函数计算每一组的值;最后用having 子句去掉不符合条件的组。
    --having 子句中的每一个元素也必须出现在select列表中。有些数据库例外,如oracle.
    --having子句和where子句都可以用来设定限制条件以使查询结果满足一定的条件限制。
    --having子句限制的是组,而不是行。where子句中不能使用聚集函数,而having子句中可以。






    5.显示每个地区的总人口数和总面积,一总人口数排序
         select sum(population) as 总人口,sum(area) as 总面积 from content group by region order by 总人口
      显示每个地区以及的该地区国家总人口数不少于1000万的国家总数
         select region,count(name) 国家数 from content group by region having sum(population)>1000万
      显示每个地区的总人口数和总面积.以总人口来排序.仅显示那些面积超过1000000的地区 
         select sum(population),sum(area) from content group by region having sum(area)>1000000 order by sum(population) desc


    6.学生成绩表查询


      求出每门科目总分,平均分,最高,最低分
         select course,sum(score),avg(distinct score),max(score),min(score) from t_student group by course
      求出每门科目的总分,平均分,最高分,最低分,要求只显示平均分大于70的最后再按平均分由高到低排序
         SELECT SUM(s_score),AVG(s_score),MAX(s_score),MIN(s_score) FROM t_student GROUP BY s_course HAVING AVG(s_score)>70 ORDER BY  AVG(s_score) DESC;

  • 相关阅读:
    HTTP之get post
    eclipse启动maven项目
    IDEA创建的Web项目配置Tomcat并启动Maven项目
    看django源代码有感
    给计算机系学生的建议
    自己的一点看法
    专业学习的方法
    专业思考2013.2.26
    如何通过看书来学习技术
    技术成长路线
  • 原文地址:https://www.cnblogs.com/liuzhen123/p/8242519.html
Copyright © 2011-2022 走看看