zoukankan      html  css  js  c++  java
  • 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 字段名  
  • 相关阅读:
    洛谷 P2234 [HNOI2002]营业额统计
    洛谷p3146&p3147
    洛谷 p1439 最长公共子序列
    搜索
    一步一步分析Caliburn.Micro(二:绑定执行方法Message现学现卖之自定命令)
    一步一步分析Caliburn.Micro(一:绑定执行方法Message)
    整理的C# 字符串类
    不用ADOX.CatalogClass创建Access数据库文件
    取远程网页数据 WebClient,HttpWebRequest
    C# LinQ 与 ADO.NET
  • 原文地址:https://www.cnblogs.com/shenyanrushang/p/10852492.html
Copyright © 2011-2022 走看看