Ch 8. 데이터 검색

Section 1. 기본적인 SELECT 명령문

  • SELECT [DISTINCT] 열_이름 ~
    FROM 테이블_이름
    [WHERE 조건
    [중첩질의]]
    [GROUP BY 열_이름[ ]]
    [HAVING 조건]
    [ORDER BY 열_이름 ~ [ASC|DESC]];
  • HAVING 절은 GROUP BY 절의 결과로 나내는 그룹을 제한하는 역할을 한다

Section 2. WHERE 절을 이용한 조건 검색

  • NOT 연산자는 속도가 느리므로 가급적 다른 연산자 사용을 권장
  • 사이값 검색 : BETWEEN A AND B
  • IN, NOT IN
  • LIKE 연산자 : 문자 패턴 매칭
    • % : 0개 이상의 문자열 대체
    • [] : 지정된 범위의 한개 문자 대체
    • [^] : 지정된 범위에 없는 한 개 문자 대체
    • _ : 임의의 한개 문자 대체
  • NULL을 찾는 것은, IS NULL이나 IS NOT NULL 연산자를 사용한다.

Section 3. ORDER BY절을 이용한 정렬

  • 기본값은 ASC로 오름차순이다.
  • NULL은 오름차순 일 경우 가장 마지막에 표시되는 값이다.
  • SELECT 절에 나온 열의 위치를 이용해 정렬할 수도 있다. EX) ORDER BY 2

Section 4. 서브쿼리

  • 하나의 SQL 명령문 처리 결과를 다른 SQL 명령문에 전달을 필요로 할 때 사용
  • 예) 회원 테이블에서 송혜교와 등급이 동일한 회원들의 회원명, 등급, 주소를 검색하라
    • 우선 서브쿼리를 이용해 송혜교의 등급을 검색한다
    • 이후에 메인쿼리에서 전달받은 등급(송혜교 등급)과 동일한 회원의 정보를 검색한다
  • 서브쿼리에는 ORDER BY 절을 사용할 수 없다

4.1 단일 행 서브쿼리

  • 하나의 행만 메인쿼리에 반환하는 것

4.2 다중 행 서브쿼리

  • IN, NOT IN, EXISTS 연산자로 해결

Section 5. 집단함수를 이용한 요약 정보의 검색

  • 검색된 행에서 요약된 내용을 필요로 할 때

5.1 집단함수

  • COUNT(), SUM(), AVG(), MAX(), MIN()
  • SELECT나 HAVING 절에서 사용할 수 있다

5.2 그룹화, GROUP BY

5.3 그룹검색 조건, HAVING

Section 6. 여러 개 테이블에서의 데이터 검색

6.1 조인(Join)

  • 하나의 SQL 명령문으로 여러 테이블에 저장된 데이터를 한 번에 검색
  • 테이블을 연결하기 위해서는 공통의 값, 외래키가 있어야 한다.
  • N개의 테이블을 조인하기 위해서는 적어도 N-1 개의 조인 조건절이 필요하다.
  • 열이름 앞에 테이블 이름을 지정하면, 구문분석시간이 줄어들어 SQL 처리 성능이 향상된다.