반응형
MySQL 서브 쿼리 다중행 연산자는 3가지가 있다
1. ALL
- 여러 개의 레코드의 AND효과
예제
City 테이블에서 한국 도시의 인구수보다 많은 도시의 이름을 표시하시오. (ALL 사용)
select Name from city where Population >
ALL(select Population from city where CountryCode='KOR');
// 해석
// ALL을 사용했기때문에 아래 쿼리에서 나온 모든 도시들의 인구수보다 커야 만족함.
// ALL(select Population from city where CountryCode='KOR')
2 ANY
- 여러 개의 레코드의 OR효과
예제
City 테이블에서 한국 도시의 인구 수보다 많은 도시의 이름을 표시하시오. (ANY 사용)
select Name from city where Population >
ANY(select Population from city where CountryCode='KOR');
// 해석
// ANY을 사용했기때문에 아래 쿼리에서 나온 도시들중 단 하나의 도시보다 크다면 만족함.
// ANY(select Population from city where CountryCode='KOR')
3 IN/EXISTS
- IN은 전체 레코드를 스캔 (상대적으로 느림)
- EXISTS는 존재여부만 확인 (상대적으로 속도 빠름)
- 존재하면 TRUE, 존재하지 않으면 FALSE 리턴
예제
국가명이 South Korea, China의 국가 코드를 찾아, 이에 해당하는 도시 이름을 표시하시오.
select Name from city where CountryCode
in (select Code from country where Name in('South Korea', 'China'));
예제
국가 코드가 'KOR' 이 존재 한다면, 해당 도시는 모두 몇 개인지 표시하시오.
select Count(*) from city where EXISTS (select * from city where CountryCode='KOR');
반응형
'정리 작업중' 카테고리의 다른 글
[MySQL] 스키마 수정 ALTER 명령어 (0) | 2022.10.14 |
---|---|
[MySQL] 자료형 (Data Types) (0) | 2022.10.14 |
키움증권 영웅문S 글로벌 평가수익률 원화추정자산 계산방법 (0) | 2022.10.14 |
[MySQL] GROUP BY / HAVING (0) | 2022.10.12 |
[MySQL] LIKE 검색 (0) | 2022.10.12 |