zoukankan      html  css  js  c++  java
  • mysql之查询语句练习题

    一、连接启动数据库

    1.打开phpstudy启动mysql

    2.创建数据库

     

     3.

     

    4.测试连接

    5.连接

    6.导入数据库

     

    二、查询语句练习题

    1.查询表里所有的数据

    SELECT * FROM City;

    2.查询部分字段的数据

    select * from 表 where 字段
    3.查询city表中,所有中国的城市信息 CHN

    SELECT * FROM city WHERE CountryCode='CHN';

    4.查询city表中,城市名称叫北京的信息

    SELECT * FROM city WHERE NAME='Peking';
    5.查询人口数小于100人城市信息

    SELECT * FROM city WHERE Population<100;
    6.查询中国,人口数超过500w的所有城市信息

    SELECT * FROM city WHERE CountryCode='CHN' AND Population>5000000;
    7.查询中国或美国的城市信息

    SELECT * FROM city WHERE CountryCode='CHN' OR CountryCode='USA';
    8.查询人口数为100w-200w(包括两头)城市信息

    SELECT * FROM city WHERE Population >=1000000 AND Population<=2000000;
    9.查询中国或美国,人口数大于500w的城市

    SELECT * FROM city WHERE (CountryCode = 'CHN' OR 'USA') AND Population>5000000;
    10.查询城市名为qing开头的城市信息

    SELECT * FROM city  WHERE NAME LIKE 'qing%';
    11.查询城市名为jing结尾的城市信息

    SELECT * FROM city  WHERE NAME LIKE '%jing';

    12.查询mysql里都有哪些用户和主机地址

    SELECT USER,HOST FROM mysql.`user`;
    13.查询表的字段都有哪些

       desc city;

    1.统计city表的行数

    SELECT COUNT(*) FROM city;
    2.统计中国城市的个数

    SELECT COUNT(*) FROM city WHERE CountryCode='CHN';
    3.统计中国的总人口数

    SELECT SUM(Population) FROM city WHERE CountryCode='CHN';
    4.统计每个国家的城市个数 group by

    SELECT COUNT(*),CountryCode FROM city GROUP BY CountryCode;
    5.统计每个国家的总人口数

    SELECT SUM(Population),CountryCode FROM city GROUP BY CountryCode;
    6.统计中国每个省的城市个数及城市名列表

    SELECT District,COUNT(NAME),GROUP_CONCAT(NAME)
    FROM city WHERE CountryCode= 'CHN' GROUP BY District;

    7.计算人口数超过1亿的国家

    SELECT SUM(Population),CountryCode
    FROM city GROUP BY CountryCode
    HAVING SUM(Population)>100000000;

    8.查询所有城市信息,并按照人口数排序输出

    SELECT NAME,Population FROM city ORDER BY Population;

    9.计算人口数超过500万的国家并且降序排序

    SELECT SUM(Population),CountryCode FROM city
    GROUP BY CountryCode
    HAVING SUM(Population)>5000000 ORDER BY
    SUM(Population)DESC;


    10.查询中国所有的城市信息,并按照人口数从大到小排序输出,只显示前十名

    SELECT NAME,Population FROM city
    WHERE CountryCode='chn' ORDER BY Population DESC
    LIMIT 10;


    11.查询中国所有的城市信息,并按照人口数从大到小排序输出,跳过前6行,显示后面10行

    SELECT id,NAME,Population FROM city
    WHERE CountryCode='chn' ORDER BY Population DESC
    LIMIT 6,10;


    12.执行顺序

    select select_list from where group_by having order by limit
       4         1             2         3          5     6     7

    SELECT SUM(Population),countrycode
    FROM city
    GROUP BY countrycode
    HAVING SUM(Population) > 50000000
    ORDER BY SUM(Population) DESC
    LIMIT 10;

    三、having用法

    用法与where用法类似,但是又三点不同

    1.having只用于group by (分组统计语句)

    2.Where是用于初始表中筛选查询,having用于where和group by 结果中查询

    3.having可以使用聚合函数,但是where不行

    4.例

    计算人口数超过500万的国家并且降序排序;

    SELECT SUM(Population),CountryCode FROM city 
    GROUP BY CountryCode 
    HAVING SUM(Population)>5000000 ORDER BY 
    SUM(Population)DESC;

    先用group by用来分组,再用having进行过滤大于500万的,

    例:

    Select city FROM weather WHERE temp_lo = (SELECT max(temp_lo) FROM weather);
    作用的对象不同。WHERE 子句作用于表和视图HAVING 子句作用于组。
    WHERE 在分组和聚集计算之前选取输入行(因此,它控制哪些行进入聚集计算),

    而 HAVING 在分组和聚集之后选取分组的行。因此,WHERE 子句不能包含聚集函数;

    因为试图用聚集函数判断那些行输入给聚集运算是没有意义的。 相反,HAVING 子句

    总是包含聚集函数。(严格说来,你可以写不使用聚集的 HAVING 子句,但这样做只

    是白费劲。同样的条件可以更有效地用于 WHERE 阶段。)在前面的例子里,我们可

    以在 WHERE 里应用城市名称限制,因为它不需要聚集。 这样比在 HAVING 里增加

    限制更加高效,因为我们避免了为那些未通过 WHERE 检查的行进行分组和聚集计算

    综上所述:
    having一般跟在group by之后,执行记录组选择的一部分来工作的。
    where则是执行所有数据来工作的。
    再者having可以用聚合函数,如having sum(qty)>1000

    四、group by 与having

    1.group by语句,从英文的字面意思来讲就是“根据(by)一定的规则进行分组(group)

    作用:用过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理,
    注意:group by是先排序后分组
    举例说明:如果用到group by 一般用到的就是“每”这个字,例如现在有这样一个需求:
    查询每个部门有多少人,就要用到分组的技术

    2.

  • 相关阅读:
    结构体怎么组包发送
    开源语音代码eSpeak1.06 的移植到单片机的过程(二)之分析下speak.c 文件
    看看深圳的房价
    开源语音代码eSpeak1.06 的移植到单片机的过程(一)0之分析下espeak.c 文件
    开源语音代码eSpeak1.06 的学习入门
    利尔达模组CAT1 UIS8910指令的 TCP相关中文解释
    将博客搬至CSDN
    【原创】大叔问题定位分享(39)azkaban定期出现fullgc
    【原创】大叔经验分享(129)mac下启动MAT报错
    【原创】大数据基础之Doris(1)编译安装和启动
  • 原文地址:https://www.cnblogs.com/1996-11-01-614lb/p/14098424.html
Copyright © 2011-2022 走看看