zoukankan      html  css  js  c++  java
  • 5.Mysql之基本SQL语法(02)

    1.前言

      本节主要介绍关于DQL查询方法的相关知识点,本来是想要将它放到前一章中进行介绍,不过我觉得关于Mysql的查询很重要,在DBA开发与运维中会常常用到它们,故此拿出来单独说。

    2.DQL查询(Select)

      2.1首先说明一下因为Select语句会常常和Mysql内置函数一起使用,故有必须要了解一下关于Mysql的内置函数用法,这里因为太多,故不一一说了,

        具体参考官方文档:https://dev.mysql.com/doc/refman/5.7/en/functions.html

      2.2下面介绍一些常用的函数

        2.2.1关于查看系统参数    

    1 -- select @@xxx 查看系统参数
    2 SELECT @@port;           ##查看端口
    3 SELECT @@basedir;     ##查看安装目录路径
    4 SELECT @@datadir;     ##查看数据目录路径
    5 SELECT @@socket;     ##查看套接字的所在的路径
    6 SELECT @@server_id;    ##查看Mysql的server_id

        2.2.2关于select的一些内置函数(后续还要补充)

    1 SELECT NOW();      ##查看当前时间
    2 SELECT DATABASE();   ##查看当前所在的数据库
    3 SELECT USER();     ##查看当前登录Mysql服务器的用户
    4 SELECT CONCAT("hello world");      #####拼接要补充
    5 SELECT CONCAT(USER,"@",HOST) FROM mysql.user;
    6 SELECT GROUP_CONCAT(USER,"@",HOST) FROM mysql.user;

    3.DQL之select ...where...(过滤)

      3.1 Where条件查询

        语法:select col1,col2 from table(表名) where col 条件;

        说明:条件包含有(=,>,<,>=,<=,<>)   等于|大于|小于|大于等于|小于等于|不等于

      3.2 Where 配合逻辑运算符(and or )

      3.3 Where配合的模糊查询

        实例:select * from city where district like 'guang%';  ##查看以guang开头的所有信息。

          注意:%不能放在关键字前面,否则不走索引。

      3.4 Where配合in语句

        实例:select  * from city where countrycode in ('CHN','USA'); ##查看所有国家中包含中国和美国的所有字段信息。

        3.5 Where配合between and

        SELECT * FROM city WHERE population >1000000 AND population <2000000;  ##查询世界上人口数量大于100w小于200w的城市信息

        SELECT * FROM city WHERE population BETWEEN 1000000 AND 2000000;

    4.group by(分组)+聚合函数

      4.1 作用:根据by后面的条件进行分组,方便统计,by后面跟一个列或多个列

      4.2常用的聚合函数:   

      **max()**      :最大值
      **min()**      :最小值
      **avg()**      :平均值
      **sum()**      :总和      *****
      **count()**    :个数      *****
      group_concat() : 列转行

      4.3示例:  

    统计世界上每个国家的总人口数.
    SELECT countrycode ,SUM(population)  FROM  city  GROUP BY countrycode;
    
    统计中国各个省的总人口数量
    SELECT district,SUM(Population) FROM city  WHERE countrycode='chn' GROUP BY district;
    
    统计世界上每个国家的城市数量
    SELECT countrycode,COUNT(id)  FROM city GROUP BY countrycode;

      4.4 having:

    ##统计中国每个省的总人口数,只打印总人口数小于100
    SELECT district,SUM(Population)
    FROM city
    WHERE countrycode='chn'
    GROUP BY district
    HAVING SUM(Population) < 1000000 ;

    5.oder by +limit

      5.1作用:实现先排序,by后添加条件列

      5.2 示例:

    ##查看中国所有的城市,并按人口数进行排序(从大到小)
    SELECT * FROM city WHERE countrycode='CHN' ORDER BY population DESC;
    
    
    ##统计中国,每个省的总人口,找出总人口大于500w的,并按总人口从大到小排序,只显示前三名
    SELECT  district, SUM(population)  FROM  city 
    WHERE countrycode='CHN'
    GROUP BY district 
    HAVING SUM(population)>5000000
    ORDER BY SUM(population) DESC
    LIMIT 3 ;
    
    LIMIT N ,M -->跳过N,显示一共M行
    LIMIT 5,5  -->跳过第五行,从第六行开始显示五条数据
    
    SELECT  district, SUM(population)  FROM  city 
    WHERE countrycode='CHN'
    GROUP BY district 
    HAVING SUM(population)>5000000
    ORDER BY SUM(population) DESC
    LIMIT 5,5;

    6.去重(distinct)   

    SELECT DISTINCT(countrycode) FROM city  ;       ##该关键字主要添加在要去重字段的前面,表示对该字段进行去重

    7.联合查询(union vs union all) 

    -- 中国或美国城市信息
    
    SELECT * FROM city 
    WHERE countrycode IN ('CHN' ,'USA');
    或者:
    SELECT * FROM city WHERE countrycode='CHN'
    UNION ALL
    SELECT * FROM city WHERE countrycode='USA'
    
    说明:一般情况下,我们会将 IN 或者 OR 语句 改写成 UNION ALL,来提高性能
    UNION     去重复
    UNION ALL 不去重复

      

      

  • 相关阅读:
    菜鸟快速自学java00之变量类型
    php 接口和抽象类
    java 三大特性之多态性
    设计模式
    依赖注入
    Java设计模式工厂模式
    php 设计模式之策略模式
    大数的概述
    熟悉常用的Linux操作
    GridView动态添加列
  • 原文地址:https://www.cnblogs.com/zmc60/p/14879022.html
Copyright © 2011-2022 走看看