✔️ SQL 심화 8~10
- 기본 실습 환경(sandwich 테이블 이용)

Scalar Functions (스칼라 함수)

- 사용방법
- SELECT UCASE(string);
- SELECT LCASE(string);
- SELECT MID(string, 시작점, 문자열길이);
- SELECT LENGTH(string);
- SELECT ROUND(number, 소수점위치);
- SELECT NOW();
- SELECT FORMAT(number, 소수점위치);
- sandwich 테이블에서 가게 이름은 대문자, 메뉴 이름은 소문자로 조회

- sandwich 테이블에서 10위 메뉴의 마지막 단어를 조회

- sandwich 테이블에서 메뉴 이름의 평균 길이를 조회

- oil_price 테이블에서 가격을 십원 단위에서 반올림해서 조회

- oil_price 테이블에서 가격이 십원 단위에서 반올림했을 때 2000원 이상인 경우, 천단위에 콤마를 넣어서 조회

Subquery
하나의 SQL문 안에 포함 되어있는 또 다른 SQL 문으로, 메인쿼리가 서브쿼리를 포함하는 종속적인 관계이다.
- 서브쿼리는 메인쿼리의 칼럼 사용 가능
- 메인쿼리는 서브쿼리의 칼럼 사용 불가
- 주의사항
- Subquery는 괄호로 묶어서 사용
- 단일행 혹은 복수행 비교 연산자와 함께 사용 가능
- subquery에서는 order by 사용 X
- 서브쿼리 종류
- 스칼라 서브쿼리 (Scalar Subquery) - SELECT 절에사용
- 인라인 뷰 (Inline View) - FROM 절에사용
- 중첩 서브쿼리 (Nested Subquery) - WHERE 절에사용
- Single Row - 하나의 열을 검색하는 서브쿼리
- Multiple Row - 하나 이상의 열을 검색하는 서브쿼리
- Multiple Column - 하나 이상의 행을 검색하는 서브쿼리
스칼라 서브쿼리 (Scalar Subquery)
- 기본 문법

- 서울 은평경찰서의 강도 검거 건수와 서울시 경찰서 전체의 평균 강도 검거 건수를 조회

인라인 뷰 (Inline View)
- 기본 문법

- 경찰서별로 가장 많이 발생한 범죄 건수와 범죄 유형을 조회

중첩 서브쿼리 (Nested Subquery)
- 기본 문법

- single row (비교 연산자 사용)

- multiple row (IN 사용) - SNL에 출연한 영화배우 조회

- multiple row (EXISTS 사용) - 범죄 검거 혹은 발생 건수가 2000건 보다 큰 경찰서 조회

- multiple row (ANY 사용) - SNL에 출연한 적이 있는 연예인 이름 조회

- multiple row (ALL 사용, 비교연산자 사용)

- multiple column - 강동원과 성별, 소속사가 같은 연예인의 이름, 성별, 소속사를 조회

문제
- oil_price 테이블에서 셀프 주유의 평균 가격과 SK에너지의 가장 비싼 가격을 Scalar Subquery를 사용하여 조회

- oil_price 테이블에서 상표별로 가장 비싼 가격과 상호를 Inline View를 사용하여 조회

- 평균 가격보다 높은 주유소 상호와 가격을 Nested Subquery 를 사용하여 조회

- 3번에서 조회한 주유소에서 주유한 연예인의 이름과 주유소, 주유일을 Nested Subquery 를 사용하여 조회

- refueling 테이블과 oil_price 테이블에서 10만원 이상 주유한 연예인이름, 상호, 상표, 주유금액, 가격을 Inline View를 사용하여 조회

"이 글은 제로베이스 데이터 취업 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다."