티스토리 뷰

Database

SQL 활용

0307kjb 2022. 6. 19. 18:27

조인

  • EQUI(등가) 조인(교집합) , A.CONDITION = B.CONDITION
  • INNER JOIN 교집합, A INNER JOIN B ON A.CONDITION = B.CONDITION
  • INTERSECT

       SELECT DEPTNO FROM ENP

       INTERSECT

       SELECT DEPTNO FROM DEPT

  • NON-EQUL
    • =를 사용하지 않고 >, <, >=, <= 등을 사용하는 경우로 정확하게 일치하지 않는 것을 조인
  • OUTER JOIN
    • 두 개의 테이블 간에 교집합을 조회하고 한 쪽 테이블에만 있는 데이터 포함시켜서 조회
    • SELECT * FROM DEPT, EMP
    • WHERE EMP.DEPTNO (+)= DEPT.DEPTNO
    • LEFT OUTER JOIN, RIGHT OUTER JOIN
      • SELECT * FROM DEPT LEFT OUTER JOIN EMP ON EMP.DEPTNO = DEPT.DEPTNO
  • CROSS JOIN
    • 카테시안 곱
  • UNION
    • 합집합 연산
    • 주의사항은 두 개의 테이블의 칼럼 수, 칼럼의 데이터 형식 모두가 일치해야 한다.
    • 아니면 오류.
    • 테이블을 하나로 합쳐 중복된 데이터를 제거함(SORT 과정 발생)
    • UNION ALL
      • UNION 처럼 중복 제거는 안함
  • MINUS
    • 차집합 연산
    • MYSQL : EXCEPT

         SELECT DEPTNO FROM DEPT

         MINUS

         SELECT DEPT NO FROM EMP

 

계층형 조회

  • 트리형 조회
  • SELECT MAX(LEVEL) FROM EMP START WITH MGR IS NULL CONNECT BY PRIOR EMPNO = MGR;

 

서브 쿼리

  • SubQuery는 SELECT문 내에 다시 SELECT문을 사용하는 SQL문
    • SELECT * FROM EMP WHERE DEPTNO = SELECT DEPTNO FROM DEPT WHERE DEPTNO=10
  • 종류
    • Inline view
      • FROM 구에 SELECT 문 사용한 것.
      • SELECT * FROM (SELECT ROWNUM NUM, ENAME FROM EMP) a where NUM < 5
    • Scala 서브쿼리
      • 반드시 한 행과 한 칼럼만 반환한 것.
      • SELECT (SELECT AVG(SAL) FROM EMP) AS "평균급여" FROM EMP WHERE EMPNO =100
    • 연관 서브쿼리
      • 서브쿼리 내에서 메인 쿼리 내의 칼럼을 사용하는 것을 의미
      • FROM EMP A WHERE A.DEPTNO = (SELECT DEPTNO FROM DEPT B WHERE B.DEPNO = A.DEPTNO)
  • 서브 쿼리 반환 행 종류
    • 단일 행 서브쿼리
      • 결과 하나
    • 다중 행 서브쿼리
      • IN,ALL, ANY, EXISTS => TRUE/ FALSE

'Database' 카테고리의 다른 글

SQLD) Sql 기본  (0) 2022.06.11
정규화  (0) 2022.06.06
엔터티  (0) 2022.06.02
데이터 모델링  (0) 2022.06.01
데이터베이스 용어  (0) 2022.06.01
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함