본문 바로가기

SQL/SQL 예제

[SQL] 비교연산자

반응형

- 초보자를 위한 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