SQL 하위 쿼리

2020 년 2 월 26 일 08:07:42의 마지막 업데이트 (UTC / GMT +8 시간)

SQL의 하위 쿼리 란 무엇입니까?

하위 쿼리는 더 큰 쿼리 내에 중첩 된 SQL 쿼리입니다.

  • 다음에서 하위 쿼리가 발생할 수 있습니다.
    • -SELECT 절
    • -A FROM 절
    • -WHERE 절
  • 하위 쿼리는 SELECT, INSERT, UPDATE 또는 DELETE 문 내부 또는 다른 문 내부에 중첩 될 수 있습니다. 하위 쿼리.
  • 일반적으로 하위 쿼리는 다른 SQL SELECT 문의 WHERE 절 내에 추가됩니다.
  • >와 같은 비교 연산자를 사용할 수 있습니다. div>, < 또는 =. 비교 연산자는 IN, ANY 또는 ALL과 같은 다중 행 연산자 일 수도 있습니다.
  • 하위 쿼리는 내부 쿼리 또는 내부 선택이라고도하며 하위 쿼리를 포함하는 문은 외부 쿼리 또는 외부 선택.
  • 내부 쿼리는 상위 쿼리보다 먼저 실행되므로 내부 쿼리의 결과가 외부 쿼리로 전달 될 수 있습니다.

사용자 SELECT, INSERT, DELETE 또는 UPDATE 문에서 하위 쿼리를 사용하여 다음 작업을 수행 할 수 있습니다.

  • 표현식을 쿼리 결과와 비교합니다.
  • 쿼리 결과에 표현식이 포함됩니다.
  • 쿼리가 행을 선택하는지 확인합니다.

구문 :

  • 서브 쿼리 (내부 쿼리)는 기본 쿼리 (외부 쿼리)가 실행되기 전에 한 번 실행됩니다.
  • 주 쿼리 (외부 쿼리)는 하위 쿼리 결과를 사용합니다.

SQL 하위 쿼리 예 :

이 섹션에서는 하위 쿼리 사용에 대한 요구 사항을 학습합니다. 공통 필드가 “StudentID”인 “student”및 “marks”두 개의 테이블이 있습니다.



학생 점수

이제 “StudentID가”V002 “인 학생보다 더 나은 점수를받은 모든 학생을 식별하는 쿼리를 작성하려고하지만”V002 “의 점수를 알지 못합니다.
-문제를 해결하려면 두 개의 쿼리가 필요합니다. 하나의 쿼리는 “V002″의 점수 (Total_marks 필드에 저장 됨)를 반환하고 두 번째 쿼리는 첫 번째 쿼리의 결과보다 더 나은 점수를받은 학생을 식별합니다.

첫 번째 쿼리 :

쿼리 결과 :

쿼리의 결과는 80입니다.
-이 쿼리의 결과를 사용하여 80 점보다 더 좋은 점수를받은 학생을 식별하기위한 또 다른 쿼리를 작성했습니다. 쿼리는 다음과 같습니다.

두 번째 쿼리 :

쿼리 결과 :

두 쿼리 위 t를 얻는 확인 된 학생 그는 StudentID가 “V002″(Abhay) 인 학생보다 더 나은 숫자입니다.

한 쿼리를 다른 쿼리 안에 배치하여 위의 두 쿼리를 결합 할 수 있습니다. 하위 쿼리 ( “내부 쿼리”라고도 함)는 괄호 안의 쿼리입니다. 다음 코드 및 쿼리 결과를 참조하십시오.

SQL 코드 :

쿼리 결과 :

SQL 하위 쿼리의 그림 표현 :

서브 쿼리 : 일반 규칙

서브 쿼리 SELECT 문은 거의 유사합니다. SELECT 문에 추가하고 일반 또는 외부 쿼리를 시작하는 데 사용됩니다. 다음은 하위 쿼리의 구문입니다.

구문 :

서브 쿼리 : 지침

하위 쿼리를 사용할 때 고려해야 할 몇 가지 지침이 있습니다.

  • 하위 쿼리는 괄호로 묶어야합니다.
  • 하위 쿼리는 비교 연산자의 오른쪽에 있어야합니다.
  • 서브 쿼리는 결과를 내부적으로 조작 할 수 없으므로 ORDER BY 절을 하위 쿼리에 추가 할 수 없습니다. 마지막 절이 될 기본 SELECT 문 (외부 쿼리)에서 ORDER BY 절을 사용할 수 있습니다.
  • 단일 행 하위 쿼리에 단일 행 연산자를 사용합니다.
  • 하위 쿼리 (내부 쿼리)가 외부 쿼리에 null 값을 반환하는 경우 외부 쿼리는 WHERE 절에서 특정 비교 연산자를 사용할 때 행을 반환하지 않습니다.

