SQL문의 MINUS, INTERSECT, UNION ALL 분석
SQL 문의 세 가지 키워드: MINUS(뺄셈), INTERSECT(교차점) 및 UNION ALL(합집합)
집합의 개념은 누구나 중학교 때 배웠을 것입니다. 즉, 이 세 가지 키워드는 중국어 의미와 마찬가지로 주로 데이터베이스의 쿼리 결과를 조작하는 데 사용됩니다. 두 개의 쿼리, MINUS는 교차점이 있는 경우 첫 번째 쿼리 결과에서 두 번째 쿼리 결과를 빼는 것입니다. 교차 부분은 부분에서 뺍니다. 그렇지 않으면 첫 번째 쿼리 결과와 차이가 없습니다. INTERSECT는 두 쿼리 결과의 교집합이고, UNION ALL은 두 쿼리의 합집합입니다. 간단한 SQL문으로도 동일한 함수를 구현할 수 있지만 성능차이가 매우 큽니다. 누군가 실험을 해본 결과: made_order는 총 230,000개의 레코드를 가지고 있고, Charge_detail은 총 170,000개의 레코드를 가지고 있습니다.
SELECT order_id FROM made_order MINUS SELECT order_id FROM charge_detail 耗时:1.14 sec SELECT a.order_id FROM made_order a WHERE a.order_id NOT exists ( SELECT order_id FROM charge_detail WHERE order_id = a.order_id ) 耗时:18.19 sec
성능 차이는 다음과 같습니다. 15.956번! 따라서 이 문제가 발생하면 MINUS, INTERSECT 및 UNION ALL을 사용하여 문제를 해결하는 것이 좋습니다. 그렇지 않으면 비즈니스 어디에서나 볼 수 있는 수백만 건의 데이터 쿼리에 직면하게 됩니다. 서버는 우리에게 패하지 않을 것입니다.
PS: 두 가지 애플리케이션 세트를 빼고, 교차하고, 더할 때 엄격한 요구 사항이 있습니다. 1. 두 세트의 필드가 명확해야 합니다(*를 사용하면 작동하지 않습니다. 오류가 발생함). 2. 필드 유형과 순서는 동일합니다(이름은 다를 수 있음). 예: 세트 1의 필드 1은 NUMBER이고, 필드 2는 VARCHAR이며, 세트 2의 필드 1도 NUMBER여야 합니다. 필드 2는 VARCHAR이어야 합니다. 3. 정렬할 수 없습니다. 결과를 정렬하려면 설정 작업 후 외부에 설정하면 됩니다. 이전 예와 같이 정렬을
SELECT * FROM (SELECT order_id FROM made_order MINUS SELECT order_id FROM charge_detail) ORDER BY ORDER_ID ASC
위 내용은 SQL문의 MINUS, INTERSECT, UNION ALL 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











C 언어에서 Union을 사용하면 서로 다른 데이터 유형을 동일한 메모리 위치에 저장할 수 있는 특수 데이터 유형이 됩니다. Union을 사용하면 메모리 공간을 절약하고 서로 다른 데이터 유형 간의 변환을 용이하게 할 수 있습니다. Union을 사용할 경우 해당 멤버가 유효하며 동시에 하나의 멤버에만 접근할 수 있다는 점에 유의해야 합니다.

MySQL에서 FULLOUTERJOIN 함수를 사용하여 두 테이블의 통합을 얻는 방법 MySQL에서 FULLOUTERJOIN 함수는 내부 조인과 외부 조인을 결합하는 강력한 조인 작업입니다. 두 테이블의 통합, 즉 두 테이블의 모든 데이터를 단일 결과 집합으로 결합하는 데 사용할 수 있습니다. 이 기사에서는 FULLOUTERJOIN 함수의 사용법을 소개하고 독자의 이해를 돕기 위해 몇 가지 샘플 코드를 제공합니다. FULLOUTERJOIN 함수

