SW/MySQL

MySQL : 논리 연산자 : and, or, not, between, in : 사용법, 예제

얇은생각 2020. 1. 10. 07:30
반응형

논리 연산자

두개 이상의 조건문을 작성할 떄 사용하는 연산자입니다.

and : 양쪽 조건을 모두 만족해야 합니다

or : 양쪽 조건 중 하나만 만족해도 됩니다.

not : 조건의 결과를 반대로 부정합니다.

 

# d001 부서의 매니저 중에서 1990년 이후 부터 매니저인 사원의 사원 번호, 
# 부서 번호, 매니저, 시작날짜를 가져온다.

select emp_no, dept_no, from_date
from dept_manager
where dept_no = 'd001' and from_date >= '1990-01-01';

 

# 1990년 이후에 입사한 남자 사원의 사원 번호, 성별, 입사일을 가져온다.

select emp_no, gender, hire_date
from employees
where hire_date >= '1990-01-01' and gender ='M';

 

# 1990년 이후부터 60000 이상의 급여를 받는 사원의 사원번호, 
# 급여, 급여 수령 시작 날짜를 가져온다.

select emp_no, salary, from_date
from salaries
where from_date >= '1990-01-01' and salary >= 60000;

 

# d001 부서와 d002 부서 매니저의 사원 번호, 부서 번호를 가져온다.

select emp_no, dept_no
from dept_manager
where dept_no = 'd001' or dept_no = 'd002';

 

# 직함이 staff인 사원과 engineer인 사원의 사원번호, 직함을 가져온다.

select  emp_no, title
from titles
where title = 'Staff' or title = 'Engineer';

 

# 직함이 staff인 사원과 engineer인 사원의 사원번호, 직함을 가져온다.

select  emp_no, title
from titles
where title = 'Staff' or title = 'Engineer';

 

# d003 부서의 매니저가 아닌 매니저의 사원 번호, 부서 번호를 가져온다.

select emp_no, dept_no
from dept_manager
where not dept_no = 'd003';

 

 

 

Between

컬럼의 범위를 조건으로 사용할 떄 사용합니다. and 대신 사용하기 좋습니다.

컬럼명 between 값1 and 값2

 

# 급여가 60000 이상 70000 미만인 사원의 사원번호, 급여를 가져온다.

select emp_no, salary 
from salaries
where salary >= 60000 and salary < 70000;

select emp_no, salary
from salaries
where salary between 60000 and 69999;

두 쿼리는 같은 결과를 유도합니다. 개발자 취향에 맞게 원하는 방식대로 작성하여 활용하면 됩니다. 

 

 

in

지정된 컬럼의 값이 특정 값에 해당되는 조건을 만들 때 사용합니다. or 대신 사용할 수 있습니다. 다만 모든 or 조건문을 대체할 수는 없습니다.

컬럼명 in ( 값1, 값2, ... )

 

# d001 부서와 d002 부서 매니저의 사원 번호, 부서 번호를 가져온다.

select emp_no, dept_no
from dept_manager
where dept_no = 'd001' or dept_no = 'd002';

select emp_no, dept_no
from dept_manager
where dept_no in('d001', 'doo2');

두 쿼리는 같은 결과를 유도합니다. 개발자 취향에 맞게 원하는 방식대로 작성하여 활용하면 됩니다. 

반응형