MySQL 서브쿼리

Kimgiwon·2023년 3월 6일
0

SQL

목록 보기
3/5
  • MySQL

    • 서브 쿼리
    1. 서브 : 보조 쿼리
    2. 괄호 안에 있는 쿼리가 서브 쿼리
    • ❗ 서브쿼리 실행 후 메인쿼리를 실행한다. ❗


    • 예시

      1. 스칼라 서브쿼리
      • SELECT 절에 오는 서브쿼리를 스칼라 서브쿼리라고 부른다.
      ELECT count(*) AS "모든 사원 수", (SELECT count(*) FROM emp WHERE job = "MANAGER") AS "사원 수" FROM emp
      
      SELECT count(*) AS "CLERK 사원 수", (SELECT count(*) FROM emp WHERE mgr IS NOT NULL) AS "사수가 있는 사원" FROM emp WHERE job = "CLERK"
      
      -- 스칼라 서브 쿼리
      1. 인라인 뷰
      • from 절에 오는 서브쿼리를 인라인 뷰(가상 테이블)라고 부른다.
      • from 절에 오는 서브쿼리는 WHERE절 처럼 필터링할 때 사용한다.
      SELECT e.deptno
      FROM (SELECT deptno FROM emp GROUP BY deptno HAVING count(*)>4) AS sub
      INNER JOIN emp AS e ON sub.deptno = e.deptno
      -- 인라인 뷰
      1. 중첩쿼리
      • where 절에 오는 서브쿼리를 중첩 쿼리라고 부른다.
      • 서브쿼리 중에 사용률이 매우 낮음
      • 중첩 쿼리는 단일 조회만 가능하다. 사용하려면 IN 을 사용 해야함
      -- 결과가 1개  
      SELECT * FROM emp WHERE empno = (SELECT empno FROM emp WHERE mgr IS null)
      -- 결과가 2개 이상
      SELECT * FROM emp WHERE empno in (SELECT empno FROM emp WHERE mgr IS null)
    • Primary key

        PRI는 Primary key의 줄임말로 PK라고 부른다.
        PK는 데이터가 중복해서 들어오는걸 막아준다.
        Primay key는 Default 값이 NOT NULL이다.
profile
99년생 개발자

0개의 댓글