SQL의 중첩 쿼리
소개
내부에 중첩 된 책이있는 책이 포함 된 광대 한 도서관을 검색한다고 상상해보십시오. 특정 정보를 찾으려면 먼저 작은 책을 참조한 다음 해당 정보를 사용하여 더 큰 책을 찾아야 할 수도 있습니다. 이것은 SQL의 중첩 쿼리의 개념을 보여줍니다. 이 쿼리는 다른 쿼리가 다른 쿼리에 내장되어 복잡한 데이터의 추출을 단순화합니다. 이 안내서는 중첩 쿼리 기능을 탐색하고 효율적인 데이터베이스 관리를위한 응용 프로그램을 보여줍니다.
주요 학습 목표
- SQL에서 중첩 쿼리 (하위 쿼리)의 개념을 파악하십시오.
- 다양한 SQL 문 내에서 중첩 쿼리를 구성하고 구현하십시오.
- 상관 관계가없는 중첩 쿼리를 구별하십시오.
- 중첩 구조를 사용하여 SQL 쿼리를 최적화하여 성능을 향상시킵니다.
목차
- SQL의 중첩 쿼리 이해
- SQL에서 중첩 쿼리 유형 탐색
- 중첩 쿼리의 실제 응용 프로그램
- 일반적인 중첩 쿼리 함정을 피하십시오
- 자주 묻는 질문
SQL의 중첩 쿼리 이해
하위 쿼리라고도하는 중첩 쿼리는 다른 안에 내장 된 SQL 쿼리입니다. 내부 쿼리의 출력은 외부 쿼리를 알려 주어 복잡한 데이터 검색을 가능하게합니다. 이것은 내부 쿼리의 결과가 외부 쿼리의 데이터에 의존 할 때 특히 유용합니다.
기본 구문
column_name (들) 선택 table_name에서 여기서 column_name = (table_name에서 column_name을 선택);
SQL에서 중첩 쿼리 유형 탐색
중첩 쿼리 (하위 쿼리)는 하나의 SQL 쿼리를 다른 SQL 쿼리에 포함시켜 복잡한 데이터 검색을 용이하게합니다. 이것은 효율적이고 정교한 SQL 코드를 작성하는 데 중요합니다. 이 섹션에는 예제 및 예상 출력이 포함 된 다양한 중첩 쿼리 유형에 대해 자세히 설명합니다.
SQL의 단일 줄 하위 쿼리
단일 열 서브 쿼리는 단일 행으로 하나 이상의 열을 생성합니다. 단일 값에 대해 비교 연산자 (=,>, =,
단일 로우 하위 쿼리의 특성을 정의합니다
- 단일 행 출력 : 단일 행의 데이터를 생성합니다.
- 비교 연산자 : 일반적으로 비교 연산자와 함께 사용됩니다.
- 여러 열 가능 : 해당 단일 행 내에서 여러 열을 반환 할 수 있습니다.
예 : 평균 급여를 초과하는 직원을 식별합니다
표 : 직원
Employee_id | First_name | 성 | 샐러리 | Department_ID |
---|---|---|---|---|
1 | 남자 | 암사슴 | 90000 | 1 |
2 | 계집애 | 스미스 | 95000 | 1 |
3 | 앨리스 | 존슨 | 60000 | 2 |
4 | 단발 | 갈색 | 65000 | 2 |
5 | 백인 | 데이비스 | 40000 | 3 |
6 | 이브 | 아담스 | 75000 | 3 |
표 : 부서
Department_ID | Department_name | location_id |
---|---|---|
1 | 매상 | 1700 |
2 | 마케팅 | 1700 |
3 | 그것 | 1800 |
4 | HR | 1900 |
First_name, Last_name, Salary를 선택하십시오 직원들로부터 여기서 급여> (직원에서 AVG (급여) 선택);
산출:
<code>| first_name | last_name | salary | |------------|-----------|--------| | John | Doe | 90000 | | Jane | Smith | 95000 |</code>
내부 쿼리는 평균 급여를 계산합니다. 그런 다음 외부 쿼리는이 평균 이상의 직원을 선택합니다.
SQL의 멀티 로우 하위 쿼리
멀티 로우 서브 쿼리는 여러 행을 반환합니다. 이들은 일반적으로 IN
, ANY
또는 ALL
연산자와 함께 값 세트와 열을 비교하기 위해 사용됩니다.
예 : 특정 부서에서 직원 검색
First_Name, last_name을 선택하십시오 직원들로부터 여기서 Department_id in
산출:
<code>| first_name | last_name | |------------|-----------| | John | Doe | | Jane | Smith |</code>
내부 쿼리는 특정 위치에서 부서 ID를 선택합니다. 그런 다음 외부 쿼리는 해당 부서에서 일하는 직원을 검색합니다.
SQL의 상관 된 하위 쿼리
상관 관계 서브 쿼리는 해당 값의 외부 쿼리에 따라 다릅니다. 독립 하위 쿼리와 달리 외부 쿼리에서 처리 된 각 행에 대해 동적으로 실행됩니다.
상관 된 하위 쿼리의 특성
- 외부 쿼리에 대한 종속성 : 내부 쿼리 참조는 외부 쿼리의 열을 참조합니다.
- 행으로 실행 : 내부 쿼리는 외부 쿼리에서 행당 한 번 반복적으로 실행됩니다.
- 성능 영향 : 반복적 인 실행은 대규모 데이터 세트의 성능에 영향을 줄 수 있습니다.
예 : 부서의 평균보다 더 많은 수입을 얻는 직원을 식별합니다
First_Name, Salary를 선택하십시오 직원으로부터 E1 여기서 급여> (직원 E2에서 E1.DEPARTMENT_ID = E2.DEPARTMENT_ID)에서 직원 E2에서 AVG (AVG)를 선택합니다.
출력 : (출력은 employees
테이블의 데이터에 따라 다릅니다)
내부 쿼리는 외부 쿼리에 의해 처리되는 직원에 비해 각 부서의 평균 급여를 계산합니다.
SQL의 중첩 하위 쿼리
중첩 하위 쿼리에는 하나의 하위 퀘스트를 다른 하위 쿼드에 포함시켜 층 구조를 만듭니다. 이를 통해 복잡한 데이터 조작 및 필터링이 가능합니다.
중첩 하위 쿼리의 구조
- 외부 쿼리 : 중첩 하위 쿼리가 포함 된 기본 쿼리.
- 내부 쿼리 (IES) : 외부 쿼리 내에 내장 된 하위 쿼리.
예 : 평균 이상의 직원이있는 부서 식별
Department_id, Department_name을 선택하십시오 부서에서 여기서 _id에서 ( Department_id를 선택하십시오 직원들로부터 여기서 급여> (직원에서 AVG (월급) 선택) );
출력 : (출력은 employees
및 departments
테이블의 데이터에 따라 다릅니다)
스칼라 하위 쿼리
스칼라 하위 쿼리는 단일 값 (한 행, 한 열)을 반환합니다. 기본 쿼리에서 단일 값이 필요한 곳이면 어디든 유용합니다.
스칼라 하위 쿼리의 특성
- 단일 값 반품 : 하나의 값 만 반환합니다.
- 다양한 조항 사용 :
SELECT
,WHERE
및HAVING
에서 사용할 수 있습니다. - 효율적인 비교 : 단일 파생 값과 비교하는 데 유용합니다.
예 : 평균에 비해 직원 급여
Select_name, last_name, Salary- (직원의 Avg (Salary))로 salary_difference를 선택하십시오. 직원으로부터;
출력 : (출력은 employees
테이블의 데이터에 따라 다릅니다)
중첩 쿼리의 실제 응용 프로그램
중첩 쿼리는 다양한 복잡한 데이터 검색 시나리오에 유용합니다.
파생 된 값을 기반으로 한 데이터 필터링
중첩 쿼리는 다른 테이블에서 계산 된 값을 기반으로 데이터를 효율적으로 필터링합니다.
집계 계산
중첩 쿼리에서 계산 된 집계 (예 : Avg, Sum, Count)는 조건부 필터링을 위해 외부 쿼리에서 사용할 수 있습니다.
조건부 로직 구현
중첩 쿼리는 조건부 로직을 SQL 문에 통합하는 메커니즘을 제공합니다.
상관 된 하위 쿼리를 사용한 로우 레벨 계산
상관 된 하위 쿼리는 외부 쿼리의 현재 행을 기반으로 한 줄 수준 계산을 활성화합니다.
일반적인 중첩 쿼리 함정을 피하십시오
강력하지만 중첩 된 쿼리는 문제를 일으킬 수 있습니다.
스칼라 하위 쿼리에서 여러 행이 반환됩니다
스칼라 하위 쿼리는 단일 값을 반환해야합니다. 여러 행으로 인해 오류가 발생합니다.
성능 저하
중첩 된 쿼리, 특히 상관 관계가있는 쿼리는 특히 큰 데이터 세트에서 성능에 크게 영향을 줄 수 있습니다. 결합과 같은 대체 접근법을 고려하십시오.
괄호가 잘못 배치됩니다
잘못된 괄호는 논리적 오류와 예기치 않은 결과로 이어질 수 있습니다.
널 값 처리
의도하지 않은 필터링을 피하기 위해 널 값이 어떻게 처리되는지주의 깊게 고려하십시오.
결론
SQL 중첩 쿼리 (하위 쿼리)는 효율적인 복잡한 데이터 검색을위한 강력한 도구입니다. 효과적인 데이터베이스 관리에는 다른 유형을 이해하는 데 중요합니다. 모범 사례를 따르고 일반적인 함정을 피하면 중첩 쿼리를 활용하여 SQL 기술을 향상시키고 데이터베이스 성능을 최적화 할 수 있습니다.
자주 묻는 질문
Q1. SQL의 중첩 쿼리는 무엇입니까?
중첩 쿼리 또는 하위 쿼리는 다른 쿼리에 포함 된 SQL 쿼리입니다. 내부 쿼리의 결과는 외부 쿼리에서 복잡한 데이터 검색을 수행하기 위해 사용됩니다.
Q2. 중첩 쿼리의 유형은 무엇입니까?
주요 유형은 단일 로우, 멀티 로우, 상관 및 스칼라 하위 쿼리이며, 각각 다른 작업에 적합합니다.
Q3. 상관 관계 서브 쿼리는 언제 사용해야합니까?
내부 쿼리가 동적, 행별로 처리를 위해 외부 쿼리의 열을 참조해야 할 때 상관 관계 서브 쿼리를 사용하십시오.
Q4. 중첩 쿼리가 성능에 영향을 줄 수 있습니까?
예, 중첩 된 쿼리, 특히 상관 관계가있는 쿼리는 성능에 크게 영향을 줄 수 있습니다. 쿼리 계획을 분석하고 조인과 같은 대안을 고려하여 최적화하십시오.
위 내용은 SQL의 중첩 쿼리의 상세 내용입니다. 자세한 내용은 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)

