• SQL查询时踩得一些坑


    1.左右连接:

    left join:LEFT JOIN返回左表的全部行和右表满足ON条件的行,如果左表的行在右表中没有匹配,那么这一行右表中对应数据用NULL代替。

    inner join: 内连接是最常见的一种连接,只连接匹配的行.

    right join:RIGHT JOIN返回右表的全部行和左表满足ON条件的行,如果右表的行在左表中没有匹配,那么这一行左表中对应数据用NULL代替。

    这边查询的时候,有的时候总是会将内连接,和左连接搞混,得到的结果不是需要的.

    2.查询数据库中某类数据出现多少次:

    查找薪水涨幅超过15次的员工号emp_no以及其对应的涨幅次数t
    CREATE TABLE `salaries` (
    `emp_no` int(11) NOT NULL,
    `salary` int(11) NOT NULL,
    `from_date` date NOT NULL,
    `to_date` date NOT NULL,
    PRIMARY KEY (`emp_no`,`from_date`));

    查询上面的结果需要注意使用group by  以及  having的使用

    group by:聚合函数,这里面可以将emp_no一致的归为一组

    having:HAVING语句通常与GROUP BY语句联合使用,用来过滤由GROUP BY语句返回的记录集。

    HAVING语句的存在弥补了WHERE关键字不能与聚合函数联合使用的不足。

    select emp_no ,count(emp_no ) t from salaries group by emp_no having t>15 

    3.当group by order by 同时使用时候

    1)GROUP BY 和 ORDER BY一起使用时,ORDER BY要在GROUP BY的后面。

    2)order by 的列,必须是出现在group by 子句里的列 

    4.DISTINCT 

    统计出不重复的条数

    select count(distinct(需要统计不重复的字段)) from 表

    5.sql 查询的时候判断某个字段为奇数偶数

    查询条件中判断n的类型
    n%2==0 ----偶数
    n%2==1 ----奇数

    6.sql查询平均值

    select  avg(value) from table where 条件1='值1' and 条件2 ='值2'
    group by 字段名  
  • 相关阅读:
    516. Longest Palindromic Subsequence
    31. Next Permutation
    572. Subtree of Another Tree
    vue中无法监听到子组件的事件的问题
    vue中注意watch的执行顺序
    vue中路由懒加载浅析
    关于typescript 报错问题
    深入理解Typescript中文版
    vue中的高阶组件
    vue中的mixins
  • 原文地址:https://www.cnblogs.com/shenyanrushang/p/10852492.html
Copyright © 2020-2023  润新知