반응형
- 초보자를 위한 SQL 200제의 문제를 바탕으로 작성되었습니다.
<비교 연산자 정리표>
Like | 문자 패턴이 일치하는 행을 검색 |
IS NULL | null 값을 검색 |
IN | 여러 개의 리스트 값을 검색 |
[예제12]
1. 이름의 첫 글자가 S로 시작하는 사원들의 이름과 월급 출력
SELECT ename, sal
FROM emp
WHERE ename LIKE 'S%';
- % 는 '와일드 카드'로 이 자리에 어떠한 철자가 와도 상관없고 철자의 개수가 몇 개가 되든 관계없습니다.
2. 이름의 두 번째 철자가 M인 사원들의 이름 출력
SELECT ename
FROM emp
WHERE ename LIKE '_M%';
- Like와 같이 쓰이는 기호는 %와 _가 있습니다.
- _ 의 기능은 어떠한 철자가 와도 관계없으나 자리수는 한 자리여야 된다는 의미입니다.
3. 이름의 끝 자리가 T로 끝나는 사원들의 이름을 출력
SELECT ename
FROM emp
WHERE ename LIKE '%T';
4. 이름에 A를 포함하고 있는 사원들의 이름 출력
SELECT ename
FROM emp
WHERE ename LIKE '%A%';
더보기
* tip
해당 예제의 경우 사람의 이름이라 띄어쓰기가 없는 경우지만 만약 영화 데이터에서 The로 시작하는 영화이름을 찾고싶다 할때,
SELECT name FROM movies WHERE name LIKE 'The %'; 이런식으로 The와 띄어쓰기를 같이 사용해야 함.
이유: 띄어쓰기를 사용하지 않은 경우 영화 제목중 There, They ... 등과 같은 경우가 같이 출력될 수 있음.
(위의 SQL문에서 name은 영화제목, movies 영화에 관한 정보가 있는 테이블을 의미)
[예제13]
1. 커미션이 null인 사원들의 이름과 커미션 출력
SELECT ename, comm
FROM emp
WHERE comm IS NULL;
- null 값은 데이터가 할당되지 않은 상태 or 알 수 없는 값을 의미합니다.
[예제14]
1. 직업이 'SALESMAN', 'ANALYST', 'MANAGER'인 사원들의 이름, 월급, 직업 출력
select ename, sal, job
from emp
where job in ('SALESMAN', 'ANALYST', 'MANAGER');
- = 연산자의 경우 하나의 값만 조회할 수 있는 반면 IN 연산자는 여러 리스트의 값을 조회할 수 있습니다.
2. 직업이 'SALESMAN', 'ANALYST', 'MANAGER'가 아닌 사원들의 이름, 월급, 직업 출력
select ename, sal, job
from emp
where job not in ('SALESMAN', 'ANALYST', 'MANAGER');
반응형
'SQL > SQL 예제' 카테고리의 다른 글
[SQL] Part2 DECODE, CASE (IF문 ) (0) | 2022.08.09 |
---|---|
[SQL] Part2 NVL, NVL2 (NULL 값 처리) (0) | 2022.08.09 |
[SQL] 암시적 형 변환 (0) | 2022.08.09 |
[SQL] Part2 날짜형 데이터 (0) | 2022.08.08 |
[SQL] Part2 문자열 (0) | 2022.08.07 |