이봐, 코딩 닌자! 하루 동안 어떤 코딩 관련 작업을 계획 했습니까? 이 블로그에 더 자세히 살펴보기 전에, 나는 당신이 당신의 모든 코딩 관련 문제에 대해 생각하기를 원합니다. 완료? - ’

소개 OpenAi는 기대가 많은 "Strawberry"아키텍처를 기반으로 새로운 모델을 출시했습니다. O1로 알려진이 혁신적인 모델은 추론 기능을 향상시켜 문제를 통해 생각할 수 있습니다.

소개 Mistral은 최초의 멀티 모드 모델, 즉 Pixtral-12B-2409를 발표했습니다. 이 모델은 Mistral의 120 억 개의 매개 변수 인 NEMO 12B를 기반으로합니다. 이 모델을 차별화하는 것은 무엇입니까? 이제 이미지와 Tex를 모두 가져갈 수 있습니다

에이전트 AI에서 작업하는 동안 개발자는 종종 속도, 유연성 및 자원 효율성 사이의 상충 관계를 탐색하는 것을 발견합니다. 나는 에이전트 AI 프레임 워크를 탐구하고 Agno를 만났다 (이전에는 ph-이었다.

SQL의 Alter Table 문 : 데이터베이스에 열을 동적으로 추가 데이터 관리에서 SQL의 적응성이 중요합니다. 데이터베이스 구조를 즉시 조정해야합니까? Alter Table 문은 솔루션입니다. 이 안내서는 Colu를 추가합니다

문제가있는 벤치 마크 : 라마 사례 연구 2025 년 4 월 초, Meta는 LLAMA 4 제품군을 공개하여 GPT-4O 및 Claude 3.5 Sonnet과 같은 경쟁자들에 대해 호의적으로 배치 한 인상적인 성능 지표를 자랑했습니다. Launc의 중심

릴리스에는 GPT-4.1, GPT-4.1 MINI 및 GPT-4.1 NANO의 세 가지 모델이 포함되어 있으며, 대형 언어 모델 환경 내에서 작업 별 최적화로 이동합니다. 이 모델은 사용자를 향한 인터페이스를 즉시 대체하지 않습니다

비디오 게임이 불안을 완화하거나 집중하거나 ADHD를 가진 어린이를 지원할 수 있습니까? 건강 관리 도전이 전 세계적으로 급증함에 따라, 특히 청소년들 사이에서 혁신가들은 비디오 게임 인 가능성이없는 도구로 전환하고 있습니다. 이제 세계 최대의 엔터테인먼트 인더스 중 하나입니다
