• mysql关键字讲解(join 、order by、group by、having、distinct)


    1、join
        1.1 OUTER JOIN:想要包含右侧表中的所有行,以及左侧表中有匹配记录的行。
            1.11 Mysql中有左连接(left join):
                SELECT * FROM a LEFT JOIN  b ON a.aID =b.bID
                left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join是以左表为准的.
            1.12 右连接(right join):
                SELECT  * FROM a RIGHT JOING b ON a.aID = b.bID
                和left join的结果刚好相反,这次是以右表(B)为基础的,A表不足的地方用NULL填充
        1.2 内连接(inner join或者cross join):
            SELECT * FROM a,b WHERE a.aID = b.bID
            只返回进行联接的字段上匹配的记录。INNER JOIN是在做排除。
            自引用是为了某种原因把一个表联接回它自身。
            INNER JOIN是默认的联接方式。
        1.3 FULL JOIN :要包含位于联接两侧的表中所有的行。
        1.4 CROSS JOIN:没有ON联接符,并且将join一侧表中的每一条记录与另一侧的表中所有的记录联接起来。即联接表中的笛卡尔积。
            CROSS JOIN可用于提供样本数据和科学数据
        
    2. ORDER BY
        查询的返回结果通常是以字母或者数字顺序方式给出,这是偶然的。以何种方式给出,在没有指定的情况下,通常取决于SQLServer认为哪一种汇集数据的方式开销最小。因此,返回的结果通常是基于表中数据的物理顺序或者SQLServer用来找寻数据所使用的某个索引。
        默认是升序ASC,降序是DESC。
        如果对顺序有要求,建议在SQL语句中显式标明。
        ORDER BY 子句可以基于查询中使用的任何表中的任何字段来进行排序,无论该列是否包含在SELECT列表中。
        
    3. GROUP BY
        一旦在查询语句中使用了GROUP BY,SELECT列表中的每一列要么包含在GROUP BY列表中,要不包含在聚集中。
        当聚集不与GROUP BY一起使用时,聚集只能与其他聚集一起位于SELECT列表中,而不能与列名搭配出现在SELECT列表中。
        除了COUNT(*) 之外,任何聚集函数都会忽略NULL值。
            SELECT * , count( id )    FROM `organisms`    WHERE 1    GROUP BY user_id
            
    4. HAVING
        在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。
        仅当查询语句中有GROUP BY子句时使用HAVING子句。
        WHERE子句应用到形成组的每一行上,HAVING子句应用到组的聚集上。
            SELECT region, SUM(population), SUM(area) FROM bbc GROUP BY region HAVING SUM(area)>1000000 
             
    5. DISTINCT
        DISTINCT消除重复数据。如果值是相同的,则该值出现一次。
        DISTINCT出现在列表的开始处,或者出现在COUNT中。

    历史的过去,昨天的回忆。明日的未来,今天的奋斗。 Fight For Your Dream
  • 相关阅读:
    Hadoop、Spark和Storm
    bro安装过程(纪念其中遇到的坑)
    tensorflow中出现{TypeError}unhashable type: 'numpy.ndarray'
    Python高级函数(map,reduce,cmp,filter,闭包,lambda )
    Java中设置百分数保留两位小数
    查看python支持的whl文件类型
    js 图表转图片
    dorado 7 使用总结
    Socket 接收本地短连接并转发为长连接 多线程
    java Socket 长连接 心跳包 客户端 信息收发 demo
  • 原文地址:https://www.cnblogs.com/xiadong90-2015/p/4222965.html
Copyright © 2020-2023  润新知