zoukankan      html  css  js  c++  java
  • SQL语句中union all和union的区别以及用法

    起因

    一次渗透过程中目标使用的SQL Server有联合注入,发现使用union all 不报错,union报错,同时还有一个就是字段的类型,发现类型不对也会报错,贴张图

    union+all+select+123123,1,'2','3',null,null,null--+-    不报错
    union+select+123123,1,'2','3',null,null,null--+-         报错
    

    注意点:

    1 union结果集种的列名总是等于第一个select语句中的类型。

    2 union内部的select 语句必须拥有相同数量的列,列也必须有相似的数据类型。同时,每条select语句的列的顺序必须相同。

    3 如果子句中有 order by,limit 需要用括号()包起来,推荐将order by,limit放到所有子句之后,即对最终合并的结果来排序或筛选。

    union 和union all的区别:

    union联合的结果集不会有重复值,如果要有重复值,则使用union all

    union会自动压缩多个结果集合中重复的结果,使结果不会有重复行,union all 会将所有的结果共全部显示出来,不管是不是重复。

    union:会对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序。

    union all:对两个结果集进行并集操作,包括重复行,不会对结果进行排序。

    1.sql Union用法
    select 字段1 from 表名1 Union select 字段2 from 表名2;
    2.sql Union All用法
    select 字段1 from 表名1 Union all select 字段2 from 表名2;
    
  • 相关阅读:
    [爬虫] js
    [爬虫] appium-移动端
    如何进行代码的重构
    重写与覆盖的区别
    解决C#中FileSystemWatcher类的Changed事件触发多次的问题
    关于sqlserver 2008 远程导入表数据
    css 选择器
    前端三剑客
    前端的概述
    元类作业
  • 原文地址:https://www.cnblogs.com/forforever/p/14224455.html
Copyright © 2011-2022 走看看