하위 쿼리 유형

  • 단일 행 하위 쿼리 : 0 개 또는 1 개의 행을 반환합니다.
  • 다중 행 하위 쿼리 : 하나 이상의 행을 반환합니다.
  • 여러 열 하위 쿼리 : 하나 이상의 열을 반환합니다.
  • 상관 된 하위 쿼리 : 외부 SQL 문에서 하나 이상의 열을 참조합니다. 하위 쿼리가 외부 SQL 문과 관련되어 있으므로 하위 쿼리를 상관 하위 쿼리라고합니다.
  • 중첩 된 하위 쿼리 : 하위 쿼리는 다른 하위 쿼리 내에 배치됩니다.

다음 세션에서는 위의 주제에 대해 철저히 논의했습니다. 위의 하위 쿼리 유형 외에도 INSERT, UPDATE 및 DELETE 문 내에서 하위 쿼리를 사용할 수 있습니다. 다음은 간단한 설명입니다.

INSERT 문이있는 하위 쿼리

INSERT 문은 하위 쿼리와 함께 사용할 수 있습니다.다음은 INSERT 문을 사용하는 하위 쿼리의 구문과 예입니다.

구문 :

INSERT INTO table_name ) ]SELECT FROM table1 ;

“에서 해당 주문을 삽입하려는 경우 advance_amount 2000 또는 5000이있는 orders “테이블을”neworder “테이블에 다음 SQL을 사용할 수 있습니다.

샘플 테이블 : orders

SQL 코드 :

출력 :

자세한 내용보기 INSERT 문을 사용하는 하위 쿼리는 여기를 클릭하십시오.

UPDATE 문이있는 하위 쿼리

UPDATE 문에서 단일 행 하위 쿼리가 반환 한 결과와 동일한 새 열 값을 설정할 수 있습니다. 다음은 UPDATE 문을 사용하는 하위 쿼리의 구문과 예입니다.

구문 :

UPDATE table SET column_name = new_value(SELECT COLUMN_NAMEFROM TABLE_NAME) 

“에서 해당 ord_date를 업데이트하려는 경우 ord_amount와 advance_amount의 차이가있는 “15-JAN-10″이있는 neworder “테이블이”orders “테이블의 최소 ord_amount보다 작으며 다음 SQL을 사용할 수 있습니다.

샘플 테이블 : neworder

SQL 코드 :

출력 :

UPDATE 문을 사용하는 하위 쿼리에 대한 자세한 내용을 보려면 여기를 클릭하세요.

DELETE 문이있는 하위 쿼리

DELETE 문은 하위 쿼리와 함께 사용할 수 있습니다. 다음은 DELETE 문을 사용하는 하위 쿼리의 구문과 예입니다.

구문 :

DELETE FROM TABLE_NAME(SELECT COLUMN_NAME FROM TABLE_NAME) 

advance_amount가 최대 advance_amount “보다 작은”neworder “테이블에서 해당 주문을 삭제하려는 경우 orders “테이블에서 다음 SQL을 사용할 수 있습니다.

샘플 테이블 : neworder

SQL 코드 :

출력 :

DELETE 문을 사용하는 하위 쿼리에 대한 자세한 내용을 보려면 여기를 클릭하세요.

다음 단계는?

  • SQL 하위 쿼리-슬라이드 프레젠테이션
  • 단일 행 하위 쿼리
  • 다중 행 및 열 하위 쿼리
  • 별칭을 사용한 상호 관련 하위 쿼리
  • 중첩 된 하위 쿼리

참고 : 여기에 표시된 SQL 문의 출력은 Oracle Database 10g Express Edition을 사용하여 가져온 것입니다.

SQL 연습 연습

  • SQL 연습, 연습, 솔루션
  • SQL 테이블에서 데이터 검색
  • SQL 부울 및 관계 연산자
  • SQL 와일드 카드 및 특수 연산자
  • SQL 집계 함수
  • SQL 형식 쿼리 출력
  • 여러 테이블에 대한 SQL 쿼리
  • HR 데이터베이스의 필터링 및 정렬
  • SQL JOINS
    • SQL JOINS
    • HR 데이터베이스의 SQL JOINS
  • SQL SUBQUERIES
    • SQL SUBQUERIES
    • HR 데이터베이스의 SQL SUBQUERIES
  • SQL Union
  • SQL보기
  • SQL 사용자 계정 관리
  • 영화 데이터베이스
    • 영화 데이터베이스의 기본 쿼리
    • 영화 데이터베이스의 SUBQUERIES
    • 영화 데이터베이스의 JOINS
  • 축구 데이터베이스
    • 소개
    • 축구 데이터베이스의 기본 쿼리
    • 축구 데이터베이스의 SUBQUERIES
    • JOINS 쿼리 축구 데이터베이스
  • 병원 데이터베이스
    • 소개
    • BASIC, SUBQUERIES 및 JOINS
  • 직원 데이터베이스
    • 직원 데이터베이스에 대한 기본 쿼리
    • 직원 데이터베이스에 대한 SUBQUERIES
  • 더 많은 기능!

답글 남기기

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