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 처리 성능이 향상된다.