- 그룹화 검색 : GROUP BY절
SELECT [DISTINCT|ALL] 열_리스트
FROM 테이블_리스트
[GROUP BY 그룹_기준열_리스트]
[HAVING 그룹_조건식] ;
- 그룹 조건 검색 : HAVING절
- HAVING 절은 그룹이 만족해야 하는 제한 조건을 명세
GROUP BY절을 통해 생성된 그룹 중에서도 특정 조건을 만족하는 그룹만으로 검색을 제한
WHERE절이 행에 대한 '검색_조건식'을 명세한다면 HAVING절은 행 그룹에 대한 '그룹_조건식'을 명세
- HAVING 절은 그룹이 만족해야 하는 제한 조건을 명세
- LIKE 문자 연산자 검색 : '_' , '%' 와일드카드
- 부분 문자열(substring) 포함 여부를 검색하기 위해
WHERE절 '검색_조건식'에 사용되는 비교 연산자 - 검색 문자열 값을 정확히 모르거나 일부만 알고 있는 경우
- 부분 문자열(substring) 포함 여부를 검색하기 위해
| _ | 문자열 중 특정 위치에 1개의 모든 문자를 허용 |
| % | 문자열 중 임의 위치에 0개 이상의 모든 문자(열)를 허용 |
- LIKE 와일드카드의 적용 예
| 적용 예 | 검색 일치 | 검색 불일치 |
| LIKE '_ook' | book, look | good, books, ook |
| LIKE '9_7_5' | 98765, 91715, 9a7b5 | 975, 98754 |
| LIKE '%k' | book, milk, ok, k | books |
| LIKE 'b%k' | book, bblack, bk | kbkbk, bbooks |
- 널 값 검색 : IS NULL, IS NOT NULL
- 열 값으로 NULL을 갖고 있는 행을 검색할 경우
'=' 비교 연산자 사용 불가
- 열 값으로 NULL을 갖고 있는 행을 검색할 경우
- 집합 연산자를 이용한 검색 : UNION
- 서로 다른 SQL 검색문의 결과 집합이 의미적으로 또 형식적으로 일치할 경우 관계 대수의 집합 연산자를 적용
UNION(합집합) 연산자
- 여러 SELECT 명령문의 검색 결과를 결합
- 결과 테이블에서 자동으로 중복 행을 제거한 나머지 행들을 반환
- 서로 다른 SQL 검색문의 결과 집합이 의미적으로 또 형식적으로 일치할 경우 관계 대수의 집합 연산자를 적용
- 부 질의문을 이용한 검색
- 부 질의문 (subquery)
- 질의문 안에 중첩(nested)되어 포함된 또 다른 SELECT 검색문
- 괄호 안의 가장 안쪽 부 질의문부터 먼저 수행되고 가장 바깥쪽 주 질의문이 가장 나중에 수행
- WHERE절의 검색 조건 값을 미리 알지 못하거나 실시간으로 조건식을 완성해야 하는 경우 유용
- 부 질의문 (subquery)
- IN 연산자
- 나열된 값들 중에서 하나라도 일치하는 경우 참(true)을 반환하는 연산자
- NOT IN은 나열된 값들 중 어떤 값도 일치하지 않을 경우 참을 반환
- 여러 값들의 반복 비교를 위해 '=' 기호를 나열할 필요 없이 한꺼번에 표현하도록 함
- 내부 질의 (inner query) : 안쪽에 위치한 부 질의문
- 외부 질의 (outer query) 또는 주 질의 (main query) : 바깥쪽 주 질의문
- 중첩 부 질의문 : 부 질의문 안의 부 질의문
SELECT [DISTINCT|ALL] 열_리스트
FROM 테이블_리스트
[WHERE 열_리스트 IN ( SELECT 열_리스트 ◁ 내부 질의
△외부질의 또는 주질의 FROM 테이블_리스트
WHERE 열_리스트 = ( SELECT 열_리스트 ◁ 중첩 부 질의문
FROM 테이블_리스트
WHERE 열_리스트 = '조건' ) ) ;
- EXISTS 연산자
- 부 질의문의 실행 결과로 반환되는 행이 존재하는지 존재 유무를 확인하는 연산자
SELECT [DISTINCT|ALL] 열_리스트
FROM 테이블_리스트
[WHERE 열_리스트 EXISTS ( SELECT 열_리스트
FROM 테이블_리스트
WHERE 열_리스트 = '조건' ) ;
- 상호연관(상관) 질의문 (correlated query)
- 중첩 질의문 중에서 내부 질의의 WHERE절 '검색_조건식'이
외부 질의에 선언된 테이블의 일부 열을 참조하는 질의 - 안쪽 부 질의문의 WHERE 조건식에 바깥 주 질의문의 학생 테이블이 사용되어
바깥 질의와 안쪽 질의가 서로 연관되어 실행
- 중첩 질의문 중에서 내부 질의의 WHERE절 '검색_조건식'이
'Coding Study > MySQL' 카테고리의 다른 글
| MySQL 명령문 - 데이터 검색 SELECT문 (0) | 2023.10.13 |
|---|