SQLShack (한국어)

0 Comments

이 문서를 제공할 것이 깊은 곳으로 다이빙 SQL 연산자 설명,그것의 많은 사용 예제와 함께 탐구 일부는 일반적인 질문 같은 사이의 차이점을 연합 대조합니다.

을 주는 실제 데이터 요구사항,우리가 할 수 있습을 결합하는 결과가 세트에서 여러 데이터 원본을 우리가 할 수 있는 데이터 분석을 만들거나 새로운 데이터 세트입니다. 데이터 세트는 동일 할 수 있지만 다른 테이블을 참조 할 가능성이 있습니다., 단일 쿼리에서 데이터를 결합하는 방법이 있습니까? 설정된 연산자는 실행 가능한 옵션입니까? 시작하면서 기존 운영자 중 일부가 이러한 일반적인 과제를 해결하는 데 어떻게 사용될 수 있는지 살펴 보겠습니다.,n vs Union All

  • SQL 운전자문
  • 사용하는 방법을 간단한 SQL Union 절에서 선택 문
  • 사용하는 방법 SQL 조합이 있는 쿼리 WHERE
  • 사용하는 방법을 선택으로 절 Union
  • 사용하는 방법 SQL 조합이 있는 쿼리 WHERE 및 순서에 의해 절
  • 는 방법을 사용하여 SQL 동맹 및 SQL 피벗
  • 사용하는 방법 SQL 연합 그룹으로 데 절
  • 사업자

    운영자 상징하는 키워드를 정의하는 작업이 수행되는 하나 이상에서 식을 선택한 문입니다.,

    설정 운영

    자의 세부 사항으로 설정한 운영자에 SQL Server,그리고 그들을 사용하는 방법

    네 가지 기본 세트 운영자에 SQL Server:

    1. Union
    2. Union All
    3. 제외

    Union

    Union 연산자를 결합한 결과를 두 개 이상의 쿼리로는 뚜렷한 하나의 결과로 설정을 포함하는 모든 행에 속하는 모든 쿼리합니다. 이 작업에서는 두 개의 쿼리를 더 결합하고 중복을 제거합니다.,

    예를 들어 테이블’A’에는 1,2 가 있고 3 에는 테이블’B’에는 3,4,5 가 있습니다.,

    UNION
    선택 2
    UNION
    3
    )
    UNION
    (
    3
    UNION
    4
    UNION
    선택 5
    );

    출력 당신이 볼 수있는 뚜렷한 목록의 기록에서 두 가지 결과 집

    Union All

    을 찾을 때에는 유니온 대 Union 모두가 우리가 찾은 그들이 매우 비슷하지만,그들은 몇 가지 중요한 차이점이 성능에서 결과는 관점입니다.,

    Union 연산자를 결합한 결과를 두 개 이상의 쿼리가 하나의 결과로 설정되는 것을 포함하는 모든 행에 속한 모든 문서를 결정합니다. 간단히 말해서 두 개 이상의 행 세트를 결합하고 중복을 유지합니다.

    예를 들어 테이블’A’에는 1,2 가 있고 3 에는 테이블’B’에는 3,4,5 가 있습니다.,iv>

    7
    8
    9
    10
    11
    12
    13
    14
    15
    (
    SELECT ID1
    UNION
    선택 2
    UNION
    3
    )
    UNION ALL
    (
    3
    UNION
    4
    UNION
    선택 5
    );

    출력에서,당신은 당신이 볼 수있는 모든 행함을 반복되는 레코드뿐만 아니라.,>4

    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    (
    SELECT ID1
    UNION
    선택 2
    UNION
    3
    )
    서로 교차
    (
    3
    UNION
    4
    UNION
    선택 5
    );

    이 행’3’은 일반 사이의 두 가지 결과를 설정합니다.,

    EXCEPT

    EXCEPT 연산자는 두 번째에 없는 첫 번째의 행을 나열합니다.,/div>

    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    (
    선택 1
    UNION
    선택 2
    UNION
    3
    )
    제외
    (
    선택 3B
    UNION
    4
    UNION
    선택 5
    );

    목록의 이름은 일반적인 행에서 먼저 설정합니다.,

    참고:그것은 매우 간단하여 시각화 연산자 설정을 사용하여 벤다이어그램의 각각 테이블의 대표에 의해 교차하는 모양입니다. 표가 겹치는 모양의 교차점은 조건이 충족되는 행입니다.,olumns 에 정의되어 있는 각각의 쿼리가 동일해야 합 order

  • 후속 SQL 문을 행 세트와 일치해야 합 데이터 형식의 첫 번째 질
  • 괄호는 허용되는 구성 설정된 다른 사업자에서 동일한 문
  • 그것을 가능하여 주문 절 하지만 해야 하는 마지막 문의 SQL
  • 그룹 및 조항에 적용할 수 있는 개인 쿼리
  • 참고:

    1. 이러한 모든 연산자 설정하고 중복을 제거하거를 제외하고,동맹의 모든 운영
    2. 출력 열 이름이라고에서 첫 번째 질 i.,e. 때 우리는 실행하는 선택한 문은 모든 세트의 운영 및 결과가 세트의 각각의 쿼리도 다른 열 이름을 그래서 결과를 선택하는 문은 열 이름을 처음부터 쿼리에는 작업입니다.
    3. SQL 조인은 여러 관련 테이블의 열을 결합하는 데 더 자주 사용되는 반면 SET 연산자는 여러 테이블의 행을 결합합니다.,
    4. 때 표현 형식이 동일하지만이 다를 정밀도,규모 또는 길이가 결과에 따라 결정된 결합에 대한 동일한 규칙의 식

    예:

    다음 T-SQL 쿼리를 준비하고 실행에 대한 Adventureworks2014 데이터베이스입니다. 다운로드할 수 있습니다 샘플 AdventireWorks2014 데이터베이스에 여기

    1. 사용하는 방법을 간단한 SQL Union 절에서 선택 문

      이 예제에서 설정 결과를 포함한 설정의 행에서 첫번째 두 번째로 설정합니다.,다음 예는 규칙 1,3&5 를 기반으로합니다.,

    선택 1
    UNION
    선택 2
    UNION
    3
    )
    UNION
    (
    선택 3B
    UNION
    4
    UNION
    선택 5
    )
    UNION ALL
    (
    선택 8c
    UNION
    선택 9
    UNION
    선택 1
    )
    )T;

    출력이 조합의 동맹 및 동맹의 모든 사업자를 사용하여 괄호입니다.,

  • 는 방법을 사용하여 SQL 조합이 있는 쿼리 WHERE

    다음 예제를 사용하는 방법을 보여줍니온에서 두 개의 선택 문 WHERE 절을 사용됩니다.,

    The following example is based on the rule 1,2 and 3

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10

    SELECT P1.ProductModelID,
    P1.Name
    FROM Production.ProductModel P1
    WHERE ProductModelID IN(3, 4)
    UNION
    SELECT P2.ProductModelID,
    P2.,생산에서 이름
    .ProductModel P2
    여기서 P2.됩(3,4)
    ORDER BY P1.이름

  • 사용하는 방법을 선택으로 절 SQL Union

    다음 예제에서는 새로운 dbo.두 개의 다른 결과 집합에서 열 ProductModel 및 이름의 연합의 최종 결과 집합을 보유 하는 첫 번째 SELECT 문에서 INTO 절을 사용 하 여 더미 테이블., 이 경우 동일한 테이블에서 파생되지만 실제 상황에서는 두 개의 다른 테이블 일 수도 있습니다. 다음 예는 규칙 1,2 및 4 를 기반으로합니다.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    드롭 표면이 존재하 dbo.,dummy;
    SELECT P1.ProductModelID,
    P1.Name
    INTO dummy
    FROM Production.ProductModel P1
    WHERE ProductModelID IN(3, 4)
    UNION
    SELECT P2.ProductModelID,
    P2.Name
    FROM Production.ProductModel P2
    WHERE P2.ProductModelID IN(3, 4)
    ORDER BY P1.Name;
    GO
    SELECT *
    FROM dbo.,보

  • 는 방법을 사용하여 SQL 조합이 있는 쿼리 WHERE 및 순서에 의해 절

    이것은 단지 가능한 때 우리가 사용하는 최고하거나 집계 기능에서 모든 select 문을 연합의 연산자입니다. 이 경우 각 결과 집합에서 상위 10 개의 행이 나열되고 Union 절을 사용하여 행을 결합하여 최종 결과를 얻습니다. 또한 order by 절이 모든 select 문에 배치되는 것을 볼 수 있습니다.,

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    선택합니다.나는 이것을 할 수 없다.,Name
    FROM
    (
    SELECT TOP 10 ProductModelID ModelID,
    Name
    FROM Production.ProductModel
    WHERE ProductModelID NOT IN(3, 4)
    ORDER BY Name DESC
    ) a
    UNION
    SELECT b.ProductModelID,
    b.Name
    FROM
    (
    SELECT TOP 10 ProductModelID,
    Name
    FROM Production.,ProductModel
    어디됩니에(5,6)
    주문 이름을 내림차순
    )b

  • 하는 방법에 대한 자세한 내용은 SQL 동맹 및 SQL 피벗

    에서 다음 예제 우리는 하나 이상의 결합을 설정의 결과입니다. 에서 실제 상황 할 수 있습니다 금융 번호에서 다양한 지역이나 부서와 테이블도 같은 열과 데이터 유형,그러나 당신이 그들을 넣어서 하나 집 행에서 하나의 보고서입니다., 이러한 시나리오에서는 Union 절을 사용하고 결과를 결합하여 데이터를보다 의미있는 보고서로 변환하는 것이 매우 쉽습니다.

    이 예에서 ProductModel 은 Top10,Top100,Top100 으로 분류되어 행을 집계 된 값 집합으로 각 열로 변환합니다. 다음 예제는 규칙 2 를 기반으로합니다.,/div>

    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
  • 선택 MAX(Top10)Top10,
    MAX(Top100)Top100,
    MAX(내 top1000)Top100
    에서는
    (
    SELECT COUNT(*)Top10,
    0Top100,
    0 내 top1000
    에서 생산입니다.,ProductModel
    WHERE ProductModelID < 10
    UNION
    SELECT 0,
    COUNT(*),
    0
    FROM Production.ProductModel
    WHERE ProductModelID > 11
    AND ProductModelID < 100
    UNION
    SELECT 0,
    0,
    COUNT(*)
    FROM Production.,ProductModel
    어디됩>101
    )T;

    NULL 값이 매우 중요한 설정된 운영자 및 취급으로 두 번째 클래스는 데이터베이스 시민입니다. 기 때문에 Null 을 고려면 두 가지 행 NULL 에서 동일한 열,그 후에 그들이 동일한 것으로 간주합니다,그래서 경우에,당신은 실제로 비교 NULL NULL 받고 있습니다. 다음 예제에서는 NULL 값 사용을 참조하십시오. 이 경우 집계 기능인 max 로 작동합니다.,

    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    선택 MAX(Top10)Top10,
    MAX(Top100)Top100,
    MAX(내 top1000)Top100
    에서는
    (
    SELECT COUNT(*)Top10,
    NULL Top100,
    NULL 내 top1000
    에서 생산입니다.,ProductModel
    WHERE ProductModelID < 10
    UNION
    SELECT NULL,
    COUNT(*),
    NULL
    FROM Production.ProductModel
    WHERE ProductModelID > 11
    AND ProductModelID < 100
    UNION
    SELECT NULL,
    NULL,
    COUNT(*)
    FROM Production.,ProductModel
    어디됩>101
    )T;

    는 방법을 사용하여 SQL 연합 그룹으로 데 절

    다음 예제를 사용하여 연산자를 결합한 결과를 테이블의 모든 조건 절 정의를 사용하여 그룹과는 절이 있습니다.

    성은 having 절의 조건을 지정하여 구문 분석됩니다.

    다음 예는 규칙 5 를 기반으로합니다.,

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    선택 pp.이 작업을 수행하려면 다음 작업을 수행 할 수 있습니다.이 작업을 수행 할 수있는 방법이 있습니까?E.BusinessEntityID=pp 에 e 로 직원.,Businessentityid
    pp 로 그룹.이 작업을 수행하려면 다음 작업을 수행해야합니다.이 작업을 수행하려면 다음 작업을 수행해야합니다.이 작업을 수행 할 수있는 방법이 있습니까?E.BusinessEntityID=pp 에 e 로 직원.Businessentityid
    pp 로 그룹.,성
    데 COUNT(*)>2;

    우리가 볼 수 있는 마지막 이름은 파생으로 두 개의 서로 다른 사용하여 열 Union 연산자

    는 지금…

    요약

    지금까지,우리가 해결 사용 가능한 다양한 옵션 및 규칙을 사용하여 설정한 운영자 이해하고 그들을 사용하는 경우. 노조 대 노조를 모두 사용할지 여부를 결정할 때 고려해야 할 몇 가지 사항이 있습니다., 사용 Union 모두 알고 있는 경우 그 결과가 세트에서 여러 쿼리를 겹치지 않거나 생성 중복을 기억하고,필요한 경우 괄호를 사용하여,당신은 그렇게 할 수 있습니다. 출력을 피벗하고 변환할 수도 있습니다.

    는지 확인 데이터 유형 매치하고 수행해야 하는 경우에는 순서에 의해,그것을 끝에서 실행 후 모든 설정된 쿼리를 처리합니다. 자연에 의해,그것은 유니온 대 Union All,동맹의 모든 것보다 더 빨리 Union;으로 유니온 사업자 추가로 발생한 오버헤드를 중복 항목을 제거합니다.

    SQL Union 연산자에서이 기사를 즐겼 으면 좋겠다., 아래 의견에 어떤 질문을 주시기 바랍니다.

    • 저자
    • 최근 게시글
    나는 데이터베이스 기술자를 갖는 11 년 이상의 풍부한 경험에 데이터베이스 기술입니다. 나는 마이크로 소프트 인증 전문 및 컴퓨터 응용 프로그램의 석사 학위를 백업입니다.
    내 전문 분야는 고 가용성 솔루션 및 크로스 플랫폼 DB 마이그레이션을 구현하는&설계에 있습니다., 현재 작업중인 기술은 SQL Server,PowerShell,Oracle 및 MongoDB 입니다.,
    모두 보기 게시물에 의해 Prashanth 자야람 박사
    최근 게시물에 의해 Prashanth 자야람 박사(조)
    • 빠른 개요 데이터베이스의 감사에서 SQL-January28, 2021
    • 설정하는 방법 Azure 데이터 동기화를 사 Azure SQL 데이터베이스에서 구내 SQL Server-January20,2021
    • 를 수행하는 방법 Azure SQL 데이터베이스에 가져오기/내보내기를 사용하여 작업 PowerShell-January14,2021


    답글 남기기

    이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다