zoukankan      html  css  js  c++  java
  • sql查询以及常见问题理解解析

    推荐w3挺好的基础网站:https://www.w3cschool.cn/t_sql/t_sql_date_functions.html

    =,<,>,> =,<=,IN,BETWEEN运算符包含等于

    一.首先介绍多表查询常见方式:

    嵌套查询:

    select a.id from t_job a where jobid in(select jobid from t_pipeline where jobname=' xx')

    其实也可以理解为子查询一种

    内连接查询inner join 一般我们直接叫join

    SELECT Persons.LastName a , Orders.OrderNo b
    FROM Persons, Orders
    WHERE a.Id_P = b.Id_P 

    外连接查询:left join ,right join 

    left join 关键字在左,多去少补,以左边表的关键字为准

    SELECT column_name(s)
    FROM table_name1 a
    LEFT JOIN table_name2 b
    ON table_name1.id= b.id

    right join
    关键字在右,多去少补,以右边表的关键字为准
    SELECT ID,NANE
    FROM t_JOB a
    LEFT JOIN T_PIPLINE b
    ON table_name1.id= b.PIPELINEID 

    临时表:
    select id from (select a.*,b.jobName from t_job a left join t_pipeline b on a.id=b.id)t group by id order by desc

    联合查询union 和 all
    UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
    SELECT column_name(s) FROM table_name1
    UNION
    SELECT column_name(s) FROM table_name2
    UNION 操作符选取不同的值不会有重复的字段,若需要保留用 union All
    SELECT column_name(s) FROM table_name1
    UNION ALL
    SELECT column_name(s) FROM table_name2

    二。聚合函数 group by having 运用

    聚合函数是SQL一种特殊的函数。例如:

    • count(*):获取数量
    • sum():求和(这里要注意求和是忽略null值的,null与其他数值相加结果为null,所以可以通过ifnull(xxx,0)将null的值赋为0)
    • avg():求平均数
    • max():求最大值
    • min():求最小值
    where 和group by ,having
    概念上首先
    where:数据库中常用的是where关键字,用于在初始表中筛选查询。它是一个约束声明,用于约束数据,直接查询的表数据,他有个缺陷不可以和聚合函数联合使用
    having 读取的是内存
    只要条件里面的字段, 不是表里面原先有的字段就需要用having. SQL在查询表的时候先把查询的字段放到了内存里,而where查询的时候是从表里面查的,其余需要用having。
    当分组筛选的时候 用having,
    其它情况用where
    用having就一定要和group by连用

    HAVING语句通常与GROUP BY语句联合使用,用来过滤GROUP BY语句返回的数据集合,having子句限制的是组,而不是行。where子句中不能使用聚集函数,而having子句中可以。

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

    三:sql 查重,去重
    假如一万条数据有两条重复怎么找出来
    查重select * from t_job where (select id from t_job group by id where count(id)>1);
    去重
    select * from t_job where Name in (select distinct Name from t_job );

    四:分页
    limit by
    索引 0开始
    select id from t_job limit by 5,15
    从第六行开始数10行向后 。。。
  • 相关阅读:
    dotnet 新项目格式与对应框架预定义的宏
    dotnet 线程静态字段
    dotnet 线程静态字段
    dotnet 通过 WMI 拿到显卡信息
    dotnet 通过 WMI 拿到显卡信息
    dotnet 通过 WMI 获取指定进程的输入命令行
    dotnet 通过 WMI 获取指定进程的输入命令行
    dotnet 通过 WMI 获取系统信息
    dotnet 通过 WMI 获取系统信息
    PHP show_source() 函数
  • 原文地址:https://www.cnblogs.com/SunshineKimi/p/10646318.html
Copyright © 2011-2022 走看看