1. Union은 다중 테이블 연결 쿼리 방식이 아닌, 여러 질의문의 질의 결과를 하나의 결과로 결합하여 중복되는 데이터를 제거하는 방식입니다. 2. 완전 외부 조인은 왼쪽 테이블과 오른쪽 테이블의 데이터를 쿼리한 후 연결 조건에 따라 연결합니다. 예시 #왼쪽 외부 Aunion 및 오른쪽 외부 Aunion 사용 BSELECT*FROMt_categorycLEFTOUTERJOINt_productpONc.cid=p.cnounionSELECT*FROMt_categorycRIGHTOUTERJOINt_productpONc.cid=p.cno

데이터 본문의 공존을 구현하기 위해 Union 클래스를 정의합니다. C/C++ 언어에서 Union이라고도 하는 Union은 구조체와 유사한 데이터 구조입니다. 구조체와 마찬가지로 공용체에는 많은 데이터 유형과 변수가 포함될 수 있습니다. 둘 사이의 차이점은 다음과 같습니다. 구조체의 모든 변수는 "공존"하며, 각 변수는 서로 다른 메모리 공간을 차지합니다. 공용체에서 각 변수는 "상호 배타적"이며 동시에 하나의 변수만 유효하며 모든 변수는 동일한 메모리 공간을 차지합니다. 여러 데이터가 메모리를 공유해야 하거나 한 번에 여러 데이터 중 하나만 가져와야 하는 경우 공용체를 사용할 수 있습니다. 자바에서

Union을 사용하여 Like 문 최적화 1) 쿼리에서 비교를 위해 or 연산자를 사용해야 하는 경우가 있습니다. where 절에서 or 키워드가 너무 자주 사용되면 MySQL 최적화 프로그램이 실수로 레코드를 검색하기 위해 전체 테이블 스캔을 선택하게 될 수 있습니다. Union 절을 사용하면 특히 쿼리 중 하나에 최적화된 인덱스가 있고 다른 쿼리에도 최적화된 인덱스가 있는 경우 쿼리 실행 속도가 빨라집니다. 예를 들어 각각 first_name과 last_name에 인덱스가 있는 경우 다음 쿼리 문을 실행합니다. mysql>select*fromstudentswherefirst_namelike'A

많은 데이터베이스 애플리케이션에서 우리는 여러 데이터 소스의 데이터를 통합해야 하는 상황에 직면합니다. MySQL의 UNION 문은 이러한 상황을 해결하는 방법으로, 두 개 이상의 SELECT 문의 결과 집합을 하나로 병합할 수 있습니다. 이는 매우 편리한 기능이지만 UNION 문은 최적화되지 않은 경우 시스템에서 성능 문제를 일으킬 수도 있습니다. 이 기사에서는 UNION을 최적화하여 MySQL을 통해 성능을 향상시키는 방법을 살펴보겠습니다. U를 사용하는 동안 UNIONALL을 사용하세요.

1. 통합 연산자는 두 개 이상의 select 문의 결과를 결과 집합으로 결합하는 데 사용됩니다. 다중 선택 문은 중복 데이터를 삭제합니다. 2. Union을 사용하여 결과 집합을 병합하는 경우 두 결과 집합의 열 수가 동일해야 합니다. 예selectplayerno,townfromPLAYERSwheretown='잉글우드' Unionselectplayerno,townfromPLAYERSwheretown='플리머스';

Union: 중복 행을 제외하고 여러 결과 집합에 대해 Union 연산을 수행하고 동시에 정렬합니다. Unionall: 중복 행을 포함하여 여러 결과 집합에 대해 정렬 없이 합집합 작업을 수행합니다. 부서가 30개 미만인 사원의 정보를 조회하고, 부서가 20개 이상 40개 미만인 사원의 정보를 조회합니다. ① 먼저 부서번호가 30번 미만인 사원의 정보를 조회합니다. SELECTemployees_id,last_name,급여,department_idFROMemployeesWHEREdepartment_id
