ABOUT ME

gong-start 님의 블로그 입니다.

Today
Yesterday
Total
  • [실기] - SQL 쿼리 활용 1, 2
    카테고리 없음 2025. 2. 20. 15:16
    • 집합 연산자
      • 형식
        • SELECT * FROM 회원정보 WHERE 이름 = '김흥직';
        • UNION <- 여기에옴
        • SELECT * FROM 회원정보 WHERE 이름 = '김달수';
      • UNION - 합집합(중복제거)
      • UNUNION ALL - 합집합(중복허용)
      • INTERSECT - 교집합(중복제거)
      • EXCEPT - 차집합(중복제거) - MINUS
    • JOIN : 관련된 컬럼 기준으로 결합 (즉, ID lch3067, ktf3067 이 회원 정보쪽 테이블에 존재 / 가입정보 테이블에 ID 컬럼에 lch3067, ktf3067 존재하야한다.
      • 정규화를 통해서 잘게 잘게 쪼갠 테이블을 다시 합친다.
      • 내부 조인(Inner Join) - 공통 데이터만 추출
        • 형식 : SELECT * FROM 회원정보 INNER JOIN 주문 ON 회원정보.회원번호 = 주문.회원번호
      • 자연 조인(Natural Join) : 컬럼이 어떤거 부터 올지 모름(시험장에서는 아무거나 컬럼 입력해서 쓰기)
        • 형식 : SELECT * FROM R1 NATURAL JOIN R2;
      • 전체 외부 조인(Full Outer Join) : 일치한거 외는 NULL값으로 표현
      • 왼쪽 외부 조인 : L1.COL1 = R1.COL1 에서 L1테이블만 쓰기
      • 오른쪽 외부 조인 : L1.COL1 = R1.COL1 에서 R1테이블만 쓰기
      • 곱집합(Crocss Join) : 4 * 2
    • 서브 쿼리
      • 스칼라 서브쿼리 : SELECT 절에 위치
        • 형식 : SELECT 이름, ( SELECT 주분번호 FROM 주문 WHERE 주문.주문번호 = 회원정보.회원번호) AS 주문번호 FROM 회원정보 WHERE 회원번호 = '0003';
      • 인라인뷰 서브쿼리 : FROM 안쪽에 테이블 형태로 만들어진다. 즉, FROM 뒤에 SELECT문이 온다. * SELECT문은 테이블 표형태이니...
      • 중첩 서브쿼리 : WHERE 쪽에 위치함
        • 다중행
          •  IN : 값이 존재하는지?
          • EXISTS : 행이 있는지?
          • ANY : 하나만 만족(다중으로 결과값이 나올때.. ANY가 없으면, 에러 발생)
          • ALL : 모두 만족
      • 그룹 함수
        • 집계함수
        • 그룹함수
          • GROUP BY

     

    [SQL 문제 주의점]

    1. ; 세밀콜론 붙히기

    2. , 붙혀서 구분하기

    3. 문자는 '' 홀따움표 붙히기

    4. NOT EXISTS와 EXISTS는 형식상 컬럼이 존재하지 않으며, 행의 존재유무 파악이다.

    5. NULL은 비교가 안된다.

    6. count(*)으로 하면, Null이던, 상관없이 무조건 null 포함해서 가져온다.

    7. count(특정컬럼)이 들어오면, Null을 제외하고 갯수를 가져온다.

Designed by Tistory.