마케팅스프린트
[ GitHub ]

[ jungyijun@naver.com ]


  • Category
    • 마케팅 자동화
    • old posting
      • ChatGPT
      • Java
      • MySQL
      • JSP
      • Spring Framework
      • Node.js
Total
Today
Yesterday
hELLO · Designed By 정상우.
old posting/MySQL

[SQL] Sub Query와 종류 그리고 주의사항

2021. 4. 21. 18:31
  • Sub Query
    • 한번에 여러개의 쿼리를 처리할 수 있는 방법
  • Sub Query 주의사항
    1. SubQuery 는 연산자 오른쪽에 위치해야 하며 반드시 괄호() 로 묶어야 한다.
    2. 특별한 경우를 제외하고는 SubQuery 절에는 Order By 가 올 수 없다.
    3. 단일행 SubQuery, 다중행 SubQuery 에 따라 연산자를 잘 선택해야 한다.
  • Sub Query 종류
    1. 단일행 Sub Query
    2. 다중행 Sub Query
    3. 다중컬럼 Sub Query
    4. 상호연관 Sub Query
  • 단일행 Sub Query
    • 결과가 한개만 출력되는 것
      • 단일행 Sub Query 의 WHERE 절에서 사용되는 연산자
        1. = : 값이 같으면 true
        2. <> : 값이 서로 다른 값이면 true
        3. > : 왼쪽 피연산자의 값이 크면 true
        4. < :  왼쪽 피연산자의 값이 작으면 true
        5. >= : 왼쪽 피연산자의 값이 크거나 같으면 true
        6. <= :  왼쪽 피연산자의 값이 작거나 같으면 true
  • 다중행 Sub Query
    • 결과가 두개 이상 출력되는 것
      • 다중행 Sub Query 와 함께 사용하는 연산자
        1. IN : 같은 값을 찾는다.
        2. ANY : 다수의 비교값 중 한개라도 만족하면 true, 최소값 보다 크면
        3. =ANY : 다수의 비교값 중 한개라도 만족하면 true, 최소값보다 크거나 같으면
        4. <ANY : 다수의 비교값 중 한개라도 만족하면 true, 최대값보다 작으면
        5. <=ANY : 다수의 비교값 중 한개라도 만족하면 true, 최대값보다 작거나 같으면
        6. =ANY : IN과 값은 결과를 출력
        7. !=ANY : NOT IN 과 같은 결과를 출력
        8. ALL : 전체 값을 비교하여 모두 만족해야만 true, 최대값 보다 크면
        9. =ALL : 전체 값을 비교하여 모두 만족해야만 true, 최대값 보다 크거나 같으면
        10. <ALL : 전체 값을 비교하여 모두 만족해야만 true, 최소값보다 작으면
        11. <=ALL : 전체 값을 비교하여 모두 만족해야만 true, 최소값보다 작거나 같으면
        12. =ALL : SubSELECT 의 결과가 1건이면 상관없지만, 여러건이면 오류가 발생한다.
        13. !=ALL : SubSELECT 의 결과가 1건이면 상관없지만, 여러건이면 오류가 발생한다.
        14. EXIST : Sub Query 값이 있을 경우 반환한다.
  • 다중컬럼 Sub Query
    • Sub Query 결과가 여러 컬럼인 경우, 주로 Primary Key 를 여러 컬럼을 합쳐서 만들었을 경우 한꺼번에 비교하기 위해 자주 사용한다.
  • 상호연관 Sub Query
    • Main Query 값을 Sub Query 에 주고 Sub Query 를 수행한 후 그 결과를 다시 Main Query 로 반환해서 수행하는 쿼리이다.
  • Sub Query 위치별 이름
    • Sub Query 는 오는 위치에 따라 이름이 다르다.
      • SELECT (Sub Query) : 1개의 결과만 반환할 경우, Scala Sub Query
      • FROM (Sub Query) : Inline View
      • WHERE (Sub Query) : Sub Query
  • Scalar Sub Query
    • Join 과 같은 결과가 나온다. 하지만 데이터 양이 적은 경우 Scalar Sub Query 방식이 Join 보다 나은 성능을 보여준다.
  • 다중 INSERT - Sub Query 사용
    • INSERT ALL INTO test_a (SELECT * test_b);
  • Sub Query 로 CREATE TABLE 하기
    • CREATE TABLE [테이블명] AS [SubQuery];
      • 테이블 복사, 사본 만들떄 유용하다.
저작자표시 (새창열림)
'old posting/MySQL' 카테고리의 다른 글
  • [SQL] Natural Join과 USING
  • [SQL] View 와 View 의 종류
  • [SQL] Join
  • [SQL] 그룹함수(Aggregate Function)
마케팅스프린트
마케팅스프린트
쿠팡, 스마트스토어 자동화 솔루션

티스토리툴바