- LIKE 를 이용한 특정 문자열이 들어간 구문 출력하는 방법

 

다음은 식품공장의 정보를 담은 FOOD_FACTORY 테이블입니다. FOOD_FACTORY 테이블은 다음과 같으며 FACTORY_ID, FACTORY_NAME, ADDRESS, TLNO는 각각 공장 ID, 공장 이름, 주소, 전화번호를 의미합니다.


문제

 

FOOD_FACTORY 테이블에서 강원도에 위치한 식품공장의 공장 ID, 공장 이름, 주소를 조회하는 SQL문을 작성해주세요. 이때 결과는 공장 ID를 기준으로 오름차순 정렬해주세요.

 

 

나의 정답

SELECT FACTORY_ID, FACTORY_NAME, ADDRESS
FROM FOOD_FACTORY
WHERE ADDRESS LIKE "%강원도%"
ORDER BY FACTORY_ID ASC;

FOOD_FACTORY DB에서 ADDRESS에 강원도가 포함되있다면 해당 FACTORY ID, NAME, ADDRESS를 출력해줄 수 있다.

 

 

알아야 할것

 

1. --A로 시작하는 문자를 찾기--

SELECT 컬럼명 FROM 테이블 WHERE 컬럼명 LIKE 'A%'

 

2. --A로 끝나는 문자 찾기--

SELECT 컬럼명 FROM 테이블 WHERE 컬럼명 LIKE '%A'

 

3. --A를 포함하는 문자 찾기--

SELECT 컬럼명 FROM 테이블 WHERE 컬럼명 LIKE '%A%'

 

4. --A로 시작하는 두글자 문자 찾기--

SELECT 컬럼명 FROM 테이블 WHERE 컬럼명 LIKE 'A__'

 

5. --첫번째 문자가 'A''가 아닌 모든 문자열 찾기--

SELECT 컬럼명 FROM 테이블 WHERE 컬럼명 LIKE '[^A]'

 

6. --첫번째 문자가 'A'또는'B'또는'C'인 문자열 찾기--

SELECT 컬럼명 FROM 테이블 WHERE 컬럼명 LIKE '[ABC]'

SELECT 컬럼명 FROM 테이블 WHERE 컬럼명 LIKE '[A-C]'

 

 

- 복수개의 특정 문자를 찾아야 할 경우 REGEXP를 이용

 

문제

 

CAR_RENTAL_COMPANY_CAR 테이블에서 '통풍시트', '열선시트', '가죽시트' 중 하나 이상의 옵션이 포함된 자동차가 자동차 종류 별로 몇 대인지 출력하는 SQL문을 작성해주세요. 이때 자동차 수에 대한 컬럼명은 CARS로 지정하고, 결과는 자동차 종류를 기준으로 오름차순 정렬해주세요.

 

 

나의 정답

SELECT A.CAR_TYPE, COUNT(A.CAR_TYPE) AS CARS
FROM (
SELECT CAR_TYPE
FROM CAR_RENTAL_COMPANY_CAR
WHERE OPTIONS REGEXP "통풍시트|가죽시트|열선시트") A
GROUP BY CAR_TYPE
ORDER BY CAR_TYPE ASC

 

이번 문제같은 경우 서브쿼리를 사용하였는데 먼저 서브쿼리에서 REGEXP 구문을 사용하여 통풍시트, 가죽시트, 열선시트가 포함되있는 CAR TYPE을 구해주었다. 그 다음 그룹 별 COUNT를 하여 CAR TYPE 마다 해당 옵션들이 포함된 총 숫자를 구해주었다.

+ Recent posts