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