- 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 마다 해당 옵션들이 포함된 총 숫자를 구해주었다.
'SQL' 카테고리의 다른 글
| [SQL] 간단한 SQL WITH 구문 복습 (0) | 2023.08.21 |
|---|---|
| [SQL] 간단한 SQL OUTER JOIN 구문 복습하기 (0) | 2023.08.03 |
| [SQL] 간단한 SQL JOIN 과 GROUP BY 결합 구문 복습 (0) | 2023.07.29 |
| [SQL] 간단한 SQL COUNT 구문 복습 (3) | 2023.07.27 |
| [SQL] 간단한 SQL 구문 NULL값 처리하는 방법 (1) | 2023.07.25 |