
(※개인 공부 목적의 게시물입니다.)
DEVELOPER_INFOS 테이블은 개발자들의 프로그래밍 스킬 정보를 담은 테이블입니다.
DEVELOPER_INFOS 테이블 구조는 다음과 같으며, ID, FIRST_NAME, LAST_NAME, EMAIL, SKILL_1, SKILL_2, SKILL_3는 각각 ID, 이름, 성, 이메일, 첫 번째 스킬, 두 번째 스킬, 세 번째 스킬을 의미합니다.
| NAME | TYPE | UNIQUE | NULLABLE |
|---|---|---|---|
| ID | VARCHAR(N) | Y | N |
| FIRST_NAME | VARCHAR(N) | N | Y |
| LAST_NAME | VARCHAR(N) | N | Y |
| VARCHAR(N) | Y | N | |
| SKILL_1 | VARCHAR(N) | N | Y |
| SKILL_2 | VARCHAR(N) | N | Y |
| SKILL_3 | VARCHAR(N) | N | Y |
DEVELOPER_INFOS 테이블에서 Python 스킬을 가진 개발자의 정보를 조회하려 합니다.
Python 스킬을 가진 개발자의 ID, 이메일, 이름, 성을 조회하는 SQL 문을 작성해 주세요.
결과는 ID를 기준으로 오름차순 정렬해 주세요.
SELECT ID,
EMAIL,
FIRST_NAME,
LAST_NAEM
FROM DEVELOPER_INFOS
WHERE 'Python' IN(SKILL_1, SKILL_2, SKILL_3)
ORDER BY ID;
WHERE 'Python' IN(SKILL_1, SKILL_2, SKILL_3)
<기본 형식>
WHERE column_name IN (value1, value2, value3,...);
WHERE column_name NOT IN (value1, value2, value3,...);
WHERE value1 IN (column_name1, column_name2, column_name3,..)-> 이것도 가능은 함! (하지만 이 경우 OR로 적는게 정석)
IN -> OR로 변환가능(반대는 불가능)
따라서 답은
WHERE 'Python' IN(SKILL_1, SKILL_2, SKILL_3);
또는
WHERE SKILL_1 = 'Python' OR SKILL_2 = 'Python' OR SKILL_3 = 'Python';
WHERE 컬럼명 IS NULL;-> NULL을 검색할때
WHERE 컬럼명 IS NOT NULL;-> NULL을 제외하고 검색할때
WHERE 컬럼 BETWEEN 값1 AND 값2;또는
WHERE 컬럼 >= 값1 AND 컬럼 <= 값2;
WHERE 컬럼 LIKE '패턴'