美文网首页
DQL基础应用(select,from,where,group

DQL基础应用(select,from,where,group

作者: 新_WX | 来源:发表于2019-08-08 09:45 被阅读0次

    1.select语句应用

    1.1.select 的执行逻辑
    命令参数 作用
    select 列1,列2
    from 表,指定从哪个表中取数据
    where 条件,匹配条件,and/or是并且/或者,between是取区间,in表示取哪些值的属性。
    group by 条件,分组字句+聚合函数应用
    having 条件,把之前的结果再次进行过滤
    order by 条件,将之前的结果进行排序,默认由低到高desc由高到低
    limit 条件,取行数,显示多少行
    1.2.select单独使用情况

    (1) select @@参数名;

    SELECT @@datadir;                             查询数据目录路径
    SELECT @@port                                 查询端口号
    SELECT @@socket                               查询socket文件路径
    SELECT @@innodb_flush_log_at_trx_commit;
    SHOW VARIABLES                                查询所有参数(513个)
    SHOW VARIABLES LIKE '%trx%';                  模糊查询
    

    (2) select函数();

    SELECT NOW()                                  查看当前时间
    SELECT DATABASE();                            查看当前所在数据库
    SELECT USER()                                 查看当前用户
    SELECT 16*16                                  计算16*16
    SELECT CONCAT("hello word")                   显示引号中的值
    SELECT CONCAT(USER,"@",HOST) FROM mysql.user        查询user和host使用'@'符合拼接显示
    

    2.FROM 子句应用

    SELECT * FROM city                            查看citi表中所用数据,全表扫描
    SELECT NAME,countrycode FROM city;            查看citi表中的name列和countrycode列
    

    from用于指定从哪个表中取数据

    3. where字句应用

    >>3.1 等值查询
    --- 查询中国城市的信息.
    SELECT * FROM city WHERE countrycode='CHN'
    
    >>3.2 不等值查询
    --- 查询ID小于10的城市信息
    SELECT * FROM city WHERE population<100;
    --- 查询不是中国的城市信息(尽量不使用不等于,可能不走索引)
    SELECT * FROM city WHERE countrycode!='CHN';
    
    >>3.3 模糊查询
    ---查询国家代号为CH打头的城市信息.
    SELECT * FROM city WHERE countrycode LIKE 'CH%'
    《注意:避免使用LIKE中前面带%的模糊查询》
    
    >>3.4 逻辑连接符(and,or)
    ---查询中国城市人口超过500W的城市信息
    SELECT * FROM city WHERE CountryCode='CHN' AND Population>5000000
    ---查看山东省或河北省的城市信息
    SELECT * FROM city WHERE district='shangdong' OR district='hebei' 
    
    >>3.5 where 配合between and使用
    ---查询人口数在100W-200W区间的城市信息(包含头尾)
    SELECT * FROM city WHERE Population BETWEEN 1000000 AND 2000000
    
    >>3.6 where配合in使用
    ---查看山东省或河北省的城市信息
    SELECT * FROM city WHERE District IN('shangdong','hebei')
    《  排除:SELECT * FROM city WHERE District NOT IN('shangdong','hebei')  》
    

    where用于匹配条件,and/or是并且/或者,between是取区间,in表示取哪些值的属性。

    4. group by 分组字句+聚合函数应用

    4.1 什么是分组

    按照某个列进行分组

    4.2 常用的聚合函数
    名称 作用
    COUNT() 计数
    MAX() 最大值
    MIN() 最小值
    AVG() 平均值
    SUM() 求和
    GROUP_CONCAT() 列转行
    4.3 例子
    >>统计每个国家的城市个数
    SELECT CountryCode,COUNT(id) FROM city GROUP BY CountryCode
    >> 统计中国,每个省的,城市个数,省总人口数
    SELECT district, COUNT(NAME),SUM(population)  FROM  city   WHERE countrycode='CHN'  GROUP BY district ;
    >>统计各个国家的城市名列表
    SELECT countrycode ,GROUP_CONCAT(NAME) FROM city GROUP BY countrycode\G
    

    5. having子句使用

    >> 统计中国,每个省的,城市个数,省总人口数,只显示人口总数大于800w的省
    SELECT district, COUNT(NAME),SUM(population) 
    FROM  city  
    WHERE countrycode='CHN' 
    GROUP BY district 
    HAVING  SUM(population)>8000000
    

    having是把之前的结果再次进行过滤

    6. order by子句使用

    >> 将以上例子在进行排序
    SELECT district, COUNT(NAME),SUM(population) 
    FROM  city  
    WHERE countrycode='CHN' 
    GROUP BY district 
    HAVING  SUM(population)>8000000
    ORDER BY SUM(population) DESC;
    >>查询中国所有城市信息,并以人口数降序排序输出
    SELECT * FROM city WHERE CountryCode='CHN' ORDER BY Population DESC;
    

    order by是将之前的结果进行排序

    7. limit 应用

    >>查询中国所有城市信息,并以人口降序输出,只显示前五名
    SELECT * FROM city WHERE CountryCode='CHN' ORDER BY Population DESC LIMIT 5;
    >>跳过N行,显示M行
    LIMIT N OFFSET M
    LIMIT N,M
    

    limit是取行数,显示多少行。

    8. distinct应用

    >>查询所有国家代号信息(去重)
    SELECT DISTINCT CountryCode FROM city;
    

    9. union与union all(相当于and)

    >>查看山东省或者河北省的
    SELECT * FROM city WHERE District='shangdong' UNION ALL SELECT * FROM city WHERE district='hebei'
    

    面试题:union和union的区别
    UNION自带distinct的去重功能,UNION ALL没有去重复

    相关文章

      网友评论

          本文标题:DQL基础应用(select,from,where,group

          本文链接:https://www.haomeiwen.com/subject/xzktjctx.html