개발 공부 & 정리

[SQL첫걸음] 24강 상관 서브쿼리 본문

공부/DB

[SQL첫걸음] 24강 상관 서브쿼리

현뽀- 2022. 6. 15. 14:59
  • 상관 서브쿼리 : 부모 명령과 자식인 서브쿼리가 특정관계를 맺는 것, 따로 서브쿼리만 분리하여 실행 X.

      UPDATE [table1] SET a= "있음" WHERE
          EXIST (SELECT * FROM [table2] where no2= no1);
    
      no1은 table1의 열로 서브쿼리만 동작 시킬 경우 table2에서 알 수 없다.
    
      만일 열 이름이 둘다 no 일경우 where no=no는 대부분 에러 
      In MySQL table2.no = table2.no가 되어 모두 참.
    
      >> 그러므로 **테이블이름.열명**을 쓰자
    • EXIST(subQuery) : 서브쿼리가 반환하는 결과(행)이 있으면 참, 없으면 거짓.

    • NOT EXIST(subQuery) : 서브쿼리가 반환하는 결과(행)이 없으면 참, 있으면 거짓.

    • row IN (집합-스칼라셋(2,3) or subQuery ) : 스칼라 = 와 유사, 해당 열의 값이 집합 내 값이 있으면 참.

      NULL의 경우 있어도 비교 X. → IS NULL 사용.

      NOT IN : NULL이 있으면 없어도 참X → UNKNOWN

      IN MySQL → IN 참/NULL <> NOT IN 거짓 (NULL 이 포함되어 있으면 return 0 → 비교 X)

      NULL 이어도 비교할 수 없으므로 참or거짓이 아닌 NULL 반환

Comments